You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwhisk.apache.org by cs...@apache.org on 2017/06/26 15:59:49 UTC
[incubator-openwhisk-cli] 09/36: Allow Adding Annotations and
Parameters During Action Copy (#2066)
This is an automated email from the ASF dual-hosted git repository.
csantanapr pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-openwhisk-cli.git
commit c8ea3c7c25614d069b823dfc09dbe7175de35855
Author: James Dubee <jw...@us.ibm.com>
AuthorDate: Fri Mar 24 16:12:33 2017 -0400
Allow Adding Annotations and Parameters During Action Copy (#2066)
* Allow Adding Annotations and Parameters During Action Copy
- Parameters and annotations can now be added through the create/update commands when copying an action
* Add Test
---
.../test/scala/system/basic/WskActionTests.scala | 67 +++++++++++++++++++++-
1 file changed, 66 insertions(+), 1 deletion(-)
diff --git a/tests/src/test/scala/system/basic/WskActionTests.scala b/tests/src/test/scala/system/basic/WskActionTests.scala
index dcb6dcd..d7b7dbe 100644
--- a/tests/src/test/scala/system/basic/WskActionTests.scala
+++ b/tests/src/test/scala/system/basic/WskActionTests.scala
@@ -136,7 +136,7 @@ class WskActionTests
it should "copy an action and ensure exec, parameters, and annotations copied" in withAssetCleaner(wskprops) {
(wp, assetHelper) =>
- val origActionName = "orignAction"
+ val origActionName = "origAction"
val copiedActionName = "copiedAction"
val params = Map("a" -> "A".toJson)
val annots = Map("b" -> "B".toJson)
@@ -159,6 +159,71 @@ class WskActionTests
copiedAction.fields("version") shouldBe JsString("0.0.1")
}
+ it should "add new parameters and annotations while copying an action" in withAssetCleaner(wskprops) {
+ (wp, assetHelper) =>
+ val origName = "origAction"
+ val copiedName = "copiedAction"
+ val origParams = Map("origParam1" -> "origParamValue1".toJson, "origParam2" -> 999.toJson)
+ val copiedParams = Map("copiedParam1" -> "copiedParamValue1".toJson, "copiedParam2" -> 123.toJson)
+ val origAnnots = Map("origAnnot1" -> "origAnnotValue1".toJson, "origAnnot2" -> true.toJson)
+ val copiedAnnots = Map("copiedAnnot1" -> "copiedAnnotValue1".toJson, "copiedAnnot2" -> false.toJson)
+ val resParams = Seq(
+ JsObject(
+ "key" -> JsString("copiedParam1"),
+ "value" -> JsString("copiedParamValue1")
+ ),
+ JsObject(
+ "key" -> JsString("copiedParam2"),
+ "value" -> JsNumber(123)
+ ),
+ JsObject(
+ "key" -> JsString("origParam1"),
+ "value" -> JsString("origParamValue1")
+ ),
+ JsObject(
+ "key" -> JsString("origParam2"),
+ "value" -> JsNumber(999)
+ )
+ )
+ val resAnnots = Seq(
+ JsObject(
+ "key" -> JsString("origAnnot1"),
+ "value" -> JsString("origAnnotValue1")
+ ),
+ JsObject(
+ "key" -> JsString("copiedAnnot2"),
+ "value" -> JsBoolean(false)
+ ),
+ JsObject(
+ "key" -> JsString("copiedAnnot1"),
+ "value" -> JsString("copiedAnnotValue1")
+ ),
+ JsObject(
+ "key" -> JsString("origAnnot2"),
+ "value" -> JsBoolean(true)
+ ),
+ JsObject(
+ "key" -> JsString("exec"),
+ "value" -> JsString("nodejs:6")
+ )
+ )
+
+ assetHelper.withCleaner(wsk.action, origName) {
+ val file = Some(TestUtils.getTestActionFilename("echo.js"))
+ (action, _) => action.create(origName, file, parameters = origParams, annotations = origAnnots)
+ }
+
+ assetHelper.withCleaner(wsk.action, copiedName) {
+ (action, _) => action.create(copiedName, Some(origName), Some("copy"), parameters = copiedParams, annotations = copiedAnnots)
+ }
+
+ val copiedAction = getJSONFromCLIResponse(wsk.action.get(copiedName).stdout)
+
+ // CLI does not guarantee order of annotations and parameters so do a diff to compare the values
+ copiedAction.fields("parameters").convertTo[Seq[JsObject]] diff resParams shouldBe List()
+ copiedAction.fields("annotations").convertTo[Seq[JsObject]] diff resAnnots shouldBe List()
+ }
+
it should "recreate and invoke a new action with different code" in withAssetCleaner(wskprops) {
(wp, assetHelper) =>
val name = "recreatedAction"
--
To stop receiving notification emails like this one, please contact
"commits@openwhisk.apache.org" <co...@openwhisk.apache.org>.