From ed39afd6e8a225a1b9584fbcf7142890bbee5b7d Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Thu, 16 Nov 2017 09:47:38 +0100 Subject: dashboard/app: factor out uploadBuild from apiUploadBuild Make it possible to upload builds from functions other than apiUploadBuild. --- dashboard/app/api.go | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/dashboard/app/api.go b/dashboard/app/api.go index 08726eed7..304edcd0a 100644 --- a/dashboard/app/api.go +++ b/dashboard/app/api.go @@ -162,6 +162,11 @@ func apiUploadBuild(c context.Context, ns string, r *http.Request) (interface{}, if err := json.NewDecoder(r.Body).Decode(req); err != nil { return nil, fmt.Errorf("failed to unmarshal request: %v", err) } + err := uploadBuild(c, ns, req) + return nil, err +} + +func uploadBuild(c context.Context, ns string, req *dashapi.Build) error { checkStrLen := func(str, name string, maxLen int) error { if str == "" { return fmt.Errorf("%v is empty", name) @@ -172,29 +177,29 @@ func apiUploadBuild(c context.Context, ns string, r *http.Request) (interface{}, return nil } if err := checkStrLen(req.Manager, "Build.Manager", MaxStringLen); err != nil { - return nil, err + return err } if err := checkStrLen(req.ID, "Build.ID", MaxStringLen); err != nil { - return nil, err + return err } if err := checkStrLen(req.KernelRepo, "Build.KernelRepo", MaxStringLen); err != nil { - return nil, err + return err } if err := checkStrLen(req.KernelBranch, "Build.KernelBranch", MaxStringLen); err != nil { - return nil, err + return err } if err := checkStrLen(req.SyzkallerCommit, "Build.SyzkallerCommit", MaxStringLen); err != nil { - return nil, err + return err } if err := checkStrLen(req.CompilerID, "Build.CompilerID", MaxStringLen); err != nil { - return nil, err + return err } if err := checkStrLen(req.KernelCommit, "Build.KernelCommit", MaxStringLen); err != nil { - return nil, err + return err } configID, err := putText(c, ns, "KernelConfig", req.KernelConfig, true) if err != nil { - return nil, err + return err } build := &Build{ Namespace: ns, @@ -211,16 +216,16 @@ func apiUploadBuild(c context.Context, ns string, r *http.Request) (interface{}, KernelConfig: configID, } if _, err := datastore.Put(c, buildKey(c, ns, req.ID), build); err != nil { - return nil, err + return err } if len(req.Commits) != 0 { if err := addCommitsToBugs(c, ns, req.Manager, req.Commits); err != nil { - return nil, err + return err } } - return nil, nil + return nil } func addCommitsToBugs(c context.Context, ns, manager string, commits []string) error { -- cgit mrf-deployment