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/08/10 15:39:17 UTC

[incubator-openwhisk-client-js] branch master updated: change cli to curl for integration script (#66)

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-client-js.git


The following commit(s) were added to refs/heads/master by this push:
     new d8a8fb5  change cli to curl for integration script (#66)
d8a8fb5 is described below

commit d8a8fb5d6b7af4990781be7eca687c2dedfa044c
Author: Angela <am...@utexas.edu>
AuthorDate: Thu Aug 10 10:39:15 2017 -0500

    change cli to curl for integration script (#66)
---
 README.md                                |  8 +---
 test/integration/prepIntegrationTests.sh | 69 ++++++++++++--------------------
 tools/merge-coverage.sh                  | 16 ++++++--
 tools/travis/build.sh                    | 18 +++------
 4 files changed, 45 insertions(+), 66 deletions(-)

diff --git a/README.md b/README.md
index 27f3740..1653c3c 100644
--- a/README.md
+++ b/README.md
@@ -503,11 +503,7 @@ If your local environment is using self-signed certificates, you can use the fol
 This will disable SSL/TLS verification for all SSL communication.
 
 Alternatively, you can run the `prepIntegrationTests.sh` script using guest credentials or by specifying specific credentials.  
-Run the script with guest credentials:  
-```
-./test/integration/prepIntegrationTests.sh guest
-```  
-Run the script with specific credentials:  
+Run the script with openwhisk credentials:  
 ```
 ./test/integration/prepIntegrationTests.sh <your key in the form of ABCD:EFGH> <openwhisk instance hostname> <openwhisk namespace> <api gatewaytoken>
 ```  
@@ -524,6 +520,6 @@ To compile down to ECMA5 run the following command:
 1 `npm run code-coverage-build`  
 
 To generate combined reports of both the unit and integration tests, run the following command:  
-2 `npm run code-coverage-run`  
+2 `npm run code-coverage-run <key> <host> <namespace> <token> <options>`  
 
 The report is viewable under `/coverage`. Click **`/coverage/index.html`** to view the full report.  
diff --git a/test/integration/prepIntegrationTests.sh b/test/integration/prepIntegrationTests.sh
index 16693ce..32cd582 100755
--- a/test/integration/prepIntegrationTests.sh
+++ b/test/integration/prepIntegrationTests.sh
@@ -1,14 +1,8 @@
 #!/bin/bash
 #set -e
-#Usage: ./test/integration/prepIntegrationTests.sh <yourapikeyintheformofABCD:EFGH> <openwhis hostname> <openwhisk namespace> <api gatewaytoken>
+#Usage: ./test/integration/prepIntegrationTests.sh <yourapikeyintheformofABCD:EFGH> <openwhis hostname> <openwhisk namespace> <api gatewaytoken> <optional "insecure">
 # Run from the incubator-openwhisk-client-js
 
-# Make sure wsk is installed; exit if wsk is not available.
-if ! type "wsk" > /dev/null; then
-  echo "Exiting program; wsk is not installed on the system. Cannot preform tests"
-  exit 1
-fi
-
 # Assert NODEJS6/NPM3 or greater is default node/npm version
 NODE_VERSION_MAJOR=`node --version | awk -Fv '{print $2}' | awk -F. '{print $1}'`
 if [ ${NODE_VERSION_MAJOR} -lt 6 ]; then
@@ -21,32 +15,17 @@ override_key="$1"
 override_host="$2"
 override_namespace="$3"
 override_token="$4"
+insecurecred="$5"
 iflag=""
 kflag=""
 
-function getvalue {
-  content="$1"
-  search="$2"
-  result="$3"
-  result=$(echo "$content" | grep "$search" | awk '{print $NF}')
-  return 0
-}
-
-if [ $override_key == "guest" ]; then
-  echo "getting guest user credentials"
+if [ $insecurecred == "insecure" ]; then
+  echo "INSECURE MODE!"
   iflag="-i"
   kflag="-k"
-  propInfo=$(wsk -i property get)
-  getvalue "$propInfo" "whisk auth" "$result"
-  override_key="$result"
-  getvalue "$propInfo" "whisk API host" "$result"
-  override_host="$result"
   override_namespace="guest"
-  override_token=""
-
 fi
 
-
 #If they exist, export these values (tests use a global)
 if [ -n "$override_key" ] && [ -n "$override_host" ] && [ -n "$override_namespace" ] ; then
   echo "found key, host, namespace and token"
@@ -78,9 +57,9 @@ touch temp/tests.js
 echo "function main() {return {payload: 'Hello world'};}" > temp/tests.js
 
 echo "Create wsk actions and triggers for use by tests"
-wsk $iflag action update hello temp/tests.js
-wsk $iflag action update tests temp/tests.js
-wsk $iflag trigger update sample
+curl -s --output /dev/null $kflag -u $__OW_API_KEY  -d '{"namespace":"'"$__OW_NAMESPACE"'","name":"hello","exec":{"kind":"nodejs:6","code":"function main() { return {payload:\"Hello world\"}}"}}' -X PUT -H "Content-Type: application/json" https://$__OW_API_HOST/api/v1/namespaces/$__OW_NAMESPACE/actions/hello?overwrite=true
+curl -s --output /dev/null $kflag -u $__OW_API_KEY  -d '{"namespace":"'"$__OW_NAMESPACE"'","name":"tests","exec":{"kind":"nodejs:6","code":"function main() { return {payload:\"Hello world\"}}"}}' -X PUT -H "Content-Type: application/json" https://$__OW_API_HOST/api/v1/namespaces/$__OW_NAMESPACE/actions/tests?overwrite=true
+curl -s --output /dev/null $kflag -u $__OW_API_KEY -d '{"name":"sample"}' -X PUT -H "Content-Type: application/json"  https://192.168.99.100/api/v1/namespaces/_/triggers/sample?overwrite=true
 
 #run tests
 echo "running tests"
@@ -91,30 +70,32 @@ RUNSTAT=$PIPESTATUS
 function cleanresources {
   verb="$1"
   name="$2"
-  wsk $iflag $verb get $name -s &>/dev/null
-  if [[ $PIPESTATUS -eq 0 ]]; then
-    wsk $iflag $verb delete $name
+
+  curlstatus=$(curl -s -i $kflag -u $__OW_API_KEY -X GET -H "Content-Type: application/json" https://$__OW_API_HOST/api/v1/namespaces/$__OW_NAMESPACE/$verb/$name)
+  statusheader=$(echo "$curlstatus" | awk 'NR==1{print $0; exit}')
+  if [[ $statusheader == *"200"* ]]; then
+    echo "200 status code found; now deleteing"
+    curl -s -i $kflag -u $__OW_API_KEY -X DELETE -H "Content-Type: application/json" https://$__OW_API_HOST/api/v1/namespaces/$__OW_NAMESPACE/$verb/$name
   fi
 }
 
 #clean up artifacts generated during a bad-testRun
 echo "clean resources"
-cleanresources action routeAction
-cleanresources action random_package_action_test
-cleanresources action random_action_test
-cleanresources action random_action_params_test
-cleanresources action random_update_tested
-cleanresources trigger sample_feed_trigger
-cleanresources trigger sample_rule_trigger
-cleanresources trigger random_trigger_test
-cleanresources rule random_rule_test
-#wsk api delete /testing
+cleanresources actions routeAction
+cleanresources actions random_package_action_test
+cleanresources actions random_action_test
+cleanresources actions random_action_params_test
+cleanresources actions random_update_tested
+cleanresources triggers sample_feed_trigger
+cleanresources triggers sample_rule_trigger
+cleanresources triggers random_trigger_test
+cleanresources rules random_rule_test
 
 #cleanup workspace
 rm -rf temp
-wsk $iflag action delete hello
-wsk $iflag action delete tests
-wsk $iflag trigger delete sample
+curl -s --output /dev/null $kflag -u $__OW_API_KEY -X DELETE -H "Content-Type: application/json" https://$__OW_API_HOST/api/v1/namespaces/$__OW_NAMESPACE/actions/hello
+curl -s --output /dev/null $kflag -u $__OW_API_KEY -X DELETE -H "Content-Type: application/json" https://$__OW_API_HOST/api/v1/namespaces/$__OW_NAMESPACE/actions/tests
+curl -s --output /dev/null $kflag -u $__OW_API_KEY -X DELETE -H "Content-Type: application/json" https://$__OW_API_HOST/api/v1/namespaces/$__OW_NAMESPACE/triggers/sample
 
 echo "script finished"
 
diff --git a/tools/merge-coverage.sh b/tools/merge-coverage.sh
index 03da3db..76330b6 100755
--- a/tools/merge-coverage.sh
+++ b/tools/merge-coverage.sh
@@ -1,5 +1,15 @@
 #!/bin/bash
-runningEnv="$1"
+key="$1"
+host="$2"
+namespace="$3"
+token="$4"
+runningEnv="$5"
+insecure=""
+
+if [[ "$runningEnv" == *"insecure"* ]] ; then
+  insecure="insecure"
+fi
+
 
 tempDir="coveragetemp"
 mkdir $tempDir
@@ -11,7 +21,7 @@ node ./node_modules/nyc/bin/nyc.js ava test/unit
 unitstatus="$PIPESTATUS"
 mv .nyc_output/* $tempDir/unit
 
-node ./node_modules/nyc/bin/nyc.js ./test/integration/prepIntegrationTests.sh guest
+node ./node_modules/nyc/bin/nyc.js ./test/integration/prepIntegrationTests.sh $key $host $namespace $token $insecure
 integrationstatus="$PIPESTATUS"
 mv .nyc_output/* $tempDir/integration
 
@@ -21,7 +31,7 @@ cp -a $tempDir/integration/. .nyc_output
 rm -rf $tempDir
 
 # generate the HTML report from the merged results
-if [ "$runningEnv" == "travis" ] ; then
+if [[ "$runningEnv" == *"travis"* ]] ; then
   npm run coverage
 fi
 
diff --git a/tools/travis/build.sh b/tools/travis/build.sh
index 09028b4..3aaf856 100755
--- a/tools/travis/build.sh
+++ b/tools/travis/build.sh
@@ -10,7 +10,7 @@ WHISKDIR="$ROOTDIR/../openwhisk"
 # Install OpenWhisk
 cd $WHISKDIR/ansible
 
-ANSIBLE_CMD="ansible-playbook -i environments/local -e docker_image_prefix=openwhisk"
+ANSIBLE_CMD="ansible-playbook -i environments/local -e docker_image_prefix=openwhisk "
 
 $ANSIBLE_CMD setup.yml
 $ANSIBLE_CMD prereq.yml
@@ -19,29 +19,21 @@ $ANSIBLE_CMD initdb.yml
 $ANSIBLE_CMD apigateway.yml
 
 cd $WHISKDIR
-./gradlew :tools:cli:distDocker -PdockerImagePrefix=openwhisk
-
+ ./gradlew  -PdockerImagePrefix=openwhisk
 cd $WHISKDIR/ansible
 
 $ANSIBLE_CMD wipe.yml
-$ANSIBLE_CMD openwhisk.yml
+$ANSIBLE_CMD openwhisk.yml  -e '{"openwhisk_cli":{"installation_mode":"remote","remote":{"name":"OpenWhisk_CLI","dest_name":"OpenWhisk_CLI","location":"https://github.com/apache/incubator-openwhisk-cli/releases/download/latest"}}}'
 $ANSIBLE_CMD postdeploy.yml
 
 cd $WHISKDIR
 cat whisk.properties
 
-# Set Environment
-export OPENWHISK_HOME=$WHISKDIR
-
-# Set up CLI tool used by prereq script
-sudo cp $WHISKDIR/bin/wsk /usr/bin/wsk
-
 edgehost=$(cat $WHISKDIR/whisk.properties | grep edge.host= | sed s/edge\.host=//)
-wsk property set --apihost $edgehost
-wsk property set --auth "$(cat $WHISKDIR/ansible/files/auth.guest)"
+key=$(cat $WHISKDIR/ansible/files/auth.guest)
 
 # Test
 cd $ROOTDIR
 npm install --dev
 npm run code-coverage-build
-npm run code-coverage-run travis
+npm run code-coverage-run $key $edgehost guest true "travis,insecure"

-- 
To stop receiving notification emails like this one, please contact
['"commits@openwhisk.apache.org" <co...@openwhisk.apache.org>'].