From 148d52c890140d984b4414749bc9d2b296b1fec2 Mon Sep 17 00:00:00 2001 From: Henrique Chehad Date: Mon, 22 Aug 2016 19:17:58 -0300 Subject: [PATCH] updates after runner factored --- api/models/app.go | 1 + api/runner/runner.go | 14 ++++++++++++++ api/server/routes_create.go | 9 +++++++-- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/api/models/app.go b/api/models/app.go index 811f60510..e1e8d62f6 100644 --- a/api/models/app.go +++ b/api/models/app.go @@ -17,6 +17,7 @@ var ( ErrAppsNothingToUpdate = errors.New("Nothing to update") ErrAppsMissingNew = errors.New("Missing new application") ErrUsableImage = errors.New("Image not found") + ErrNewRunnerDriver = errors.New("Error creating the runner driver") ) type App struct { diff --git a/api/runner/runner.go b/api/runner/runner.go index b9af01a4f..0703db280 100644 --- a/api/runner/runner.go +++ b/api/runner/runner.go @@ -64,6 +64,20 @@ func (r *Runner) Run(ctx context.Context, cfg *Config) (drivers.RunResult, error return result, nil } +func (r Runner) EnsureUsableImage(cfg *Config) error { + ctask := &containerTask{ + cfg: cfg, + auth: &agent.ConfigAuth{}, + } + + err := r.driver.EnsureUsableImage(cfg.Ctx, ctask) + if err != nil { + return err + } + return nil +} + + func selectDriver(driver string, env *common.Environment, conf *driverscommon.Config) (drivers.Driver, error) { switch driver { case "docker": diff --git a/api/server/routes_create.go b/api/server/routes_create.go index f527f1176..36adb5a59 100644 --- a/api/server/routes_create.go +++ b/api/server/routes_create.go @@ -38,12 +38,17 @@ func handleRouteCreate(c *gin.Context) { return } - run := runner.New(&runner.Config{ + run, err := runner.New() + if err != nil { + c.JSON(http.StatusInternalServerError, simpleError(models.ErrNewRunnerDriver)) + return + } + + err = run.EnsureUsableImage(&runner.Config{ Ctx: ctx, Route: wroute.Route, }) - err = run.EnsureUsableImage() if err != nil { c.JSON(http.StatusInternalServerError, simpleError(models.ErrUsableImage)) return