This is an automated email from the ASF dual-hosted git repository.
pdesai pushed a commit to branch master
in repository
https://gitbox.apache.org/repos/asf/incubator-openwhisk-wskdeploy.git
The following commit(s) were added to refs/heads/master by this push:
new a3efa2c Bug fix. Export shouldn't fail when ApiGW missing (#979)
a3efa2c is described below
commit a3efa2c9d5e99c7d38322d4bca61a4a414c6ef88
Author: Pavel Kravchenko <[email protected]>
AuthorDate: Mon Sep 10 21:00:06 2018 +0300
Bug fix. Export shouldn't fail when ApiGW missing (#979)
* Bug fix. Export shouldn't fail when ApiGW missing
* reverting unneeded formatting
---
cmd/export.go | 92 ++++++++++++++++++++++------------------
wski18n/i18n_ids.go | 1 +
wski18n/i18n_resources.go | 22 +++++-----
wski18n/resources/en_US.all.json | 4 ++
4 files changed, 66 insertions(+), 53 deletions(-)
diff --git a/cmd/export.go b/cmd/export.go
index a894906..886344e 100644
--- a/cmd/export.go
+++ b/cmd/export.go
@@ -30,6 +30,7 @@ import (
"github.com/apache/incubator-openwhisk-wskdeploy/runtimes"
"github.com/apache/incubator-openwhisk-wskdeploy/utils"
"github.com/apache/incubator-openwhisk-wskdeploy/wski18n"
+ "github.com/apache/incubator-openwhisk-wskdeploy/wskprint"
"github.com/spf13/cobra"
)
@@ -274,68 +275,75 @@ func exportProject(projectName string, targetManifest
string) error {
}
- // List API request query parameters
- apiListReqOptions := new(whisk.ApiListRequestOptions)
- apiListReqOptions.SpaceGuid = strings.Split(client.Config.AuthToken,
":")[0]
- apiListReqOptions.AccessToken = client.Config.ApigwAccessToken
+ // API Gateway is an optional component. Export APIs only when
ApigwAccessToken is configured
+ if len(client.ApigwAccessToken) == 0 {
+ warningString :=
wski18n.T(wski18n.ID_MSG_CONFIG_MISSING_APIGW_ACCESS_TOKEN)
+ wskprint.PrintOpenWhiskWarning(warningString)
+ } else {
- // Get list of APIs from OW
- retApiList, _, err := client.Apis.List(apiListReqOptions)
- if err != nil {
- return err
- }
+ // List API request query parameters
+ apiListReqOptions := new(whisk.ApiListRequestOptions)
+ apiListReqOptions.SpaceGuid =
strings.Split(client.Config.AuthToken, ":")[0]
+ apiListReqOptions.AccessToken = client.Config.ApigwAccessToken
+
+ // Get list of APIs from OW
+ retApiList, _, err := client.Apis.List(apiListReqOptions)
+ if err != nil {
+ return err
+ }
- // iterate over the list of APIs to determine whether any of them part
of the managed project
- retApiArray := (*whisk.RetApiArray)(retApiList)
- for _, api := range retApiArray.Apis {
+ // iterate over the list of APIs to determine whether any of
them part of the managed project
+ retApiArray := (*whisk.RetApiArray)(retApiList)
+ for _, api := range retApiArray.Apis {
- apiName := api.ApiValue.Swagger.Info.Title
- apiBasePath :=
strings.TrimPrefix(api.ApiValue.Swagger.BasePath, "/")
+ apiName := api.ApiValue.Swagger.Info.Title
+ apiBasePath :=
strings.TrimPrefix(api.ApiValue.Swagger.BasePath, "/")
- // run over api paths looking for one pointing to an action
belonging to the given project
- for path := range api.ApiValue.Swagger.Paths {
- for op, opv := range
api.ApiValue.Swagger.Paths[path].MakeOperationMap() {
- if len(opv.XOpenWhisk.Package) > 0 {
- pkgName := opv.XOpenWhisk.Package
+ // run over api paths looking for one pointing to an
action belonging to the given project
+ for path := range api.ApiValue.Swagger.Paths {
+ for op, opv := range
api.ApiValue.Swagger.Paths[path].MakeOperationMap() {
+ if len(opv.XOpenWhisk.Package) > 0 {
+ pkgName :=
opv.XOpenWhisk.Package
- if pkg, ok :=
maniyaml.Packages[pkgName]; ok {
- if pkg.Namespace ==
opv.XOpenWhisk.Namespace {
+ if pkg, ok :=
maniyaml.Packages[pkgName]; ok {
+ if pkg.Namespace ==
opv.XOpenWhisk.Namespace {
- // now adding the api
to the maniyaml
- if pkg.Apis == nil {
- pkg.Apis =
make(map[string]map[string]map[string]map[string]parsers.APIMethodResponse)
- }
+ // now adding
the api to the maniyaml
+ if pkg.Apis ==
nil {
+
pkg.Apis =
make(map[string]map[string]map[string]map[string]parsers.APIMethodResponse)
+ }
- path =
strings.TrimPrefix(path, "/")
+ path =
strings.TrimPrefix(path, "/")
- apiMethodResponse :=
*new(parsers.APIMethodResponse)
- splitApiUrl :=
strings.Split(opv.XOpenWhisk.ApiUrl, ".")
- responseType :=
splitApiUrl[len(splitApiUrl)-1]
+
apiMethodResponse := *new(parsers.APIMethodResponse)
+ splitApiUrl :=
strings.Split(opv.XOpenWhisk.ApiUrl, ".")
+ responseType :=
splitApiUrl[len(splitApiUrl)-1]
-
apiMethodResponse.Method = op
-
apiMethodResponse.Response = responseType
+
apiMethodResponse.Method = op
+
apiMethodResponse.Response = responseType
- if pkgApi, ok :=
pkg.Apis[apiName]; ok {
- if
pkgApiBasePath, ok := pkgApi[apiBasePath]; ok {
- if _,
ok := pkgApiBasePath[path]; ok {
-
pkg.Apis[apiName][apiBasePath][path][opv.XOpenWhisk.ActionName] =
apiMethodResponse
+ if pkgApi, ok
:= pkg.Apis[apiName]; ok {
+ if
pkgApiBasePath, ok := pkgApi[apiBasePath]; ok {
+
if _, ok := pkgApiBasePath[path]; ok {
+
pkg.Apis[apiName][apiBasePath][path][opv.XOpenWhisk.ActionName] =
apiMethodResponse
+
} else {
+
pkg.Apis[apiName][apiBasePath][path] =
map[string]parsers.APIMethodResponse{}
+
pkg.Apis[apiName][apiBasePath][path][opv.XOpenWhisk.ActionName] =
apiMethodResponse
+
}
} else {
+
pkg.Apis[apiName][apiBasePath] =
map[string]map[string]parsers.APIMethodResponse{}
pkg.Apis[apiName][apiBasePath][path] = map[string]parsers.APIMethodResponse{}
pkg.Apis[apiName][apiBasePath][path][opv.XOpenWhisk.ActionName] =
apiMethodResponse
}
} else {
+
pkg.Apis[apiName] = map[string]map[string]map[string]parsers.APIMethodResponse{}
pkg.Apis[apiName][apiBasePath] =
map[string]map[string]parsers.APIMethodResponse{}
pkg.Apis[apiName][apiBasePath][path] = map[string]parsers.APIMethodResponse{}
pkg.Apis[apiName][apiBasePath][path][opv.XOpenWhisk.ActionName] =
apiMethodResponse
}
- } else {
-
pkg.Apis[apiName] = map[string]map[string]map[string]parsers.APIMethodResponse{}
-
pkg.Apis[apiName][apiBasePath] =
map[string]map[string]parsers.APIMethodResponse{}
-
pkg.Apis[apiName][apiBasePath][path] = map[string]parsers.APIMethodResponse{}
-
pkg.Apis[apiName][apiBasePath][path][opv.XOpenWhisk.ActionName] =
apiMethodResponse
- }
-
maniyaml.Packages[pkgName] = pkg
+
maniyaml.Packages[pkgName] = pkg
+ }
}
}
}
diff --git a/wski18n/i18n_ids.go b/wski18n/i18n_ids.go
index faaf979..041aff8 100644
--- a/wski18n/i18n_ids.go
+++ b/wski18n/i18n_ids.go
@@ -336,4 +336,5 @@ var I18N_ID_SET = [](string){
ID_WARN_PACKAGES_NOT_FOUND_X_path_X,
ID_WARN_RUNTIME_CHANGED_X_runtime_X_action_X,
ID_WARN_WHISK_PROPS_DEPRECATED,
+ ID_MSG_CONFIG_MISSING_APIGW_ACCESS_TOKEN,
}
diff --git a/wski18n/i18n_resources.go b/wski18n/i18n_resources.go
index ecc0f6a..2a1c643 100644
--- a/wski18n/i18n_resources.go
+++ b/wski18n/i18n_resources.go
@@ -92,12 +92,12 @@ func wski18nResourcesDe_deAllJson() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "wski18n/resources/de_DE.all.json", size:
0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
+ info := bindataFileInfo{name: "wski18n/resources/de_DE.all.json", size:
0, mode: os.FileMode(436), modTime: time.Unix(1536397114, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
-var _wski18nResourcesEn_usAllJson =
[]byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x3c\x6b\x8f\x1b\x37\x92\xdf\xfd\x2b\x0a\xc1\x02\x4e\x80\x19\x4d\xb2\x87\x03\x0e\xc6\xf9\x80\x39\x7b\x92\x9d\x8d\xed\x31\xc6\xe3\x0d\x02\xdb\x68\x53\xdd\x25\x89\xab\x6e\xb2\x97\x64\x4b\x56\x06\xfa\xef\x87\x2a\x92\xdd\xad\x47\x3f\x24\x3b\xb8\xf5\x17\x4b\x22\x59\x2f\x16\xeb\x49\xce\x87\x27\x00\x8f\x4f\x00\x00\xbe\x93\xd9\x77\xcf\xe0\xbb\xc2\xce\x93\xd2\xe0\x4c\x7e\x49\xd0\x18\x6d\xbe\xbb\xf0\xa3\xce\x08
[...]
+var _wski18nResourcesEn_usAllJson =
[]byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x3c\x6b\x8f\x1b\x37\x92\xdf\xfd\x2b\x0a\xc1\x02\x4e\x80\x19\x4d\xb2\x87\x03\x0e\xc6\xf9\x80\x39\x7b\x92\x9d\x8d\xed\x31\xc6\xe3\x0d\x02\xdb\x68\x53\xdd\x25\x89\xab\x6e\xb2\x97\x64\x4b\x56\x06\xfa\xef\x87\x2a\x92\xdd\xad\x47\x3f\x24\x3b\xb8\xf5\x17\x4b\x22\x59\x2f\x16\xeb\x49\xce\x87\x27\x00\x8f\x4f\x00\x00\xbe\x93\xd9\x77\xcf\xe0\xbb\xc2\xce\x93\xd2\xe0\x4c\x7e\x49\xd0\x18\x6d\xbe\xbb\xf0\xa3\xce\x08
[...]
func wski18nResourcesEn_usAllJsonBytes() ([]byte, error) {
return bindataRead(
@@ -112,7 +112,7 @@ func wski18nResourcesEn_usAllJson() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "wski18n/resources/en_US.all.json", size:
19493, mode: os.FileMode(420), modTime: time.Unix(1535665259, 0)}
+ info := bindataFileInfo{name: "wski18n/resources/en_US.all.json", size:
19618, mode: os.FileMode(436), modTime: time.Unix(1536397293, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -132,7 +132,7 @@ func wski18nResourcesEs_esAllJson() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "wski18n/resources/es_ES.all.json", size:
0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
+ info := bindataFileInfo{name: "wski18n/resources/es_ES.all.json", size:
0, mode: os.FileMode(436), modTime: time.Unix(1536397114, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -152,7 +152,7 @@ func wski18nResourcesFr_frAllJson() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "wski18n/resources/fr_FR.all.json", size:
101, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
+ info := bindataFileInfo{name: "wski18n/resources/fr_FR.all.json", size:
101, mode: os.FileMode(436), modTime: time.Unix(1536397114, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -172,7 +172,7 @@ func wski18nResourcesIt_itAllJson() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "wski18n/resources/it_IT.all.json", size:
0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
+ info := bindataFileInfo{name: "wski18n/resources/it_IT.all.json", size:
0, mode: os.FileMode(436), modTime: time.Unix(1536397114, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -192,7 +192,7 @@ func wski18nResourcesJa_jaAllJson() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "wski18n/resources/ja_JA.all.json", size:
0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
+ info := bindataFileInfo{name: "wski18n/resources/ja_JA.all.json", size:
0, mode: os.FileMode(436), modTime: time.Unix(1536397114, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -212,7 +212,7 @@ func wski18nResourcesKo_krAllJson() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "wski18n/resources/ko_KR.all.json", size:
0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
+ info := bindataFileInfo{name: "wski18n/resources/ko_KR.all.json", size:
0, mode: os.FileMode(436), modTime: time.Unix(1536397114, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -232,7 +232,7 @@ func wski18nResourcesPt_brAllJson() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "wski18n/resources/pt_BR.all.json", size:
0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
+ info := bindataFileInfo{name: "wski18n/resources/pt_BR.all.json", size:
0, mode: os.FileMode(436), modTime: time.Unix(1536397114, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -252,7 +252,7 @@ func wski18nResourcesZh_hansAllJson() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "wski18n/resources/zh_Hans.all.json",
size: 0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
+ info := bindataFileInfo{name: "wski18n/resources/zh_Hans.all.json",
size: 0, mode: os.FileMode(436), modTime: time.Unix(1536397114, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -272,7 +272,7 @@ func wski18nResourcesZh_hantAllJson() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "wski18n/resources/zh_Hant.all.json",
size: 0, mode: os.FileMode(420), modTime: time.Unix(1520374115, 0)}
+ info := bindataFileInfo{name: "wski18n/resources/zh_Hant.all.json",
size: 0, mode: os.FileMode(436), modTime: time.Unix(1536397114, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
diff --git a/wski18n/resources/en_US.all.json b/wski18n/resources/en_US.all.json
index 35978ee..9545ea2 100644
--- a/wski18n/resources/en_US.all.json
+++ b/wski18n/resources/en_US.all.json
@@ -503,5 +503,9 @@
{
"id": "msg_dbg_packages_found_project",
"translation": "Deployment file [{{.path}}]: Found packages under project
[{{.name}}].\n"
+ },
+ {
+ "id": "msg_config_missing_apigw_access_token",
+ "translation": "The apigw access token is not configured.\n"
}
]