From 5a6ebb4e2f943be22022b2bd6bf786c1e2a73519 Mon Sep 17 00:00:00 2001 From: Pedro Nasser Date: Mon, 19 Dec 2016 16:30:18 -0200 Subject: [PATCH] fn should show API errors messages (#450) * fn should show API errors messages * update functions_go * update functions_go lock --- docs/swagger.yml | 6 +++++- fn/apps.go | 20 ++++++++++++++++++++ fn/glide.lock | 2 +- fn/routes.go | 9 +++++++-- 4 files changed, 33 insertions(+), 4 deletions(-) diff --git a/docs/swagger.yml b/docs/swagger.yml index 9b1387243..74588d261 100644 --- a/docs/swagger.yml +++ b/docs/swagger.yml @@ -6,7 +6,7 @@ swagger: '2.0' info: title: IronFunctions description: The open source serverless platform. - version: "0.1.27" + version: "0.1.28" # the domain of the service host: "127.0.0.1:8080" # array of all schemes that your API supports @@ -434,6 +434,8 @@ definitions: type: array items: $ref: '#/definitions/App' + error: + $ref: '#/definitions/ErrorBody' AppWrapper: type: object @@ -442,6 +444,8 @@ definitions: properties: app: $ref: '#/definitions/App' + error: + $ref: '#/definitions/ErrorBody' Task: allOf: diff --git a/fn/apps.go b/fn/apps.go index eba5043df..1b4af0bea 100644 --- a/fn/apps.go +++ b/fn/apps.go @@ -99,6 +99,10 @@ func (a *appsCmd) list(c *cli.Context) error { return fmt.Errorf("error getting app: %v", err) } + if msg := wrapper.Error_.Message; msg != "" { + return errors.New(msg) + } + if len(wrapper.Apps) == 0 { fmt.Println("no apps found") return nil @@ -129,6 +133,10 @@ func (a *appsCmd) create(c *cli.Context) error { return fmt.Errorf("error creating app: %v", err) } + if msg := wrapper.Error_.Message; msg != "" { + return errors.New(msg) + } + fmt.Println(wrapper.App.Name, "created") return nil } @@ -148,6 +156,10 @@ func (a *appsCmd) configList(c *cli.Context) error { return fmt.Errorf("error creating app: %v", err) } + if msg := wrapper.Error_.Message; msg != "" { + return errors.New(msg) + } + config := wrapper.App.Config if len(config) == 0 { return errors.New("this application has no configurations") @@ -191,6 +203,10 @@ func (a *appsCmd) configSet(c *cli.Context) error { return fmt.Errorf("error creating app: %v", err) } + if msg := wrapper.Error_.Message; msg != "" { + return errors.New(msg) + } + config := wrapper.App.Config if config == nil { @@ -224,6 +240,10 @@ func (a *appsCmd) configUnset(c *cli.Context) error { return fmt.Errorf("error creating app: %v", err) } + if msg := wrapper.Error_.Message; msg != "" { + return errors.New(msg) + } + config := wrapper.App.Config if config == nil { diff --git a/fn/glide.lock b/fn/glide.lock index 10407ef3a..da7fe19e2 100644 --- a/fn/glide.lock +++ b/fn/glide.lock @@ -77,7 +77,7 @@ imports: - name: github.com/hashicorp/go-cleanhttp version: ad28ea4487f05916463e2423a55166280e8254b5 - name: github.com/iron-io/functions_go - version: 429df8920abd7c47dfcd6777dba278d6122ab93d + version: f38f2174656467ec3ed404b7294e9ee172573e43 - name: github.com/iron-io/iron_go3 version: b50ecf8ff90187fc5fabccd9d028dd461adce4ee subpackages: diff --git a/fn/routes.go b/fn/routes.go index 88abd2a40..ddf4c3e30 100644 --- a/fn/routes.go +++ b/fn/routes.go @@ -184,6 +184,10 @@ func (a *routesCmd) list(c *cli.Context) error { return fmt.Errorf("error getting routes: %v", err) } + if msg := wrapper.Error_.Message; msg != "" { + return errors.New(msg) + } + baseURL, err := url.Parse(a.Configuration.BasePath) if err != nil { return fmt.Errorf("error parsing base path: %v", err) @@ -338,8 +342,9 @@ func (a *routesCmd) create(c *cli.Context) error { if err != nil { return fmt.Errorf("error creating route: %v", err) } - if wrapper.Route.Path == "" || wrapper.Route.Image == "" { - return fmt.Errorf("could not create this route (%s at %s), check if route path is correct", route, appName) + + if msg := wrapper.Error_.Message; msg != "" { + return errors.New(msg) } fmt.Println(wrapper.Route.Path, "created with", wrapper.Route.Image)