Update Shared Processing
- Error when an invalid argument is passed to shared flag
- Refactor shared handling for actions, packages, triggers, and rules
- Fix update commands to set shared for triggers, and rules
- Remove Publish Functionality From Command that Don't Support it
diff --git a/tests/src/system/basic/WskActionTests.scala b/tests/src/system/basic/WskActionTests.scala
index 524eb20..f79b51d 100644
--- a/tests/src/system/basic/WskActionTests.scala
+++ b/tests/src/system/basic/WskActionTests.scala
@@ -118,7 +118,7 @@
assetHelper.withCleaner(wsk.action, fullQualifiedName) {
val file = Some(TestUtils.getTestActionFilename("wc.js"))
- (action, _) => action.create(fullQualifiedName, file, shared = Some(true))
+ (action, _) => action.create(fullQualifiedName, file)
}
assetHelper.withCleaner(wsk.action, name) {
diff --git a/tests/src/system/basic/WskBasicTests.scala b/tests/src/system/basic/WskBasicTests.scala
index 1acfa40..e7cc446 100644
--- a/tests/src/system/basic/WskBasicTests.scala
+++ b/tests/src/system/basic/WskBasicTests.scala
@@ -216,7 +216,7 @@
val params = Map("a" -> "A".toJson)
assetHelper.withCleaner(wsk.action, name) {
(action, _) =>
- action.create(name, file, parameters = params, shared = Some(true))
+ action.create(name, file, parameters = params)
action.create(name, None, parameters = Map("b" -> "B".toJson), update = true)
}
val stdout = wsk.action.get(name).stdout
@@ -224,7 +224,7 @@
stdout should not include regex(""""value": "A"""")
stdout should include regex (""""key": "b""")
stdout should include regex (""""value": "B"""")
- stdout should include regex (""""publish": true""")
+ stdout should include regex (""""publish": false""")
stdout should include regex (""""version": "0.0.2"""")
wsk.action.list().stdout should include(name)
}
@@ -308,13 +308,13 @@
wsk.action.get(name, fieldFilter = Some("name")).stdout should include(s"""$successMsg name\n"$name"""")
wsk.action.get(name, fieldFilter = Some("version")).stdout should include(s"""$successMsg version\n"0.0.1"""")
- wsk.action.get(name, fieldFilter = Some("publish")).stdout should include(s"""$successMsg publish\nfalse""")
wsk.action.get(name, fieldFilter = Some("exec")).stdout should include regex (s"""$successMsg exec\n\\{\\s+"kind":\\s+"nodejs:6",\\s+"code":\\s+"\\/\\*\\*\\\\n \\* Hello, world.\\\\n \\*\\/\\\\nfunction main\\(params\\) \\{\\\\n console.log\\('hello', params.payload\\+'!'\\);\\\\n\\}\\\\n"\n\\}""")
wsk.action.get(name, fieldFilter = Some("parameters")).stdout should include regex (s"""$successMsg parameters\n\\[\\s+\\{\\s+"key":\\s+"payload",\\s+"value":\\s+"test"\\s+\\}\\s+\\]""")
wsk.action.get(name, fieldFilter = Some("annotations")).stdout should include regex (s"""$successMsg annotations\n\\[\\s+\\{\\s+"key":\\s+"exec",\\s+"value":\\s+"nodejs:6"\\s+\\}\\s+\\]""")
wsk.action.get(name, fieldFilter = Some("limits")).stdout should include regex (s"""$successMsg limits\n\\{\\s+"timeout":\\s+60000,\\s+"memory":\\s+256,\\s+"logs":\\s+10\\s+\\}""")
wsk.action.get(name, fieldFilter = Some("namespace")).stdout should include regex (s"""(?i)$successMsg namespace\n$ns_regex_list""")
wsk.action.get(name, fieldFilter = Some("invalid"), expectedExitCode = ERROR_EXIT).stderr should include("error: Invalid field filter 'invalid'.")
+ wsk.action.get(name, fieldFilter = Some("publish")).stdout should include(s"""$successMsg publish\nfalse""")
}
/**
@@ -452,13 +452,13 @@
val params = Map("a" -> "A".toJson)
assetHelper.withCleaner(wsk.trigger, name) {
(trigger, _) =>
- trigger.create(name, parameters = params, shared = Some(true))
+ trigger.create(name, parameters = params)
trigger.create(name, update = true)
}
val stdout = wsk.trigger.get(name).stdout
stdout should include regex (""""key": "a"""")
stdout should include regex (""""value": "A"""")
- stdout should include regex (""""publish": true""")
+ stdout should include regex (""""publish": false""")
stdout should include regex (""""version": "0.0.2"""")
val dynamicParams = Map("t" -> "T".toJson)
@@ -544,7 +544,8 @@
(wp, assetHelper) =>
assetHelper.withCleaner(wsk.trigger, name) {
- (action, _) => action.create(name, parameters = paramInput)
+ (trigger, _) =>
+ trigger.create(name, parameters = paramInput)
}
val expectedParam = JsObject(
@@ -669,14 +670,15 @@
(action, name) => action.create(name, defaultAction)
}
assetHelper.withCleaner(wsk.rule, ruleName) {
- (rule, name) => rule.create(name, trigger = triggerName, action = actionName)
+ (rule, name) =>
+ rule.create(name, trigger = triggerName, action = actionName)
}
val ns_regex_list = wsk.namespace.list().stdout.trim.replace('\n', '|')
wsk.rule.get(ruleName, fieldFilter = Some("namespace")).stdout should include regex (s"""(?i)$successMsg namespace\n$ns_regex_list""")
wsk.rule.get(ruleName, fieldFilter = Some("name")).stdout should include(s"""$successMsg name\n"$ruleName"""")
- wsk.rule.get(ruleName, fieldFilter = Some("version")).stdout should include(s"""$successMsg version\n"0.0.1"""")
+ wsk.rule.get(ruleName, fieldFilter = Some("version")).stdout should include(s"""$successMsg version\n"0.0.1"\n""")
wsk.rule.get(ruleName, fieldFilter = Some("status")).stdout should include(s"""$successMsg status\n"active"""")
val trigger = wsk.rule.get(ruleName, fieldFilter = Some("trigger")).stdout
trigger should include regex (s"""$successMsg trigger\n""")
diff --git a/tests/src/whisk/core/cli/test/WskActionSequenceTests.scala b/tests/src/whisk/core/cli/test/WskActionSequenceTests.scala
index 88d6272..1f1dde3 100644
--- a/tests/src/whisk/core/cli/test/WskActionSequenceTests.scala
+++ b/tests/src/whisk/core/cli/test/WskActionSequenceTests.scala
@@ -59,12 +59,12 @@
assetHelper.withCleaner(wsk.action, fullHelloActionName) {
val file = Some(TestUtils.getTestActionFilename("hello.js"))
- (action, _) => action.create(fullHelloActionName, file, shared = Some(true))(wp)
+ (action, _) => action.create(fullHelloActionName, file)(wp)
}
assetHelper.withCleaner(wsk.action, fullCatActionName) {
val file = Some(TestUtils.getTestActionFilename("cat.js"))
- (action, _) => action.create(fullCatActionName, file, shared = Some(true))(wp)
+ (action, _) => action.create(fullCatActionName, file)(wp)
}
val artifacts = s"$fullHelloActionName,$fullCatActionName"
diff --git a/tests/src/whisk/core/cli/test/WskBasicUsageTests.scala b/tests/src/whisk/core/cli/test/WskBasicUsageTests.scala
index baf3aa9..f1439f5 100644
--- a/tests/src/whisk/core/cli/test/WskBasicUsageTests.scala
+++ b/tests/src/whisk/core/cli/test/WskBasicUsageTests.scala
@@ -1041,6 +1041,7 @@
val apiGetReqMsg = "An API base path or API name is required."
val apiDeleteReqMsg = "An API base path or API name is required. An optional API relative path and operation may also be provided."
val apiListReqMsg = "Optional parameters are: API base path (or API name), API relative path and operation."
+ val invalidShared = s"Cannot use value '$invalidArg' for shared"
val invalidArgs = Seq(
(Seq("api-experimental", "create"), s"${tooFewArgsMsg} ${apiCreateReqMsg}"),
(Seq("api-experimental", "create", "/basepath", "/path", "GET", "action", invalidArg), s"${tooManyArgsMsg}${invalidArg}. ${apiCreateReqMsg}"),
@@ -1077,8 +1078,10 @@
s"${tooManyArgsMsg}${invalidArg}. ${optNamespaceMsg}"),
(Seq("package", "create"), s"${tooFewArgsMsg} ${packageNameReqMsg}"),
(Seq("package", "create", "packageName", invalidArg), s"${tooManyArgsMsg}${invalidArg}."),
+ (Seq("package", "create", "packageName", "--shared", invalidArg), invalidShared),
(Seq("package", "update"), s"${tooFewArgsMsg} ${packageNameReqMsg}"),
(Seq("package", "update", "packageName", invalidArg), s"${tooManyArgsMsg}${invalidArg}."),
+ (Seq("package", "update", "packageName", "--shared", invalidArg), invalidShared),
(Seq("package", "get"), s"${tooFewArgsMsg} ${packageNameReqMsg}"),
(Seq("package", "get", "packageName", "namespace", invalidArg), s"${tooManyArgsMsg}${invalidArg}."),
(Seq("package", "bind"), s"${tooFewArgsMsg} ${packageNameBindingReqMsg}"),