Add warnings and options to run.sh
Adds a warning to run.sh informing the user that
the contents of their /opt folder will be deleted by the test.
Also adds option parsing, -y for skipping the prompt, -s for
test suite selection, -c for test case selection, as well as
-h for displaying help for the program.
Change-Id: I888350d31839bd6db91a497a04ae3308af5329e9
Issue-Id: INT-97
Signed-off-by: Nate Potter <nathaniel.potter@intel.com>
diff --git a/bootstrap/vagrant-onap/CONTRIBUTING.md b/bootstrap/vagrant-onap/CONTRIBUTING.md
index 6f2897c..3e42510 100644
--- a/bootstrap/vagrant-onap/CONTRIBUTING.md
+++ b/bootstrap/vagrant-onap/CONTRIBUTING.md
@@ -15,7 +15,7 @@
execute the Unit Tests defined for this project, you must run the following
command:
- $ ./tools/run.sh testing [test_suite] [function]
+ $ ./tools/run.sh -s [test_suite] -c [function] testing
or using PowerShell
@@ -25,6 +25,6 @@
Examples
--------
- $ ./tools/run.sh testing # Executes all the Unit Tests
- $ ./tools/run.sh testing functions # Executes all the Unit Tests of Functions Test Suite
- $ ./tools/run.sh testing functions install_maven # Executes the install_maven Unit Test of Functions Test Suite
+ $ ./tools/run.sh -y testing # Executes all the Unit Tests unattended mode
+ $ ./tools/run.sh -s functions testing # Executes all the Unit Tests of Functions Test Suite
+ $ ./tools/run.sh -s functions -c install_maven testing # Executes the install_maven Unit Test of Functions Test Suite
diff --git a/bootstrap/vagrant-onap/Vagrantfile b/bootstrap/vagrant-onap/Vagrantfile
index 0e8e1da..3ee305c 100644
--- a/bootstrap/vagrant-onap/Vagrantfile
+++ b/bootstrap/vagrant-onap/Vagrantfile
@@ -152,7 +152,7 @@
v.flavor = 'm1.xlarge'
end
all_in_one.vm.provision 'shell' do |s|
- s.path = 'postinstall.sh'
+ s.path = 'vagrant_utils/postinstall.sh'
s.args = ['mr', 'sdc', 'aai', 'mso', 'robot', 'vid', 'sdnc', 'portal', 'dcae', 'policy', 'appc', 'vfc']
s.env = conf
end
@@ -175,7 +175,7 @@
v.flavor = 'm1.small'
end
dns.vm.provision 'shell' do |s|
- s.path = 'postinstall.sh'
+ s.path = 'vagrant_utils/postinstall.sh'
s.env = conf
end
end
@@ -187,7 +187,7 @@
v.server_name = 'message-router'
end
mr.vm.provision 'shell' do |s|
- s.path = 'postinstall.sh'
+ s.path = 'vagrant_utils/postinstall.sh'
s.args = ['mr']
s.env = conf
end
@@ -209,7 +209,7 @@
v.server_name = 'sdc'
end
sdc.vm.provision 'shell' do |s|
- s.path = 'postinstall.sh'
+ s.path = 'vagrant_utils/postinstall.sh'
s.args = ['sdc']
s.env = conf
end
@@ -222,7 +222,7 @@
v.server_name = 'aai'
end
aai.vm.provision 'shell' do |s|
- s.path = 'postinstall.sh'
+ s.path = 'vagrant_utils/postinstall.sh'
s.args = ['aai']
s.env = conf
end
@@ -235,7 +235,7 @@
v.server_name = 'mso'
end
mso.vm.provision 'shell' do |s|
- s.path = 'postinstall.sh'
+ s.path = 'vagrant_utils/postinstall.sh'
s.args = ['mso']
s.env = conf
end
@@ -248,7 +248,7 @@
v.server_name = 'robot'
end
robot.vm.provision 'shell' do |s|
- s.path = 'postinstall.sh'
+ s.path = 'vagrant_utils/postinstall.sh'
s.args = ['robot']
s.env = conf
end
@@ -261,7 +261,7 @@
v.server_name = 'vid'
end
vid.vm.provision 'shell' do |s|
- s.path = 'postinstall.sh'
+ s.path = 'vagrant_utils/postinstall.sh'
s.args = ['vid']
s.env = conf
end
@@ -274,7 +274,7 @@
v.server_name = 'sdnc'
end
sdnc.vm.provision 'shell' do |s|
- s.path = 'postinstall.sh'
+ s.path = 'vagrant_utils/postinstall.sh'
s.args = ['sdnc']
s.env = conf
end
@@ -287,7 +287,7 @@
v.server_name = 'portal'
end
portal.vm.provision 'shell' do |s|
- s.path = 'postinstall.sh'
+ s.path = 'vagrant_utils/postinstall.sh'
s.args = ['portal']
s.env = conf
end
@@ -300,7 +300,7 @@
v.server_name = 'dcae'
end
dcae.vm.provision 'shell' do |s|
- s.path = 'postinstall.sh'
+ s.path = 'vagrant_utils/postinstall.sh'
s.args = ['dcae']
s.env = conf
end
@@ -313,7 +313,7 @@
v.server_name = 'policy'
end
policy.vm.provision 'shell' do |s|
- s.path = 'postinstall.sh'
+ s.path = 'vagrant_utils/postinstall.sh'
s.args = ['policy']
s.env = conf
end
@@ -326,7 +326,7 @@
v.server_name = 'appc'
end
appc.vm.provision 'shell' do |s|
- s.path = 'postinstall.sh'
+ s.path = 'vagrant_utils/postinstall.sh'
s.args = ['appc']
s.env = conf
end
@@ -339,7 +339,7 @@
v.server_name = 'vfc'
end
vfc.vm.provision 'shell' do |s|
- s.path = 'postinstall.sh'
+ s.path = 'vagrant_utils/postinstall.sh'
s.args = ['vfc']
s.env = conf
end
@@ -366,7 +366,7 @@
v.flavor = 'm1.small'
end
testing.vm.provision 'shell' do |s|
- s.path = 'unit_testing.sh'
+ s.path = 'vagrant_utils/unit_testing.sh'
s.args = [test_suite, test_case]
s.env = conf
end
diff --git a/bootstrap/vagrant-onap/tools/run.sh b/bootstrap/vagrant-onap/tools/run.sh
index b9a4a43..aeb9d8c 100755
--- a/bootstrap/vagrant-onap/tools/run.sh
+++ b/bootstrap/vagrant-onap/tools/run.sh
@@ -1,20 +1,93 @@
#!/bin/bash
-case $1 in
+usage ()
+{
+cat <<EOF
+Usage: run.sh [-y] [-h] Command
+Optional arguments:
+ -y
+ Skips warning prompt.
+ -h
+ Shows help about this program.
+ -s <suite>
+ Test suite to use in testing mode.
+ -c <case>
+ Test case to use in testing mode.
+Commands:
+ all_in_one Deploy in all-in-one mode.
+ dns|mr|sdc|aai|mso|robot|vid|sdnc|portal|dcae|policy|appc Deploy chosen service.
+ testing Deploy in testing mode.
+EOF
+}
+
+run=false
+test_suite="*"
+test_case="*"
+
+COMMAND=${@: -1}
+
+while getopts "yhs:c:" OPTION; do
+ case "$OPTION" in
+ y)
+ run=true
+ ;;
+ s)
+ if [ "$COMMAND" != "testing" ] ; then
+ echo "Test suite should only be specified in testing mode."
+ echo "./run.sh -h for usage."
+ exit 0
+ fi
+ test_suite=$OPTARG
+ ;;
+ c)
+ if [ "$COMMAND" != "testing" ] ; then
+ echo "Test case should only be specified in testing mode."
+ echo "./run.sh -h for usage."
+ exit 0
+ fi
+ test_case=$OPTARG
+ ;;
+ h)
+ usage
+ exit 0
+ ;;
+ esac
+done
+
+case $COMMAND in
"all_in_one" )
- export DEPLOY_MODE='all-in-one' ;;
+ export DEPLOY_MODE='all-in-one'
+ ;;
"dns" | "mr" | "sdc" | "aai" | "mso" | "robot" | "vid" | "sdnc" | "portal" | "dcae" | "policy" | "appc" )
- export DEPLOY_MODE='individual' ;;
+ export DEPLOY_MODE='individual'
+ ;;
"testing" )
export DEPLOY_MODE='testing'
- export TEST_SUITE=${2:-*}
- export TEST_CASE=${3:-*}
+ if [ "$run" == false ] ; then
+ while true ; do
+ echo "Warning: This test script will delete the contents of ../opt/ and ~/.m2."
+ read -p "Would you like to continue? [y]es/[n]o: " yn
+ case $yn in
+ [Yy]*)
+ break
+ ;;
+ [Nn]*)
+ echo "Exiting."
+ exit 0
+ ;;
+ esac
+ done
+ fi
+ export TEST_SUITE=$test_suite
+ export TEST_CASE=$test_case
rm -rf ../opt/
- rm -rf ~/.m2/;;
+ rm -rf ~/.m2/
+ ;;
* )
- echo $"Usage: $0 {all_in_one|dns|mr|sdc|aai|mso|robot|vid|sdnc|portal|dcae|policy|appc|testing}"
+ usage
exit 1
esac
-vagrant destroy -f $1
-vagrant up $1
+
+vagrant destroy -f $COMMAND
+vagrant up $COMMAND
diff --git a/bootstrap/vagrant-onap/postinstall.sh b/bootstrap/vagrant-onap/vagrant_utils/postinstall.sh
similarity index 100%
rename from bootstrap/vagrant-onap/postinstall.sh
rename to bootstrap/vagrant-onap/vagrant_utils/postinstall.sh
diff --git a/bootstrap/vagrant-onap/unit_testing.sh b/bootstrap/vagrant-onap/vagrant_utils/unit_testing.sh
similarity index 76%
rename from bootstrap/vagrant-onap/unit_testing.sh
rename to bootstrap/vagrant-onap/vagrant_utils/unit_testing.sh
index 360d28b..a378ad0 100755
--- a/bootstrap/vagrant-onap/unit_testing.sh
+++ b/bootstrap/vagrant-onap/vagrant_utils/unit_testing.sh
@@ -1,10 +1,5 @@
#!/bin/bash
-set -o xtrace
-
-rm -rf /opt/
-rm -rf /root/.m2/
-
set -o errexit
TEST_SUITE=${1:-*}