You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwhisk.apache.org by mr...@apache.org on 2017/08/25 22:28:27 UTC
[incubator-openwhisk-client-go] branch master updated: Remove the
whisk base url from the wskprops (#32)
This is an automated email from the ASF dual-hosted git repository.
mrutkowski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-openwhisk-client-go.git
The following commit(s) were added to refs/heads/master by this push:
new c69110e Remove the whisk base url from the wskprops (#32)
c69110e is described below
commit c69110e47c8bcd56f25fbfd179c139b7555449d1
Author: Vincent <sh...@us.ibm.com>
AuthorDate: Fri Aug 25 18:28:26 2017 -0400
Remove the whisk base url from the wskprops (#32)
---
whisk/wskprops.go | 76 +++++++-----------
whisk/wskprops_test.go | 168 ++++++++-------------------------------
wski18n/i18n_resources.go | 4 +-
wski18n/resources/en_US.all.json | 16 +---
4 files changed, 68 insertions(+), 196 deletions(-)
diff --git a/whisk/wskprops.go b/whisk/wskprops.go
index 09a0535..1a5202f 100644
--- a/whisk/wskprops.go
+++ b/whisk/wskprops.go
@@ -39,11 +39,9 @@ const (
OPENWHISK_HOST= "whisk.api.host.name"
DEFAULT_VERSION = "v1"
DEFAULT_NAMESPACE = "guest"
- DEFAULT_API = "api"
NAMESPACE = "NAMESPACE"
AUTH = "AUTH"
- WHISK_APIHOST = "WHISK_APIHOST"
APIGW_ACCESS_TOKEN = "APIGW_ACCESS_TOKEN"
APIVERSION = "APIVERSION"
KEY = "KEY"
@@ -56,7 +54,6 @@ const (
)
type Wskprops struct {
- WHISKAPIURL string
APIHost string
AuthKey string
Namespace string
@@ -68,24 +65,32 @@ type Wskprops struct {
Source string
}
-func convertWskpropsToConfig(dep *Wskprops) *Config {
+func GetURLBase(host string) (*url.URL, error) {
+ urlBase := fmt.Sprintf("%s/api", host)
+ url, err := url.Parse(urlBase)
+
+ if len(url.Scheme) == 0 || len(url.Host) == 0 {
+ urlBase = fmt.Sprintf("https://%s/api", host)
+ url, err = url.Parse(urlBase)
+ }
+
+ return url, err
+}
+
+func convertWskpropsToConfig(dep *Wskprops) (*Config) {
var config Config
- var err error
- config.BaseURL, err = url.Parse(dep.WHISKAPIURL)
- if err != nil {
- config.BaseURL = nil
+ config.Host = dep.APIHost
+ if len(config.Host) != 0 {
+ v, err := GetURLBase(config.Host)
+ if err == nil {
+ config.BaseURL = v
+ }
}
config.Namespace = dep.Namespace
config.Cert = dep.Cert
config.Key = dep.Key
config.AuthToken = dep.AuthKey
- if config.BaseURL != nil {
- config.Host = config.BaseURL.Host
- } else {
- config.Host = ""
- }
-
config.Version = dep.Apiversion
config.Verbose = false
config.Debug = false
@@ -167,13 +172,8 @@ func (pi PropertiesImp) GetPropsFromWskprops(path string) *Wskprops {
if err == nil {
- dep.WHISKAPIURL = GetValue(results, WHISK_APIHOST, dep.WHISKAPIURL)
- baseURL, err := url.Parse(dep.WHISKAPIURL)
- if err != nil {
- dep.APIHost = GetValue(results, APIHOST, dep.APIHost)
- } else {
- dep.APIHost = baseURL.Host
- }
+ dep.APIHost = GetValue(results, APIHOST, dep.APIHost)
+
dep.AuthKey = GetValue(results, AUTH, dep.AuthKey)
dep.Namespace = GetValue(results, NAMESPACE, dep.Namespace)
dep.AuthAPIGWKey = GetValue(results, APIGW_ACCESS_TOKEN, dep.AuthAPIGWKey)
@@ -199,17 +199,7 @@ func (pi PropertiesImp) GetPropsFromWhiskProperties() *Wskprops {
if err == nil {
dep.AuthKey = strings.TrimSpace(string(b))
}
-
- var pro = GetValue(results, OPENWHISK_PRO, "")
- var port = GetValue(results, OPENWHISK_PORT, "")
- var host = GetValue(results, OPENWHISK_HOST, "")
- dep.WHISKAPIURL = fmt.Sprintf("%s://%s:%s/%s", pro, host, port, DEFAULT_API)
- baseURL, err := url.Parse(dep.WHISKAPIURL)
- if err != nil {
- dep.APIHost = fmt.Sprintf("%s:%s", host, port)
- } else {
- dep.APIHost = baseURL.Host
- }
+ dep.APIHost = GetValue(results, OPENWHISK_HOST, "")
dep.Namespace = DEFAULT_NAMESPACE
if len(dep.AuthKey) > 0 {
dep.APIGWSpaceSuid = strings.Split(dep.AuthKey, ":")[0]
@@ -221,23 +211,15 @@ func (pi PropertiesImp) GetPropsFromWhiskProperties() *Wskprops {
var ValidateWskprops = func (wskprops *Wskprops) error {
// There are at least two fields: WHISKAPIURL and AuthKey, mandatory for a valid Wskprops.
errStr := ""
- if (len(wskprops.WHISKAPIURL) == 0) {
+ if (len(wskprops.APIHost) == 0) {
if wskprops.Source == WHISK_PROPERTY {
- errStr = wski18n.T("OpenWhisk API URL is missing (Please configure WHISK_APIHOST in .wskprops under the system HOME directory.)")
+ errStr = wski18n.T("OpenWhisk API host is missing (Please configure WHISK_APIHOST in .wskprops under the system HOME directory.)")
} else {
- errStr = wski18n.T("OpenWhisk API URL is missing (Please configure whisk.api.host.proto, whisk.api.host.name and whisk.api.host.port in whisk.properties under the OPENWHISK_HOME directory.)")
+ errStr = wski18n.T("OpenWhisk API host is missing (Please configure whisk.api.host.proto, whisk.api.host.name and whisk.api.host.port in whisk.properties under the OPENWHISK_HOME directory.)")
}
return MakeWskError(errors.New(errStr), EXIT_CODE_ERR_GENERAL, DISPLAY_MSG, DISPLAY_USAGE)
} else {
- _, err := url.ParseRequestURI(wskprops.WHISKAPIURL)
- if (err != nil) {
- if wskprops.Source == WHISK_PROPERTY {
- errStr = wski18n.T("Invalid OpenWhisk API URL (Please configure WHISK_APIHOST in .wskprops under the system HOME directory.)")
- } else {
- errStr = wski18n.T("Invalid OpenWhisk API URL (Please configure whisk.api.host.proto, whisk.api.host.name and whisk.api.host.port in whisk.properties under the OPENWHISK_HOME directory.)")
- }
- return MakeWskError(errors.New(errStr), EXIT_CODE_ERR_GENERAL, DISPLAY_MSG, DISPLAY_USAGE)
- } else if (len(wskprops.AuthKey) == 0) {
+ if (len(wskprops.AuthKey) == 0) {
if wskprops.Source == WHISK_PROPERTY {
errStr = wski18n.T("Authentication key is missing (Please configure AUTH in .wskprops under the system HOME directory.)")
} else {
@@ -278,13 +260,14 @@ func GetWhiskPropertiesConfig() (*Config, error) {
return GetConfigFromWhiskProperties(pi)
}
-func GetPropertiesImp() PropertiesImp {
+func GetProperties() Properties {
return PropertiesImp{
OsPackage: OSPackageImp{},
}
}
+
func GetWskpropsConfig(path string) (*Config, error) {
- pi := GetPropertiesImp()
+ pi := GetProperties()
return GetConfigFromWskprops(pi, path)
}
@@ -294,7 +277,6 @@ func GetDefaultWskprops(source string) *Wskprops {
}
dep := Wskprops {
- WHISKAPIURL: "",
APIHost: "",
AuthKey: "",
Namespace: DEFAULT_NAMESPACE,
diff --git a/whisk/wskprops_test.go b/whisk/wskprops_test.go
index 10986ef..6717e06 100644
--- a/whisk/wskprops_test.go
+++ b/whisk/wskprops_test.go
@@ -34,7 +34,7 @@ const (
EXPECTED_OPENWHISK_PORT = "443"
EXPECTED_OPENWHISK_PRO = "https"
EXPECTED_TEST_AUTH_KEY = EXPECTED_API_GW_SPACE_SUID + ":123zO3xZCLrMN6v2BKK1dXYFpXlPkccOFqm12CdAsMgRU4VrNZ9lyGVCGuMDGouh"
- EXPECTED_API_HOST= EXPECTED_OPENWHISK_PRO + "://" + EXPECTED_OPENWHISK_HOST + ":" + EXPECTED_OPENWHISK_PORT + "/api"
+ EXPECTED_API_HOST= EXPECTED_OPENWHISK_PRO + "://" + EXPECTED_OPENWHISK_HOST + "/api"
EXPECTED_HOST= EXPECTED_OPENWHISK_HOST + ":" + EXPECTED_OPENWHISK_PORT
EXPECTED_AUTH_API_KEY = "EXPECTED_AUTH_API_KEY"
EXPECTED_API_GW_SPACE_SUID = "32kc46b1-71f6-4ed5-8c54-816aa4f8c502"
@@ -43,7 +43,6 @@ const (
EXPECTED_CERT = "EXPECTED_CERT"
EXPECTED_KEY = "EXPECTED_KEY"
- EXPECTED_API_URL_WHISK = "http://localhost/apihost"
EXPECTED_API_HOST_WHISK = "localhost"
EXPECTED_TEST_AUTH_KEY_WHISK = "EXPECTED_TEST_AUTH_KEY_WHISK"
EXPECTED_NAMESPACE_WHISK = "EXPECTED_NAMESPACE_WHISK"
@@ -53,8 +52,7 @@ const (
EXPECTED_CERT_WHISK = "EXPECTED_CERT_WHISK"
EXPECTED_KEY_WHISK = "EXPECTED_KEY_WHISK"
- EXPECTED_API_URL_LOCAL_CONF = "http://localhost:90/apilocalhost"
- EXPECTED_API_HOST_LOCAL_CONF = "localhost:90"
+ EXPECTED_API_HOST_LOCAL_CONF = "hostname"
EXPECTED_TEST_AUTH_KEY_LOCAL_CONF = "EXPECTED_TEST_AUTH_KEY_LOCAL_CONF"
EXPECTED_NAMESPACE_LOCAL_CONF = "EXPECTED_NAMESPACE_LOCAL_CONF"
EXPECTED_AUTH_API_KEY_LOCAL_CONF = "EXPECTED_AUTH_API_KEY_LOCAL_CONF"
@@ -63,10 +61,8 @@ const (
EXPECTED_CERT_LOCAL_CONF = "EXPECTED_CERT_LOCAL_CONF"
EXPECTED_KEY_LOCAL_CONF = "EXPECTED_KEY_LOCAL_CONF"
- MISSING_AUTH__MESSAGE = "Authentication key is missing"
- MISSING_URL_MESSAGE = "OpenWhisk API URL is missing"
- INVALID_URL_MESSAGE = "Invalid OpenWhisk API URL"
- INVALID_URL = "invalid_url"
+ MISSING_AUTH_MESSAGE = "Authentication key is missing"
+ MISSING_URL_MESSAGE = "OpenWhisk API host is missing"
)
type FakeOSPackage struct {
@@ -119,7 +115,6 @@ type FakePropertiesImp struct {
func (pi FakePropertiesImp) GetPropsFromWskprops(path string) *Wskprops {
dep := Wskprops {
- WHISKAPIURL: GetValue(pi.StoredValues_LOCAL_CONF, WHISK_APIHOST, ""),
APIHost: GetValue(pi.StoredValues_LOCAL_CONF, APIHOST, ""),
AuthKey: GetValue(pi.StoredValues_LOCAL_CONF, AUTH, ""),
Namespace: GetValue(pi.StoredValues_LOCAL_CONF, NAMESPACE, ""),
@@ -135,7 +130,6 @@ func (pi FakePropertiesImp) GetPropsFromWskprops(path string) *Wskprops {
func (pi FakePropertiesImp) GetPropsFromWhiskProperties() *Wskprops {
dep := Wskprops {
- WHISKAPIURL: pi.StoredValues_WHISK[WHISK_APIHOST],
APIHost: pi.StoredValues_WHISK[APIHOST],
AuthKey: pi.StoredValues_WHISK[AUTH],
Namespace: pi.StoredValues_WHISK[NAMESPACE],
@@ -188,7 +182,6 @@ func TestGetPropsFromWhiskProperties(t *testing.T) {
assert.Equal(t, DEFAULT_VERSION, dep.Apiversion)
assert.Equal(t, "", dep.Key)
assert.Equal(t, "", dep.Cert)
- assert.Equal(t, "", dep.WHISKAPIURL)
assert.Equal(t, WHISK_PROPERTY, dep.Source)
lines = []string{ TEST_AUTH_FILE + "=" + TEST_FILE, OPENWHISK_PRO + "=" + EXPECTED_OPENWHISK_PRO,
@@ -205,8 +198,7 @@ func TestGetPropsFromWhiskProperties(t *testing.T) {
assert.Equal(t, DEFAULT_NAMESPACE, dep.Namespace)
assert.Equal(t, EXPECTED_TEST_AUTH_KEY, dep.AuthKey)
assert.Equal(t, "", dep.AuthAPIGWKey)
- assert.Equal(t, EXPECTED_HOST, dep.APIHost)
- assert.Equal(t, EXPECTED_API_HOST, dep.WHISKAPIURL)
+ assert.Equal(t, EXPECTED_OPENWHISK_HOST, dep.APIHost)
assert.Equal(t, EXPECTED_API_GW_SPACE_SUID, dep.APIGWSpaceSuid)
assert.Equal(t, DEFAULT_VERSION, dep.Apiversion)
assert.Equal(t, "", dep.Key)
@@ -227,8 +219,7 @@ func TestGetPropsFromWhiskProperties(t *testing.T) {
assert.Equal(t, DEFAULT_NAMESPACE, dep.Namespace)
assert.Equal(t, "", dep.AuthKey)
assert.Equal(t, "", dep.AuthAPIGWKey)
- assert.Equal(t, EXPECTED_API_HOST, dep.WHISKAPIURL)
- assert.Equal(t, EXPECTED_HOST, dep.APIHost)
+ assert.Equal(t, EXPECTED_OPENWHISK_HOST, dep.APIHost)
assert.Equal(t, "", dep.APIGWSpaceSuid)
assert.Equal(t, DEFAULT_VERSION, dep.Apiversion)
assert.Equal(t, "", dep.Key)
@@ -240,7 +231,7 @@ func TestGetPropsFromWhiskProperties(t *testing.T) {
}
func TestGetPropsFromWskprops(t *testing.T) {
- lines := []string{ WHISK_APIHOST + "=" + EXPECTED_API_HOST, AUTH + "=" + EXPECTED_TEST_AUTH_KEY,
+ lines := []string{ APIHOST + "=" + EXPECTED_HOST, AUTH + "=" + EXPECTED_TEST_AUTH_KEY,
NAMESPACE + "=" + DEFAULT_NAMESPACE,
APIGW_ACCESS_TOKEN + "=" + EXPECTED_AUTH_API_KEY, APIVERSION + "=" + EXPECTED_API_VERSION,
KEY + "=" + EXPECTED_KEY, CERT + "=" + EXPECTED_CERT}
@@ -260,7 +251,6 @@ func TestGetPropsFromWskprops(t *testing.T) {
assert.Equal(t, EXPECTED_TEST_AUTH_KEY, dep.AuthKey)
assert.Equal(t, EXPECTED_AUTH_API_KEY, dep.AuthAPIGWKey)
assert.Equal(t, EXPECTED_HOST, dep.APIHost)
- assert.Equal(t, EXPECTED_API_HOST, dep.WHISKAPIURL)
assert.Equal(t, EXPECTED_API_GW_SPACE_SUID, dep.APIGWSpaceSuid)
assert.Equal(t, EXPECTED_API_VERSION, dep.Apiversion)
assert.Equal(t, EXPECTED_KEY, dep.Key)
@@ -273,7 +263,6 @@ func TestGetPropsFromWskprops(t *testing.T) {
assert.Equal(t, EXPECTED_TEST_AUTH_KEY, dep.AuthKey)
assert.Equal(t, EXPECTED_AUTH_API_KEY, dep.AuthAPIGWKey)
assert.Equal(t, EXPECTED_HOST, dep.APIHost)
- assert.Equal(t, EXPECTED_API_HOST, dep.WHISKAPIURL)
assert.Equal(t, EXPECTED_API_GW_SPACE_SUID, dep.APIGWSpaceSuid)
assert.Equal(t, EXPECTED_API_VERSION, dep.Apiversion)
assert.Equal(t, EXPECTED_KEY, dep.Key)
@@ -286,8 +275,7 @@ func TestGetPropsFromWskprops(t *testing.T) {
func TestGetDefaultConfigFromProperties(t *testing.T) {
fakeProperties := FakePropertiesImp{
StoredValues_LOCAL_CONF: map[string]string {
- WHISK_APIHOST: EXPECTED_API_HOST,
- APIHOST: EXPECTED_HOST,
+ APIHOST: EXPECTED_OPENWHISK_HOST,
AUTH: EXPECTED_AUTH_API_KEY,
NAMESPACE: DEFAULT_NAMESPACE,
APIGW_ACCESS_TOKEN: EXPECTED_AUTH_API_KEY,
@@ -303,7 +291,7 @@ func TestGetDefaultConfigFromProperties(t *testing.T) {
assert.Equal(t, EXPECTED_CERT, config.Cert)
assert.Equal(t, EXPECTED_KEY, config.Key)
assert.Equal(t, EXPECTED_AUTH_API_KEY, config.AuthToken)
- assert.Equal(t, EXPECTED_HOST, config.Host)
+ assert.Equal(t, EXPECTED_OPENWHISK_HOST, config.Host)
assert.Equal(t, EXPECTED_API_HOST, config.BaseURL.String())
assert.Equal(t, EXPECTED_API_VERSION, config.Version)
assert.False(t, config.Verbose)
@@ -329,7 +317,7 @@ func TestGetDefaultConfigFromProperties(t *testing.T) {
assert.Equal(t, EXPECTED_KEY, config.Key)
assert.Equal(t, EXPECTED_AUTH_API_KEY, config.AuthToken)
assert.Equal(t, "", config.Host)
- assert.Equal(t, "", config.BaseURL.String())
+ assert.Nil(t, config.BaseURL)
assert.Equal(t, EXPECTED_API_VERSION, config.Version)
assert.False(t, config.Verbose)
assert.False(t, config.Debug)
@@ -339,36 +327,7 @@ func TestGetDefaultConfigFromProperties(t *testing.T) {
fakeProperties = FakePropertiesImp{
StoredValues_LOCAL_CONF: map[string]string {
- WHISK_APIHOST: INVALID_URL,
- APIHOST: EXPECTED_HOST,
- AUTH: EXPECTED_AUTH_API_KEY,
- NAMESPACE: DEFAULT_NAMESPACE,
- APIGW_ACCESS_TOKEN: EXPECTED_AUTH_API_KEY,
- APIGW_SPACE_SUID: EXPECTED_API_GW_SPACE_SUID,
- APIVERSION: EXPECTED_API_VERSION,
- CERT: EXPECTED_CERT,
- KEY: EXPECTED_KEY,
- },
- }
-
- config, err = GetDefaultConfigFromProperties(fakeProperties)
- assert.Equal(t, DEFAULT_NAMESPACE, config.Namespace)
- assert.Equal(t, EXPECTED_CERT, config.Cert)
- assert.Equal(t, EXPECTED_KEY, config.Key)
- assert.Equal(t, EXPECTED_AUTH_API_KEY, config.AuthToken)
- assert.Equal(t, "", config.Host)
- assert.Equal(t, INVALID_URL, config.BaseURL.String())
- assert.Equal(t, EXPECTED_API_VERSION, config.Version)
- assert.False(t, config.Verbose)
- assert.False(t, config.Debug)
- assert.True(t, config.Insecure)
- assert.NotEqual(t, nil, err)
- assert.Contains(t, err.Error(), INVALID_URL_MESSAGE)
-
- fakeProperties = FakePropertiesImp{
- StoredValues_LOCAL_CONF: map[string]string {
- WHISK_APIHOST: EXPECTED_API_HOST,
- APIHOST: EXPECTED_HOST,
+ APIHOST: EXPECTED_OPENWHISK_HOST,
NAMESPACE: DEFAULT_NAMESPACE,
APIGW_ACCESS_TOKEN: EXPECTED_AUTH_API_KEY,
APIGW_SPACE_SUID: EXPECTED_API_GW_SPACE_SUID,
@@ -383,21 +342,20 @@ func TestGetDefaultConfigFromProperties(t *testing.T) {
assert.Equal(t, EXPECTED_CERT, config.Cert)
assert.Equal(t, EXPECTED_KEY, config.Key)
assert.Equal(t, "", config.AuthToken)
- assert.Equal(t, EXPECTED_HOST, config.Host)
+ assert.Equal(t, EXPECTED_OPENWHISK_HOST, config.Host)
assert.Equal(t, EXPECTED_API_HOST, config.BaseURL.String())
assert.Equal(t, EXPECTED_API_VERSION, config.Version)
assert.False(t, config.Verbose)
assert.False(t, config.Debug)
assert.True(t, config.Insecure)
assert.NotEqual(t, nil, err)
- assert.Contains(t, err.Error(), MISSING_AUTH__MESSAGE)
+ assert.Contains(t, err.Error(), MISSING_AUTH_MESSAGE)
}
func TestGetConfigFromWskprops(t *testing.T) {
fakeProperties := FakePropertiesImp{
StoredValues_LOCAL_CONF: map[string]string {
- WHISK_APIHOST: EXPECTED_API_HOST,
- APIHOST: EXPECTED_HOST,
+ APIHOST: EXPECTED_OPENWHISK_HOST,
AUTH: EXPECTED_AUTH_API_KEY,
NAMESPACE: DEFAULT_NAMESPACE,
APIGW_ACCESS_TOKEN: EXPECTED_AUTH_API_KEY,
@@ -413,7 +371,7 @@ func TestGetConfigFromWskprops(t *testing.T) {
assert.Equal(t, EXPECTED_CERT, config.Cert)
assert.Equal(t, EXPECTED_KEY, config.Key)
assert.Equal(t, EXPECTED_AUTH_API_KEY, config.AuthToken)
- assert.Equal(t, EXPECTED_HOST, config.Host)
+ assert.Equal(t, EXPECTED_OPENWHISK_HOST, config.Host)
assert.Equal(t, EXPECTED_API_HOST, config.BaseURL.String())
assert.Equal(t, EXPECTED_API_VERSION, config.Version)
assert.False(t, config.Verbose)
@@ -423,7 +381,6 @@ func TestGetConfigFromWskprops(t *testing.T) {
fakeProperties = FakePropertiesImp{
StoredValues_LOCAL_CONF: map[string]string {
- APIHOST: EXPECTED_HOST,
AUTH: EXPECTED_AUTH_API_KEY,
NAMESPACE: DEFAULT_NAMESPACE,
APIGW_ACCESS_TOKEN: EXPECTED_AUTH_API_KEY,
@@ -440,8 +397,7 @@ func TestGetConfigFromWskprops(t *testing.T) {
fakeProperties = FakePropertiesImp{
StoredValues_LOCAL_CONF: map[string]string {
- WHISK_APIHOST: EXPECTED_API_HOST,
- APIHOST: EXPECTED_HOST,
+ APIHOST: EXPECTED_OPENWHISK_HOST,
NAMESPACE: DEFAULT_NAMESPACE,
APIGW_ACCESS_TOKEN: EXPECTED_AUTH_API_KEY,
APIGW_SPACE_SUID: EXPECTED_API_GW_SPACE_SUID,
@@ -453,14 +409,13 @@ func TestGetConfigFromWskprops(t *testing.T) {
config, err = GetConfigFromWskprops(fakeProperties, "")
assert.NotEqual(t, nil, err)
- assert.Contains(t, err.Error(), MISSING_AUTH__MESSAGE)
+ assert.Contains(t, err.Error(), MISSING_AUTH_MESSAGE)
}
func TestGetConfigFromWhiskProperties(t *testing.T) {
fakeProperties := FakePropertiesImp{
StoredValues_WHISK: map[string]string {
- WHISK_APIHOST: EXPECTED_API_HOST,
- APIHOST: EXPECTED_HOST,
+ APIHOST: EXPECTED_OPENWHISK_HOST,
AUTH: EXPECTED_AUTH_API_KEY,
NAMESPACE: DEFAULT_NAMESPACE,
APIGW_ACCESS_TOKEN: EXPECTED_AUTH_API_KEY,
@@ -476,7 +431,7 @@ func TestGetConfigFromWhiskProperties(t *testing.T) {
assert.Equal(t, EXPECTED_CERT, config.Cert)
assert.Equal(t, EXPECTED_KEY, config.Key)
assert.Equal(t, EXPECTED_AUTH_API_KEY, config.AuthToken)
- assert.Equal(t, EXPECTED_HOST, config.Host)
+ assert.Equal(t, EXPECTED_OPENWHISK_HOST, config.Host)
assert.Equal(t, EXPECTED_API_HOST, config.BaseURL.String())
assert.Equal(t, EXPECTED_API_VERSION, config.Version)
assert.False(t, config.Verbose)
@@ -486,7 +441,6 @@ func TestGetConfigFromWhiskProperties(t *testing.T) {
fakeProperties = FakePropertiesImp{
StoredValues_WHISK: map[string]string {
- APIHOST: EXPECTED_HOST,
AUTH: EXPECTED_AUTH_API_KEY,
NAMESPACE: DEFAULT_NAMESPACE,
APIGW_ACCESS_TOKEN: EXPECTED_AUTH_API_KEY,
@@ -503,8 +457,7 @@ func TestGetConfigFromWhiskProperties(t *testing.T) {
fakeProperties = FakePropertiesImp{
StoredValues_WHISK: map[string]string {
- WHISK_APIHOST: EXPECTED_API_HOST,
- APIHOST: EXPECTED_HOST,
+ APIHOST: EXPECTED_OPENWHISK_HOST,
NAMESPACE: DEFAULT_NAMESPACE,
APIGW_ACCESS_TOKEN: EXPECTED_AUTH_API_KEY,
APIGW_SPACE_SUID: EXPECTED_API_GW_SPACE_SUID,
@@ -516,13 +469,11 @@ func TestGetConfigFromWhiskProperties(t *testing.T) {
config, err = GetConfigFromWhiskProperties(fakeProperties)
assert.NotEqual(t, nil, err)
- assert.Contains(t, err.Error(), MISSING_AUTH__MESSAGE)
+ assert.Contains(t, err.Error(), MISSING_AUTH_MESSAGE)
}
func TestValidateWskprops(t *testing.T) {
dep := Wskprops {
- WHISKAPIURL: "",
- APIHost: "",
AuthKey: "",
Namespace: DEFAULT_NAMESPACE,
AuthAPIGWKey: "",
@@ -535,8 +486,7 @@ func TestValidateWskprops(t *testing.T) {
assert.Contains(t, err.Error(), MISSING_URL_MESSAGE)
dep = Wskprops {
- WHISKAPIURL: "invalid_path",
- APIHost: "",
+ APIHost: EXPECTED_OPENWHISK_HOST,
AuthKey: "",
Namespace: DEFAULT_NAMESPACE,
AuthAPIGWKey: "",
@@ -546,25 +496,10 @@ func TestValidateWskprops(t *testing.T) {
Cert: "",
}
err = ValidateWskprops(&dep)
- assert.Contains(t, err.Error(), INVALID_URL_MESSAGE)
+ assert.Contains(t, err.Error(), MISSING_AUTH_MESSAGE)
dep = Wskprops {
- WHISKAPIURL: "http://localhost/api",
- APIHost: "",
- AuthKey: "",
- Namespace: DEFAULT_NAMESPACE,
- AuthAPIGWKey: "",
- APIGWSpaceSuid: "",
- Apiversion: DEFAULT_VERSION,
- Key: "",
- Cert: "",
- }
- err = ValidateWskprops(&dep)
- assert.Contains(t, err.Error(), MISSING_AUTH__MESSAGE)
-
- dep = Wskprops {
- WHISKAPIURL: "http://localhost/api",
- APIHost: "",
+ APIHost: EXPECTED_OPENWHISK_HOST,
AuthKey: "auth_key",
Namespace: DEFAULT_NAMESPACE,
AuthAPIGWKey: "",
@@ -580,7 +515,6 @@ func TestValidateWskprops(t *testing.T) {
func TestGetDefaultWskProp(t *testing.T) {
valid_whisk_values := map[string]string {
- WHISK_APIHOST: EXPECTED_API_URL_WHISK,
APIHOST: EXPECTED_API_HOST_WHISK,
AUTH: EXPECTED_TEST_AUTH_KEY_WHISK,
NAMESPACE: EXPECTED_NAMESPACE_WHISK,
@@ -591,7 +525,6 @@ func TestGetDefaultWskProp(t *testing.T) {
KEY: EXPECTED_KEY_WHISK,
}
valid_local_conf_values := map[string]string {
- WHISK_APIHOST: EXPECTED_API_URL_LOCAL_CONF,
APIHOST: EXPECTED_API_HOST_LOCAL_CONF,
AUTH: EXPECTED_TEST_AUTH_KEY_LOCAL_CONF,
NAMESPACE: EXPECTED_NAMESPACE_LOCAL_CONF,
@@ -611,7 +544,7 @@ func TestGetDefaultWskProp(t *testing.T) {
missing_url_local_conf_values := map[string]string{}
for k,v := range valid_local_conf_values {
- if k != WHISK_APIHOST {
+ if k != APIHOST {
missing_url_local_conf_values[k] = v
}
}
@@ -625,7 +558,7 @@ func TestGetDefaultWskProp(t *testing.T) {
missing_url_whisk_values := map[string]string{}
for k,v := range valid_whisk_values {
- if k != WHISK_APIHOST {
+ if k != APIHOST {
missing_url_whisk_values[k] = v
}
}
@@ -639,7 +572,6 @@ func TestGetDefaultWskProp(t *testing.T) {
assert.Equal(t, EXPECTED_AUTH_API_KEY_WHISK, dep.AuthAPIGWKey)
assert.Equal(t, EXPECTED_API_HOST_WHISK, dep.APIHost)
assert.Equal(t, EXPECTED_API_GW_SPACE_SUID_WHISK, dep.APIGWSpaceSuid)
- assert.Equal(t, EXPECTED_API_URL_WHISK, dep.WHISKAPIURL)
assert.Equal(t, EXPECTED_API_VERSION_WHISK, dep.Apiversion)
assert.Equal(t, EXPECTED_CERT_WHISK, dep.Cert)
assert.Equal(t, EXPECTED_KEY_WHISK, dep.Key)
@@ -654,7 +586,6 @@ func TestGetDefaultWskProp(t *testing.T) {
assert.Equal(t, EXPECTED_AUTH_API_KEY_LOCAL_CONF, dep.AuthAPIGWKey)
assert.Equal(t, EXPECTED_API_HOST_LOCAL_CONF, dep.APIHost)
assert.Equal(t, EXPECTED_API_GW_SPACE_SUID_LOCAL_CONF, dep.APIGWSpaceSuid)
- assert.Equal(t, EXPECTED_API_URL_LOCAL_CONF, dep.WHISKAPIURL)
assert.Equal(t, EXPECTED_API_VERSION_LOCAL_CONF, dep.Apiversion)
assert.Equal(t, EXPECTED_CERT_LOCAL_CONF, dep.Cert)
assert.Equal(t, EXPECTED_KEY_LOCAL_CONF, dep.Key)
@@ -670,7 +601,6 @@ func TestGetDefaultWskProp(t *testing.T) {
assert.Equal(t, EXPECTED_AUTH_API_KEY_LOCAL_CONF, dep.AuthAPIGWKey)
assert.Equal(t, EXPECTED_API_HOST_LOCAL_CONF, dep.APIHost)
assert.Equal(t, EXPECTED_API_GW_SPACE_SUID_LOCAL_CONF, dep.APIGWSpaceSuid)
- assert.Equal(t, EXPECTED_API_URL_LOCAL_CONF, dep.WHISKAPIURL)
assert.Equal(t, EXPECTED_API_VERSION_LOCAL_CONF, dep.Apiversion)
assert.Equal(t, EXPECTED_CERT_LOCAL_CONF, dep.Cert)
assert.Equal(t, EXPECTED_KEY_LOCAL_CONF, dep.Key)
@@ -686,7 +616,6 @@ func TestGetDefaultWskProp(t *testing.T) {
assert.Equal(t, EXPECTED_AUTH_API_KEY_WHISK, dep.AuthAPIGWKey)
assert.Equal(t, EXPECTED_API_HOST_WHISK, dep.APIHost)
assert.Equal(t, EXPECTED_API_GW_SPACE_SUID_WHISK, dep.APIGWSpaceSuid)
- assert.Equal(t, EXPECTED_API_URL_WHISK, dep.WHISKAPIURL)
assert.Equal(t, EXPECTED_API_VERSION_WHISK, dep.Apiversion)
assert.Equal(t, EXPECTED_CERT_WHISK, dep.Cert)
assert.Equal(t, EXPECTED_KEY_WHISK, dep.Key)
@@ -702,7 +631,6 @@ func TestGetDefaultWskProp(t *testing.T) {
assert.Equal(t, EXPECTED_AUTH_API_KEY_WHISK, dep.AuthAPIGWKey)
assert.Equal(t, EXPECTED_API_HOST_WHISK, dep.APIHost)
assert.Equal(t, EXPECTED_API_GW_SPACE_SUID_WHISK, dep.APIGWSpaceSuid)
- assert.Equal(t, EXPECTED_API_URL_WHISK, dep.WHISKAPIURL)
assert.Equal(t, EXPECTED_API_VERSION_WHISK, dep.Apiversion)
assert.Equal(t, EXPECTED_CERT_WHISK, dep.Cert)
assert.Equal(t, EXPECTED_KEY_WHISK, dep.Key)
@@ -746,7 +674,7 @@ func TestGetDefaultWskProp(t *testing.T) {
assert.Equal(t, EXPECTED_NAMESPACE_LOCAL_CONF, dep.Namespace)
assert.Equal(t, EXPECTED_TEST_AUTH_KEY_LOCAL_CONF, dep.AuthKey)
assert.Equal(t, EXPECTED_AUTH_API_KEY_LOCAL_CONF, dep.AuthAPIGWKey)
- assert.Equal(t, EXPECTED_API_HOST_LOCAL_CONF, dep.APIHost)
+ assert.Equal(t, "", dep.APIHost)
assert.Equal(t, EXPECTED_API_GW_SPACE_SUID_LOCAL_CONF, dep.APIGWSpaceSuid)
assert.Equal(t, EXPECTED_API_VERSION_LOCAL_CONF, dep.Apiversion)
assert.Equal(t, EXPECTED_CERT_LOCAL_CONF, dep.Cert)
@@ -757,7 +685,6 @@ func TestGetDefaultWskProp(t *testing.T) {
func TestGetWskPropFromWskprops(t *testing.T) {
valid_local_conf_values := map[string]string{
- WHISK_APIHOST: EXPECTED_API_URL_LOCAL_CONF,
APIHOST: EXPECTED_API_HOST_LOCAL_CONF,
AUTH: EXPECTED_TEST_AUTH_KEY_LOCAL_CONF,
NAMESPACE: EXPECTED_NAMESPACE_LOCAL_CONF,
@@ -777,7 +704,7 @@ func TestGetWskPropFromWskprops(t *testing.T) {
missing_url_local_conf_values := map[string]string{}
for k, v := range valid_local_conf_values {
- if k != WHISK_APIHOST {
+ if k != APIHOST {
missing_url_local_conf_values[k] = v
}
}
@@ -792,7 +719,6 @@ func TestGetWskPropFromWskprops(t *testing.T) {
assert.Equal(t, EXPECTED_AUTH_API_KEY_LOCAL_CONF, dep.AuthAPIGWKey)
assert.Equal(t, EXPECTED_API_HOST_LOCAL_CONF, dep.APIHost)
assert.Equal(t, EXPECTED_API_GW_SPACE_SUID_LOCAL_CONF, dep.APIGWSpaceSuid)
- assert.Equal(t, EXPECTED_API_URL_LOCAL_CONF, dep.WHISKAPIURL)
assert.Equal(t, EXPECTED_API_VERSION_LOCAL_CONF, dep.Apiversion)
assert.Equal(t, EXPECTED_CERT_LOCAL_CONF, dep.Cert)
assert.Equal(t, EXPECTED_KEY_LOCAL_CONF, dep.Key)
@@ -805,9 +731,8 @@ func TestGetWskPropFromWskprops(t *testing.T) {
assert.Equal(t, EXPECTED_NAMESPACE_LOCAL_CONF, dep.Namespace)
assert.Equal(t, EXPECTED_TEST_AUTH_KEY_LOCAL_CONF, dep.AuthKey)
assert.Equal(t, EXPECTED_AUTH_API_KEY_LOCAL_CONF, dep.AuthAPIGWKey)
- assert.Equal(t, EXPECTED_API_HOST_LOCAL_CONF, dep.APIHost)
+ assert.Equal(t, "", dep.APIHost)
assert.Equal(t, EXPECTED_API_GW_SPACE_SUID_LOCAL_CONF, dep.APIGWSpaceSuid)
- assert.Equal(t, "", dep.WHISKAPIURL)
assert.Equal(t, EXPECTED_API_VERSION_LOCAL_CONF, dep.Apiversion)
assert.Equal(t, EXPECTED_CERT_LOCAL_CONF, dep.Cert)
assert.Equal(t, EXPECTED_KEY_LOCAL_CONF, dep.Key)
@@ -823,17 +748,15 @@ func TestGetWskPropFromWskprops(t *testing.T) {
assert.Equal(t, EXPECTED_AUTH_API_KEY_LOCAL_CONF, dep.AuthAPIGWKey)
assert.Equal(t, EXPECTED_API_HOST_LOCAL_CONF, dep.APIHost)
assert.Equal(t, EXPECTED_API_GW_SPACE_SUID_LOCAL_CONF, dep.APIGWSpaceSuid)
- assert.Equal(t, EXPECTED_API_URL_LOCAL_CONF, dep.WHISKAPIURL)
assert.Equal(t, EXPECTED_API_VERSION_LOCAL_CONF, dep.Apiversion)
assert.Equal(t, EXPECTED_CERT_LOCAL_CONF, dep.Cert)
assert.Equal(t, EXPECTED_KEY_LOCAL_CONF, dep.Key)
assert.NotEqual(t, nil, err)
- assert.Contains(t, err.Error(), MISSING_AUTH__MESSAGE)
+ assert.Contains(t, err.Error(), MISSING_AUTH_MESSAGE)
}
func TestGetWskPropFromWhiskProperty(t *testing.T) {
valid_whisk_values := map[string]string {
- WHISK_APIHOST: EXPECTED_API_URL_WHISK,
APIHOST: EXPECTED_API_HOST_WHISK,
AUTH: EXPECTED_TEST_AUTH_KEY_WHISK,
NAMESPACE: EXPECTED_NAMESPACE_WHISK,
@@ -853,17 +776,11 @@ func TestGetWskPropFromWhiskProperty(t *testing.T) {
missing_url_whisk_values := map[string]string{}
for k,v := range valid_whisk_values {
- if k != WHISK_APIHOST {
+ if k != APIHOST {
missing_url_whisk_values[k] = v
}
}
- invalid_url_whisk_values := map[string]string{}
- for k,v := range valid_whisk_values {
- invalid_url_whisk_values[k] = v
- }
- invalid_url_whisk_values[WHISK_APIHOST] = INVALID_URL
-
fakeProperties := FakePropertiesImp{
StoredValues_WHISK: valid_whisk_values,
}
@@ -874,7 +791,6 @@ func TestGetWskPropFromWhiskProperty(t *testing.T) {
assert.Equal(t, EXPECTED_AUTH_API_KEY_WHISK, dep.AuthAPIGWKey)
assert.Equal(t, EXPECTED_API_HOST_WHISK, dep.APIHost)
assert.Equal(t, EXPECTED_API_GW_SPACE_SUID_WHISK, dep.APIGWSpaceSuid)
- assert.Equal(t, EXPECTED_API_URL_WHISK, dep.WHISKAPIURL)
assert.Equal(t, EXPECTED_API_VERSION_WHISK, dep.Apiversion)
assert.Equal(t, EXPECTED_CERT_WHISK, dep.Cert)
assert.Equal(t, EXPECTED_KEY_WHISK, dep.Key)
@@ -890,12 +806,11 @@ func TestGetWskPropFromWhiskProperty(t *testing.T) {
assert.Equal(t, EXPECTED_AUTH_API_KEY_WHISK, dep.AuthAPIGWKey)
assert.Equal(t, EXPECTED_API_HOST_WHISK, dep.APIHost)
assert.Equal(t, EXPECTED_API_GW_SPACE_SUID_WHISK, dep.APIGWSpaceSuid)
- assert.Equal(t, EXPECTED_API_URL_WHISK, dep.WHISKAPIURL)
assert.Equal(t, EXPECTED_API_VERSION_WHISK, dep.Apiversion)
assert.Equal(t, EXPECTED_CERT_WHISK, dep.Cert)
assert.Equal(t, EXPECTED_KEY_WHISK, dep.Key)
assert.NotEqual(t, nil, err)
- assert.Contains(t, err.Error(), MISSING_AUTH__MESSAGE)
+ assert.Contains(t, err.Error(), MISSING_AUTH_MESSAGE)
fakeProperties = FakePropertiesImp{
StoredValues_WHISK: missing_url_whisk_values,
@@ -905,29 +820,12 @@ func TestGetWskPropFromWhiskProperty(t *testing.T) {
assert.Equal(t, EXPECTED_NAMESPACE_WHISK, dep.Namespace)
assert.Equal(t, EXPECTED_TEST_AUTH_KEY_WHISK, dep.AuthKey)
assert.Equal(t, EXPECTED_AUTH_API_KEY_WHISK, dep.AuthAPIGWKey)
- assert.Equal(t, EXPECTED_API_HOST_WHISK, dep.APIHost)
+ assert.Equal(t, "", dep.APIHost)
assert.Equal(t, EXPECTED_API_GW_SPACE_SUID_WHISK, dep.APIGWSpaceSuid)
- assert.Equal(t, "", dep.WHISKAPIURL)
assert.Equal(t, EXPECTED_API_VERSION_WHISK, dep.Apiversion)
assert.Equal(t, EXPECTED_CERT_WHISK, dep.Cert)
assert.Equal(t, EXPECTED_KEY_WHISK, dep.Key)
assert.NotEqual(t, nil, err)
assert.Contains(t, err.Error(), MISSING_URL_MESSAGE)
- fakeProperties = FakePropertiesImp{
- StoredValues_WHISK: invalid_url_whisk_values,
- }
-
- dep, err = GetWskPropFromWhiskProperty(fakeProperties)
- assert.Equal(t, EXPECTED_NAMESPACE_WHISK, dep.Namespace)
- assert.Equal(t, EXPECTED_TEST_AUTH_KEY_WHISK, dep.AuthKey)
- assert.Equal(t, EXPECTED_AUTH_API_KEY_WHISK, dep.AuthAPIGWKey)
- assert.Equal(t, EXPECTED_API_HOST_WHISK, dep.APIHost)
- assert.Equal(t, EXPECTED_API_GW_SPACE_SUID_WHISK, dep.APIGWSpaceSuid)
- assert.Equal(t, INVALID_URL, dep.WHISKAPIURL)
- assert.Equal(t, EXPECTED_API_VERSION_WHISK, dep.Apiversion)
- assert.Equal(t, EXPECTED_CERT_WHISK, dep.Cert)
- assert.Equal(t, EXPECTED_KEY_WHISK, dep.Key)
- assert.NotEqual(t, nil, err)
- assert.Contains(t, err.Error(), INVALID_URL_MESSAGE)
}
diff --git a/wski18n/i18n_resources.go b/wski18n/i18n_resources.go
index 5a78473..4050101 100644
--- a/wski18n/i18n_resources.go
+++ b/wski18n/i18n_resources.go
@@ -114,7 +114,7 @@ func wski18nResourcesDe_deAllJson() (*asset, error) {
return a, nil
}
-var _wski18nResourcesEn_usAllJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xd4\x98\xdd\x72\xea\x36\x10\xc7\xef\x79\x8a\x1d\xdf\x40\x67\x38\x7e\x80\xd3\x2b\xa6\x65\x0a\xd3\xd3\xc0\x34\xd0\x5c\x34\x9d\x8e\x62\x2d\x58\x13\x23\x39\x2b\x19\x4a\x18\xbf\x7b\x47\x32\x24\x34\xd8\xf8\x03\x87\x72\xae\xc2\x28\xda\xff\xfe\x76\xb5\x92\x56\xfe\xb3\x03\xb0\xeb\x00\x00\x78\x82\x7b\x5f\xc1\x9b\x4b\xf6\x14\x21\x18\x05\x8c\x73\x20\x95\x18\x04\x15\x1b\xa1\xa4\x86\xee\x6e\xe7\xef\x7f\xa7\x69\xd7\xeb [...]
+var _wski18nResourcesEn_usAllJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x97\xdf\x6f\xe2\x38\x10\xc7\xdf\xf9\x2b\x46\x79\x81\x93\x68\xfe\x80\xde\x13\xba\x43\x07\xba\x5e\x41\x57\xd8\x3e\x6c\x57\x2b\x37\x1e\x88\xd5\x60\xa7\x63\x07\x96\xa2\xfc\xef\x2b\x3b\xd0\xb2\x6d\x42\x7e\x90\x76\xfb\x44\x64\x3c\xdf\xf9\x78\x3c\xf6\x8c\xbf\x76\x00\x76\x1d\x00\x00\x4f\x70\xef\x12\xbc\xb9\x64\xf7\x11\x82\x51\xc0\x38\x07\x52\x89\x41\x50\xb1\x11\x4a\x6a\xe8\xee\x76\xfe\xfe\x3b\x4d\xbb\x5e\x3f [...]
func wski18nResourcesEn_usAllJsonBytes() ([]byte, error) {
return bindataRead(
@@ -129,7 +129,7 @@ func wski18nResourcesEn_usAllJson() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "wski18n/resources/en_US.all.json", size: 6539, mode: os.FileMode(420), modTime: time.Unix(1503611107, 0)}
+ info := bindataFileInfo{name: "wski18n/resources/en_US.all.json", size: 5913, mode: os.FileMode(420), modTime: time.Unix(1503698750, 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 762829d..b09d382 100644
--- a/wski18n/resources/en_US.all.json
+++ b/wski18n/resources/en_US.all.json
@@ -124,20 +124,12 @@
"translation": "The connection failed, or timed out. (HTTP status code {{.code}})"
},
{
- "id": "OpenWhisk API URL is missing (Please configure WHISK_APIHOST in .wskprops under the system HOME directory.)",
- "translation": "OpenWhisk API URL is missing (Please configure WHISK_APIHOST in .wskprops under the system HOME directory.)"
+ "id": "OpenWhisk API host is missing (Please configure WHISK_APIHOST in .wskprops under the system HOME directory.)",
+ "translation": "OpenWhisk API host is missing (Please configure WHISK_APIHOST in .wskprops under the system HOME directory.)"
},
{
- "id": "OpenWhisk API URL is missing (Please configure whisk.api.host.proto, whisk.api.host.name and whisk.api.host.port in whisk.properties under the OPENWHISK_HOME directory.)",
- "translation": "OpenWhisk API URL is missing (Please configure whisk.api.host.proto, whisk.api.host.name and whisk.api.host.port in whisk.properties under the OPENWHISK_HOME directory.)"
- },
- {
- "id": "Invalid OpenWhisk API URL (Please configure WHISK_APIHOST in .wskprops under the system HOME directory.)",
- "translation": "Invalid OpenWhisk API URL (Please configure WHISK_APIHOST in .wskprops under the system HOME directory.)"
- },
- {
- "id": "Invalid OpenWhisk API URL (Please configure whisk.api.host.proto, whisk.api.host.name and whisk.api.host.port in whisk.properties under the OPENWHISK_HOME directory.)",
- "translation": "Invalid OpenWhisk API URL (Please configure whisk.api.host.proto, whisk.api.host.name and whisk.api.host.port in whisk.properties under the OPENWHISK_HOME directory.)"
+ "id": "OpenWhisk API host is missing (Please configure whisk.api.host.proto, whisk.api.host.name and whisk.api.host.port in whisk.properties under the OPENWHISK_HOME directory.)",
+ "translation": "OpenWhisk API host is missing (Please configure whisk.api.host.proto, whisk.api.host.name and whisk.api.host.port in whisk.properties under the OPENWHISK_HOME directory.)"
},
{
"id": "Authentication key is missing (Please configure AUTH in .wskprops under the system HOME directory.)",
--
To stop receiving notification emails like this one, please contact
['"commits@openwhisk.apache.org" <co...@openwhisk.apache.org>'].