stream install catalog with push package (#3)

* stream install catalog with push package

* use latest wskdeploy  version
diff --git a/packages/installCatalog.sh b/packages/installCatalog.sh
index 6516869..ebf4eba 100755
--- a/packages/installCatalog.sh
+++ b/packages/installCatalog.sh
@@ -4,22 +4,28 @@
 # automatically
 #
 # To run this command
-# ./installCatalog.sh <authkey> <edgehost> <apihost> <workers>
+# ./installCatalog.sh  <AUTH> <EDGE_HOST> <WSK_CLI> <DOCKER>
+# AUTH and EDGE_HOST are found in $HOME/.wskprops
+# WSK_CLI="$OPENWHISK_HOME/bin/wsk"
 
 set -e
 set -x
 
-: ${OPENWHISK_HOME:?"OPENWHISK_HOME must be set and non-empty"}
-WSK_CLI="$OPENWHISK_HOME/bin/wsk"
-
 if [ $# -eq 0 ]
 then
-echo "Usage: ./installCatalog.sh <authkey> <edgehost> <apihost>"
+echo "Usage: ./installCatalog.sh <authkey> <edgehost> <pathtowskcli> <docker>"
 fi
 
 AUTH="$1"
-EDGEHOST="$2"
-APIHOST="$3"
+EDGE_HOST="$2"
+WSK_CLI="$3"
+DOCKER="$4"
+
+# If docker is not provided, set to default version.
+if [ -z "$4" ]
+  then
+    DOCKER="openwhisk/wskdeploy:0.8.10"
+fi
 
 # If the auth key file exists, read the key in the file. Otherwise, take the
 # first argument as the key itself.
@@ -27,26 +33,21 @@
     AUTH=`cat $AUTH`
 fi
 
-# Make sure that the EDGEHOST is not empty.
-: ${EDGEHOST:?"EDGEHOST must be set and non-empty"}
-
-# Make sure that the APIHOST is not empty.
-: ${APIHOST:?"APIHOST must be set and non-empty"}
-
 PACKAGE_HOME="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 
 export WSK_CONFIG_FILE= # override local property file to avoid namespace clashes
 
-echo Installing Deploy package.
+# wskdeploy actions
 
-$WSK_CLI -i --apihost "$EDGEHOST" package update --auth "$AUTH" --shared yes deploy \
-     -a description 'Alarms and periodic utility' \
-     -a parameters '[ {"message":"theMessage", "required":true} ]' \
-     -p apihost "$APIHOST" \
-     -p trigger_payload ''
+echo Installing wskdeploy package.
 
-$WSK_CLI -i --apihost "$EDGEHOST" action update --auth "$AUTH" deploy/wskdeploy "$PACKAGE_HOME/actions/deploy.js" \
-     -a description 'Creates an action that allows you to run wskdeploy from OpenWhisk' \
-     -a parameters '[ {"name":"gitUrl", "required":true, "bindTime":true, "description": "The URL to the GitHub repository to deploy"}, {"name":"manifestPath", "required":false, "bindTime":true, "description": "The relative path to the manifest file from the GitHub repo root"},{"name":"wskApiHost", "required":false, "description": "The URL of the OpenWhisk api host you want to use"}, {"name":"envData", "required":false, "description": "Blueprint-specific environment data object"} ]' \
-     -a sampleInput '{"gitUrl":"github.com/my_blueprint", "manifestPath":"runtimes/swift", "wskApiHost":"openwhisk.stage1.ng.bluemix.net", "envData": "{\"KAFKA_ADMIN_URL\":\"https://my_kafka_service\", \"MESSAGEHUB_USER\":\"MY_MESSAGEHUB_USERNAME\"}"}' \
-     --docker "openwhisk/wskdeploy:0.8.9.2"
+$WSK_CLI -i --apihost "$EDGE_HOST" package update --auth "$AUTH"  --shared yes "deploy" \
+-a description "This package offers a convenient way for you to describe and deploy any part of the OpenWhisk programming model using a Manifest file written in YAML." \
+-a prettyName "Whisk Deploy"
+
+$WSK_CLI -i --apihost "$EDGE_HOST" action update --auth "$AUTH" "deploy/wskdeploy" "$PACKAGE_HOME/actions/deploy.js" \
+-a description 'Creates an action that allows you to run wskdeploy from OpenWhisk' \
+-a parameters '[ {"name":"gitUrl", "required":true, "bindTime":true, "description": "The URL to the GitHub repository to deploy"}, {"name":"manifestPath", "required":false, "bindTime":true, "description": "The relative path to the manifest file from the GitHub repo root"}, {"name":"envData", "required":false, "description": "Blueprint-specific environment data object"} ]' \
+-a sampleInput '{"gitUrl":"github.com/my_blueprint", "manifestPath":"runtimes/swift", "envData": "{\"ENV_VARIABLE_1\":\"VALUE_1\", \"ENV_VARIABLE_2\":\"VALUE_2\"}"}' \
+--docker "$DOCKER"
+     
\ No newline at end of file
diff --git a/packages/uninstall.sh b/packages/uninstall.sh
index 6e9c7ef..3d9006b 100755
--- a/packages/uninstall.sh
+++ b/packages/uninstall.sh
@@ -7,14 +7,14 @@
 
 if [ $# -eq 0 ]
 then
-    echo "Usage: ./uninstall.sh $APIHOST $AUTH"
+    echo "Usage: ./uninstall.sh $EDGE_HOST $AUTH"
 fi
 
-APIHOST="$1"
+EDGE_HOST="$1"
 AUTH="$2"
 
 echo Uninstalling Template Package \
 
-$WSK_CLI --apihost $APIHOST action delete -i --auth $AUTH deploy/wskdeploy
+$WSK_CLI --apihost $EDGE_HOST action delete -i --auth $AUTH deploy/wskdeploy
 
-$WSK_CLI --apihost $APIHOST package delete -i --auth $AUTH deploy
+$WSK_CLI --apihost $EDGE_HOST package delete -i --auth $AUTH deploy
diff --git a/tests/src/test/scala/packages/DeployTests.scala b/tests/src/test/scala/packages/DeployTests.scala
index 6b4288e..e4da762 100644
--- a/tests/src/test/scala/packages/DeployTests.scala
+++ b/tests/src/test/scala/packages/DeployTests.scala
@@ -21,9 +21,9 @@
 import org.junit.runner.RunWith
 import org.scalatest.BeforeAndAfterAll
 import org.scalatest.junit.JUnitRunner
-import common._
-import spray.json.DefaultJsonProtocol._
-import spray.json._
+import common.{TestHelpers, Wsk, WskProps, WskTestHelpers, _}
+import spray.json.DefaultJsonProtocol.StringJsonFormat
+import spray.json.pimpAny
 
 @RunWith(classOf[JUnitRunner])
 class DeployTests extends TestHelpers
@@ -47,8 +47,10 @@
     val helloWorldAction = "openwhisk-helloworld/helloworld"
     val helloWorldActionPackage = "myPackage/helloworld"
 
+    behavior of "Deploy Package"
+
     //test to create the hello world blueprint from github
-    "Deploy Package" should "create the hello world action from github url" in {
+    it should "create the hello world action from github url" in {
       val run = wsk.action.invoke(deployAction, Map(
         "gitUrl" -> deployTestRepo.toJson,
         "manifestPath" -> helloWorldPath.toJson))
@@ -63,7 +65,7 @@
     }
 
     //test to create the hello world blueprint from github with myPackage as package name
-    "Deploy Package" should s"create the $helloWorldActionPackage action from github url" in {
+    it should s"create the $helloWorldActionPackage action from github url" in {
       val run = wsk.action.invoke(deployAction, Map(
         "gitUrl" -> deployTestRepo.toJson,
         "manifestPath" -> helloWorldPackageParam.toJson,
@@ -79,7 +81,7 @@
     }
 
     //test to create a blueprint with no github repo provided
-    "Deploy Package" should "return error if there is no github repo provided" in {
+    it should "return error if there is no github repo provided" in {
       val run = wsk.action.invoke(deployAction, Map(
         "manifestPath" -> helloWorldPath.toJson))
         withActivation(wsk.activation, run) {
@@ -90,7 +92,7 @@
     }
 
     //test to create a blueprint with a nonexistant github repo provided
-    "Deploy Package" should "return error if there is an nonexistant repo provided" in {
+    it should "return error if there is an nonexistant repo provided" in {
       val run = wsk.action.invoke(deployAction, Map(
         "gitUrl" -> incorrectGithubRepo.toJson,
         "manifestPath" -> helloWorldPath.toJson))
@@ -102,7 +104,7 @@
     }
 
     //test to create a blueprint with a malformed github repo
-    "Deploy Package" should "return error if there is a malformed gitUrl provided" in {
+    it should "return error if there is a malformed gitUrl provided" in {
       val run = wsk.action.invoke(deployAction, Map(
         "gitUrl" -> malformedRepoUrl.toJson,
         "manifestPath" -> helloWorldPath.toJson))
@@ -114,7 +116,7 @@
     }
 
     //test to create a blueprint with useless EnvData provided
-    "Deploy Package" should "return succeed if useless envData is provided" in {
+    it should "return succeed if useless envData is provided" in {
       val run = wsk.action.invoke(deployAction, Map(
         "gitUrl" -> deployTestRepo.toJson,
         "manifestPath" -> helloWorldPath.toJson,
@@ -130,7 +132,7 @@
     }
 
     //test to create a blueprint with an incorrect manifestPath provided
-    "Deploy Package" should "return with failure if incorrect manifestPath is provided" in {
+    it should "return with failure if incorrect manifestPath is provided" in {
       val run = wsk.action.invoke(deployAction, Map(
         "gitUrl" -> deployTestRepo.toJson,
         "manifestPath" -> incorrectManifestPath.toJson))
@@ -142,7 +144,7 @@
     }
 
     //test to create a blueprint with manifestPath provided, but no manifestFile existing
-    "Deploy Package" should "return with failure if no manifest exists at manifestPath" in {
+    it should "return with failure if no manifest exists at manifestPath" in {
       val run = wsk.action.invoke(deployAction, Map(
         "gitUrl" -> deployTestRepo.toJson,
         "manifestPath" -> helloWorldWithNoManifest.toJson))