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>.