This is an automated email from the ASF dual-hosted git repository.
dubeejw pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-openwhisk-cli.git
The following commit(s) were added to refs/heads/master by this push:
new 6cae2e3 Refactor parseSwaggerApi function so that it avoids
references to global Flags and Client. (#303)
6cae2e3 is described below
commit 6cae2e371ff551e213e622aae9cf9763ea2a67b3
Author: rodric rabbah <[email protected]>
AuthorDate: Mon May 21 11:21:50 2018 -0400
Refactor parseSwaggerApi function so that it avoids references to global
Flags and Client. (#303)
---
commands/api.go | 26 ++++++++++++++------------
1 file changed, 14 insertions(+), 12 deletions(-)
diff --git a/commands/api.go b/commands/api.go
index 88322e5..18fb6a9 100644
--- a/commands/api.go
+++ b/commands/api.go
@@ -184,7 +184,7 @@ var apiCreateCmd = &cobra.Command{
whisk.DISPLAY_MSG, whisk.DISPLAY_USAGE)
return whiskErr
} else if len(args) == 0 && Flags.api.configfile != "" {
- api, err = parseSwaggerApi()
+ api, err = parseSwaggerApi(Flags.api.configfile,
Client.Config.Namespace)
if err != nil {
whisk.Debug(whisk.DbgError, "parseSwaggerApi()
error: %s\n", err)
errMsg := wski18n.T("Unable to parse swagger
file: {{.err}}", map[string]interface{}{"err": err})
@@ -929,9 +929,9 @@ func parseApi(cmd *cobra.Command, args []string)
(*whisk.Api, *QualifiedName, er
return api, qName, err
}
-func parseSwaggerApi() (*whisk.Api, error) {
+func parseSwaggerApi(configfile string, namespace string) (*whisk.Api, error) {
// Test is for completeness, but this situation should only arise due
to an internal error
- if len(Flags.api.configfile) == 0 {
+ if len(configfile) == 0 {
whisk.Debug(whisk.DbgError, "No swagger file is specified\n")
errMsg := wski18n.T("A configuration file was not specified.")
whiskErr := whisk.MakeWskError(errors.New(errMsg),
whisk.EXIT_CODE_ERR_GENERAL,
@@ -939,18 +939,18 @@ func parseSwaggerApi() (*whisk.Api, error) {
return nil, whiskErr
}
- swagger, err := ReadFile(Flags.api.configfile)
+ swagger, err := ReadFile(configfile)
if err != nil {
- whisk.Debug(whisk.DbgError, "readFile(%s) error: %s\n",
Flags.api.configfile, err)
+ whisk.Debug(whisk.DbgError, "readFile(%s) error: %s\n",
configfile, err)
errMsg := wski18n.T("Error reading swagger file '{{.name}}':
{{.err}}",
- map[string]interface{}{"name": Flags.api.configfile,
"err": err})
+ map[string]interface{}{"name": configfile, "err": err})
whiskErr := whisk.MakeWskErrorFromWskError(errors.New(errMsg),
err, whisk.EXIT_CODE_ERR_GENERAL,
whisk.DISPLAY_MSG, whisk.DISPLAY_USAGE)
return nil, whiskErr
}
// Check if this swagger is in JSON or YAML format
- isYaml := strings.HasSuffix(Flags.api.configfile, yamlFileExtension) ||
strings.HasSuffix(Flags.api.configfile, ymlFileExtension)
+ isYaml := strings.HasSuffix(configfile, yamlFileExtension) ||
strings.HasSuffix(configfile, ymlFileExtension)
if isYaml {
whisk.Debug(whisk.DbgInfo, "Converting YAML formated API
configuration into JSON\n")
jsonbytes, err := yaml.YAMLToJSON([]byte(swagger))
@@ -968,22 +968,24 @@ func parseSwaggerApi() (*whisk.Api, error) {
swaggerObj := new(whisk.ApiSwagger)
err = json.Unmarshal([]byte(swagger), swaggerObj)
if err != nil {
- whisk.Debug(whisk.DbgError, "JSON parse of '%s' error: %s\n",
Flags.api.configfile, err)
+ whisk.Debug(whisk.DbgError, "JSON parse of '%s' error: %s\n",
configfile, err)
errMsg := wski18n.T("Error parsing swagger file '{{.name}}':
{{.err}}",
- map[string]interface{}{"name": Flags.api.configfile,
"err": err})
+ map[string]interface{}{"name": configfile, "err": err})
whiskErr := whisk.MakeWskErrorFromWskError(errors.New(errMsg),
err, whisk.EXIT_CODE_ERR_GENERAL,
whisk.DISPLAY_MSG, whisk.DISPLAY_USAGE)
return nil, whiskErr
}
+
if swaggerObj.BasePath == "" || swaggerObj.SwaggerName == "" ||
swaggerObj.Info == nil || swaggerObj.Paths == nil {
- whisk.Debug(whisk.DbgError, "Swagger file is invalid.\n",
Flags.api.configfile, err)
+ whisk.Debug(whisk.DbgError, "Swagger file is invalid.\n",
configfile, err)
errMsg := wski18n.T("Swagger file is invalid (missing basePath,
info, paths, or swagger fields)")
whiskErr := whisk.MakeWskError(errors.New(errMsg),
whisk.EXIT_CODE_ERR_GENERAL,
whisk.DISPLAY_MSG, whisk.DISPLAY_USAGE)
return nil, whiskErr
}
+
if _, ok := isValidBasepath(swaggerObj.BasePath); !ok {
- whisk.Debug(whisk.DbgError, "Swagger file basePath is
invalid.\n", Flags.api.configfile, err)
+ whisk.Debug(whisk.DbgError, "Swagger file basePath is
invalid.\n", configfile, err)
errMsg := wski18n.T("Swagger file basePath must start with a
leading slash (/)")
whiskErr := whisk.MakeWskError(errors.New(errMsg),
whisk.EXIT_CODE_ERR_GENERAL,
whisk.DISPLAY_MSG, whisk.DISPLAY_USAGE)
@@ -991,7 +993,7 @@ func parseSwaggerApi() (*whisk.Api, error) {
}
api := new(whisk.Api)
- api.Namespace = Client.Config.Namespace
+ api.Namespace = namespace
api.Swagger = swagger
return api, nil
--
To stop receiving notification emails like this one, please contact
[email protected].