@@ -184,7 +184,7 @@ var apiCreateCmd = &cobra.Command{
184184 whisk .DISPLAY_MSG , whisk .DISPLAY_USAGE )
185185 return whiskErr
186186 } else if len (args ) == 0 && Flags .api .configfile != "" {
187- api , err = parseSwaggerApi ()
187+ api , err = parseSwaggerApi (Flags . api . configfile , Client . Config . Namespace )
188188 if err != nil {
189189 whisk .Debug (whisk .DbgError , "parseSwaggerApi() error: %s\n " , err )
190190 errMsg := wski18n .T ("Unable to parse swagger file: {{.err}}" , map [string ]interface {}{"err" : err })
@@ -929,28 +929,28 @@ func parseApi(cmd *cobra.Command, args []string) (*whisk.Api, *QualifiedName, er
929929 return api , qName , err
930930}
931931
932- func parseSwaggerApi () (* whisk.Api , error ) {
932+ func parseSwaggerApi (configfile string , namespace string ) (* whisk.Api , error ) {
933933 // Test is for completeness, but this situation should only arise due to an internal error
934- if len (Flags . api . configfile ) == 0 {
934+ if len (configfile ) == 0 {
935935 whisk .Debug (whisk .DbgError , "No swagger file is specified\n " )
936936 errMsg := wski18n .T ("A configuration file was not specified." )
937937 whiskErr := whisk .MakeWskError (errors .New (errMsg ), whisk .EXIT_CODE_ERR_GENERAL ,
938938 whisk .DISPLAY_MSG , whisk .DISPLAY_USAGE )
939939 return nil , whiskErr
940940 }
941941
942- swagger , err := ReadFile (Flags . api . configfile )
942+ swagger , err := ReadFile (configfile )
943943 if err != nil {
944- whisk .Debug (whisk .DbgError , "readFile(%s) error: %s\n " , Flags . api . configfile , err )
944+ whisk .Debug (whisk .DbgError , "readFile(%s) error: %s\n " , configfile , err )
945945 errMsg := wski18n .T ("Error reading swagger file '{{.name}}': {{.err}}" ,
946- map [string ]interface {}{"name" : Flags . api . configfile , "err" : err })
946+ map [string ]interface {}{"name" : configfile , "err" : err })
947947 whiskErr := whisk .MakeWskErrorFromWskError (errors .New (errMsg ), err , whisk .EXIT_CODE_ERR_GENERAL ,
948948 whisk .DISPLAY_MSG , whisk .DISPLAY_USAGE )
949949 return nil , whiskErr
950950 }
951951
952952 // Check if this swagger is in JSON or YAML format
953- isYaml := strings .HasSuffix (Flags . api . configfile , yamlFileExtension ) || strings .HasSuffix (Flags . api . configfile , ymlFileExtension )
953+ isYaml := strings .HasSuffix (configfile , yamlFileExtension ) || strings .HasSuffix (configfile , ymlFileExtension )
954954 if isYaml {
955955 whisk .Debug (whisk .DbgInfo , "Converting YAML formated API configuration into JSON\n " )
956956 jsonbytes , err := yaml .YAMLToJSON ([]byte (swagger ))
@@ -968,30 +968,32 @@ func parseSwaggerApi() (*whisk.Api, error) {
968968 swaggerObj := new (whisk.ApiSwagger )
969969 err = json .Unmarshal ([]byte (swagger ), swaggerObj )
970970 if err != nil {
971- whisk .Debug (whisk .DbgError , "JSON parse of '%s' error: %s\n " , Flags . api . configfile , err )
971+ whisk .Debug (whisk .DbgError , "JSON parse of '%s' error: %s\n " , configfile , err )
972972 errMsg := wski18n .T ("Error parsing swagger file '{{.name}}': {{.err}}" ,
973- map [string ]interface {}{"name" : Flags . api . configfile , "err" : err })
973+ map [string ]interface {}{"name" : configfile , "err" : err })
974974 whiskErr := whisk .MakeWskErrorFromWskError (errors .New (errMsg ), err , whisk .EXIT_CODE_ERR_GENERAL ,
975975 whisk .DISPLAY_MSG , whisk .DISPLAY_USAGE )
976976 return nil , whiskErr
977977 }
978+
978979 if swaggerObj .BasePath == "" || swaggerObj .SwaggerName == "" || swaggerObj .Info == nil || swaggerObj .Paths == nil {
979- whisk .Debug (whisk .DbgError , "Swagger file is invalid.\n " , Flags . api . configfile , err )
980+ whisk .Debug (whisk .DbgError , "Swagger file is invalid.\n " , configfile , err )
980981 errMsg := wski18n .T ("Swagger file is invalid (missing basePath, info, paths, or swagger fields)" )
981982 whiskErr := whisk .MakeWskError (errors .New (errMsg ), whisk .EXIT_CODE_ERR_GENERAL ,
982983 whisk .DISPLAY_MSG , whisk .DISPLAY_USAGE )
983984 return nil , whiskErr
984985 }
986+
985987 if _ , ok := isValidBasepath (swaggerObj .BasePath ); ! ok {
986- whisk .Debug (whisk .DbgError , "Swagger file basePath is invalid.\n " , Flags . api . configfile , err )
988+ whisk .Debug (whisk .DbgError , "Swagger file basePath is invalid.\n " , configfile , err )
987989 errMsg := wski18n .T ("Swagger file basePath must start with a leading slash (/)" )
988990 whiskErr := whisk .MakeWskError (errors .New (errMsg ), whisk .EXIT_CODE_ERR_GENERAL ,
989991 whisk .DISPLAY_MSG , whisk .DISPLAY_USAGE )
990992 return nil , whiskErr
991993 }
992994
993995 api := new (whisk.Api )
994- api .Namespace = Client . Config . Namespace
996+ api .Namespace = namespace
995997 api .Swagger = swagger
996998
997999 return api , nil
0 commit comments