diff --git a/tests/manual-test-cases/Group5-Functional-Tests/5-11-Multiple-Cluster.robot b/tests/manual-test-cases/Group5-Functional-Tests/5-11-Multiple-Cluster.robot
index 6eeebc80c2..24a90676c4 100644
--- a/tests/manual-test-cases/Group5-Functional-Tests/5-11-Multiple-Cluster.robot
+++ b/tests/manual-test-cases/Group5-Functional-Tests/5-11-Multiple-Cluster.robot
@@ -24,7 +24,7 @@ Multiple Cluster Setup
[Timeout] 110 minutes
Run Keyword And Ignore Error Nimbus Cleanup Single VM '*5-11-multiple-cluster*' ${false}
Log To Console \nStarting testbed deploy...
- ${out}= Deploy Nimbus Testbed %{NIMBUS_USER} %{NIMBUS_PASSWORD} --noSupportBundles --plugin testng --vcvaBuild ${VC_VERSION} --esxBuild ${ESX_VERSION} --testbedName vic-multiple-cluster --testbedSpecRubyFile /dbc/pa-dbc1111/mhagen/nimbus-testbeds/testbeds/vic-multiple-cluster.rb --runName 5-11-multiple-cluster
+ ${out}= Deploy Nimbus Testbed %{NIMBUS_USER} %{NIMBUS_PASSWORD} spec=vic-multiple-cluster.rb args=--noSupportBundles --plugin testng --vcvaBuild ${VC_VERSION} --esxBuild ${ESX_VERSION} --testbedName vic-multiple-cluster --runName 5-11-multiple-cluster
Log ${out}
Open Connection %{NIMBUS_GW}
@@ -56,7 +56,6 @@ Multiple Cluster Setup
*** Test Cases ***
Test
Log To Console \nStarting test...
- Custom Testbed Keepalive /dbc/pa-dbc1111/mhagen
Install VIC Appliance To Test Server certs=${false} vol=default
Run Regression Tests
diff --git a/tests/manual-test-cases/Group5-Functional-Tests/5-15-NFS-Datastore.robot b/tests/manual-test-cases/Group5-Functional-Tests/5-15-NFS-Datastore.robot
index 10e3fa8414..3008e5f590 100644
--- a/tests/manual-test-cases/Group5-Functional-Tests/5-15-NFS-Datastore.robot
+++ b/tests/manual-test-cases/Group5-Functional-Tests/5-15-NFS-Datastore.robot
@@ -23,7 +23,7 @@ NFS Datastore Setup
[Timeout] 110 minutes
Run Keyword And Ignore Error Nimbus Cleanup Single VM '*5-15-nfs-datastore*' ${false}
Log To Console \nStarting testbed deploy...
- ${out}= Deploy Nimbus Testbed %{NIMBUS_USER} %{NIMBUS_PASSWORD} --noSupportBundles --plugin testng --vcvaBuild ${VC_VERSION} --esxBuild ${ESX_VERSION} --testbedName vic-simple-cluster --testbedSpecRubyFile /dbc/pa-dbc1111/mhagen/nimbus-testbeds/testbeds/vic-simple-cluster.rb --runName 5-15-nfs-datastore
+ ${out}= Deploy Nimbus Testbed %{NIMBUS_USER} %{NIMBUS_PASSWORD} spec=vic-simple-cluster.rb args=--noSupportBundles --plugin testng --vcvaBuild ${VC_VERSION} --esxBuild ${ESX_VERSION} --testbedName vic-simple-cluster --runName 5-15-nfs-datastore
Log ${out}
Open Connection %{NIMBUS_GW}
diff --git a/tests/manual-test-cases/Group5-Functional-Tests/5-22-NFS-Volume.robot b/tests/manual-test-cases/Group5-Functional-Tests/5-22-NFS-Volume.robot
index 5311f66209..0590553911 100644
--- a/tests/manual-test-cases/Group5-Functional-Tests/5-22-NFS-Volume.robot
+++ b/tests/manual-test-cases/Group5-Functional-Tests/5-22-NFS-Volume.robot
@@ -38,7 +38,7 @@ Setup ESX And NFS Suite
Run Keyword And Ignore Error Nimbus Cleanup ${list} ${false}
Log To Console \nStarting test...
- ${nfs} ${nfs_ro} ${esx1} ${nfs_ip} ${nfs_ro_ip} ${esx1_ip}= Deploy Simple NFS Testbed %{NIMBUS_USER} %{NIMBUS_PASSWORD} additional-args=--testbedSpecRubyFile /dbc/w3-dbc302/rashok/vic-nfs.rb --esxBuild ${ESX_VERSION} --esxPxeDir ${ESX_VERSION} --plugin testng
+ ${nfs} ${nfs_ro} ${esx1} ${nfs_ip} ${nfs_ro_ip} ${esx1_ip}= Deploy Simple NFS Testbed %{NIMBUS_USER} %{NIMBUS_PASSWORD} spec=vic-nfs.rb args=--esxBuild ${ESX_VERSION} --esxPxeDir ${ESX_VERSION} --plugin testng
Set Suite Variable @{list} ${esx1} ${nfs} ${nfs_ro}
Set Suite Variable ${ESX1} ${esx1}
diff --git a/tests/manual-test-cases/Group5-Functional-Tests/5-26-Static-IP-Address.robot b/tests/manual-test-cases/Group5-Functional-Tests/5-26-Static-IP-Address.robot
index 65adb78c3f..937569d72f 100644
--- a/tests/manual-test-cases/Group5-Functional-Tests/5-26-Static-IP-Address.robot
+++ b/tests/manual-test-cases/Group5-Functional-Tests/5-26-Static-IP-Address.robot
@@ -27,7 +27,6 @@ Setup VC With Static IP
*** Test Cases ***
Test
Log To Console \nStarting test...
- Custom Testbed Keepalive /dbc/pa-dbc1111/mhagen
Install VIC Appliance To Test Server additional-args=--public-network-ip &{static}[ip]/&{static}[netmask] --public-network-gateway &{static}[gateway] --dns-server 10.170.16.48
Run Regression Tests
\ No newline at end of file
diff --git a/tests/manual-test-cases/Group5-Functional-Tests/5-27-Selenium-Grid.robot b/tests/manual-test-cases/Group5-Functional-Tests/5-27-Selenium-Grid.robot
index ac0fef639b..573baef0e7 100644
--- a/tests/manual-test-cases/Group5-Functional-Tests/5-27-Selenium-Grid.robot
+++ b/tests/manual-test-cases/Group5-Functional-Tests/5-27-Selenium-Grid.robot
@@ -24,7 +24,7 @@ Selenium Grid Test Setup
Log To Console Starting testbed deployment...
Run Keyword And Ignore Error Nimbus Cleanup ${list} ${false}
${name}= Evaluate 'vic-5-27-' + str(random.randint(1000,9999)) modules=random
- ${out}= Deploy Nimbus Testbed %{NIMBUS_USER} %{NIMBUS_PASSWORD} --noSupportBundles --plugin testng --vcvaBuild ${VC_VERSION} --esxBuild ${ESX_VERSION} --testbedName vic-iscsi-cluster --testbedSpecRubyFile /dbc/pa-dbc1111/mhagen/nimbus-testbeds/testbeds/vic-iscsi-cluster.rb --runName ${name}
+ ${out}= Deploy Nimbus Testbed %{NIMBUS_USER} %{NIMBUS_PASSWORD} spec=vic-iscsi-cluster.rb args=--noSupportBundles --plugin testng --vcvaBuild ${VC_VERSION} --esxBuild ${ESX_VERSION} --testbedName vic-iscsi-cluster --runName ${name}
Log ${out}
Open Connection %{NIMBUS_GW}
@@ -71,7 +71,6 @@ Wait Until Selenium Node Is Ready
*** Test Cases ***
Test
Log To Console Starting Selenium Grid test...
- Custom Testbed Keepalive /dbc/pa-dbc1111/mhagen
Install VIC Appliance To Test Server
diff --git a/tests/manual-test-cases/Group5-Functional-Tests/5-6-1-VSAN-Simple.robot b/tests/manual-test-cases/Group5-Functional-Tests/5-6-1-VSAN-Simple.robot
index 0efe749b44..abb4e6bd85 100644
--- a/tests/manual-test-cases/Group5-Functional-Tests/5-6-1-VSAN-Simple.robot
+++ b/tests/manual-test-cases/Group5-Functional-Tests/5-6-1-VSAN-Simple.robot
@@ -68,8 +68,6 @@ Check VSAN DOMs In Datastore
Simple VSAN
Wait Until Keyword Succeeds 10x 30s Check VSAN DOMs In Datastore %{TEST_DATASTORE}
- Custom Testbed Keepalive /dbc/pa-dbc1111/mhagen
-
Install VIC Appliance To Test Server
Run Regression Tests
Cleanup VIC Appliance On Test Server
diff --git a/tests/manual-test-cases/Group5-Functional-Tests/5-6-2-VSAN-Complex.robot b/tests/manual-test-cases/Group5-Functional-Tests/5-6-2-VSAN-Complex.robot
index 5197a7eefe..5c0306b646 100644
--- a/tests/manual-test-cases/Group5-Functional-Tests/5-6-2-VSAN-Complex.robot
+++ b/tests/manual-test-cases/Group5-Functional-Tests/5-6-2-VSAN-Complex.robot
@@ -71,8 +71,6 @@ Check VSAN DOMs In Datastore
Complex VSAN
Wait Until Keyword Succeeds 10x 30s Check VSAN DOMs In Datastore %{TEST_DATASTORE}
- Custom Testbed Keepalive /dbc/pa-dbc1111/mhagen
-
Install VIC Appliance To Test Server
Run Regression Tests
Cleanup VIC Appliance On Test Server
diff --git a/tests/nightly/jenkins-nightly-run.sh b/tests/nightly/jenkins-nightly-run.sh
index cc38897ec5..f0be5f58c0 100755
--- a/tests/nightly/jenkins-nightly-run.sh
+++ b/tests/nightly/jenkins-nightly-run.sh
@@ -16,84 +16,102 @@
ESX_60_VERSION="ob-5251623"
VC_60_VERSION="ob-5112509"
+ESX_65_VERSION="ob-7867845"
+VC_65_VERSION="ob-7867539"
+
ESX_67_VERSION="ob-8169922"
VC_67_VERSION="ob-8217866"
+DEFAULT_LOG_UPLOAD_DEST="vic-ci-logs"
+DEFAULT_VCH_BUILD="*"
+DEFAULT_TESTCASES="tests/manual-test-cases/Group5-Functional-Tests tests/manual-test-cases/Group13-vMotion tests/manual-test-cases/Group21-Registries tests/manual-test-cases/Group23-Future-Tests"
+
+
export RUN_AS_OPS_USER=0
if [[ $1 != "6.0" && $1 != "6.5" && $1 != "6.7" ]]; then
- echo "Please specify a target cluster. One of: 6.0, 6.5, 6.7"
+ echo "Please specify a target version. One of: 6.0, 6.5, 6.7"
exit 1
fi
+
+# process the CLI arguments
target="$1"
-echo "Target cluster: "$target
-
-input=$(gsutil ls -l gs://vic-engine-builds/vic_* | grep -v TOTAL | sort -k2 -r | head -n1 | xargs | cut -d ' ' -f 3 | cut -d '/' -f 4)
-buildNumber=${input:4}
-
-n=0
- until [ $n -ge 5 ]
- do
- echo "Retry.. $n"
- echo "Downloading gcp file $input"
- wget https://storage.googleapis.com/vic-engine-builds/$input
- if [ -f "$input" ]
- then
- echo "File found.."
- break
- else
- echo "File NOT found"
- fi
- n=$[$n+1]
- sleep 15
- done
-
-n=0
- until [ $n -ge 5 ]
- do
- mkdir bin
- echo "Extracting .tar.gz"
- tar xvzf $input -C bin/ --strip 1
- if [ -f "bin/vic-machine-linux" ]
- then
- echo "tar extraction complete.."
- canContinue="Yes"
- break
- else
- echo "tar extraction failed"
- canContinue="No"
- rm -rf bin
- fi
- n=$[$n+1]
- sleep 15
- done
-
-if [[ $canContinue = "No" ]]; then
+echo "Target version: ${target}"
+shift
+# Take the remaining CLI arguments as a test case list
+testcases="${*:-$DEFAULT_TESTCASES}"
+
+# TODO: the version downloaded by this logic is not coupled with the tests that will be run against it. This should be altered to pull a version that matches the commit SHA of the tests
+# we will be running or similar mechanism.
+VCH_BUILD=${VCH_BUILD:-${DEFAULT_VCH_BUILD}}
+input=$(gsutil ls -l gs://vic-engine-builds/vic_${VCH_BUILD} | grep -v TOTAL | sort -k2 -r | head -n1 | xargs | cut -d ' ' -f 3 | cut -d '/' -f 4)
+VCH_BUILD=${input:4}
+
+# Enforce short SHA
+GIT_COMMIT=${GIT_COMMIT:0:7}
+
+case "$target" in
+ "6.0")
+ excludes="--exclude nsx"
+ ESX_BUILD=${ESX_BUILD:-$ESX_60_VERSION}
+ VC_BUILD=${VC_BUILD:-$VC_60_VERSION}
+ ;;
+ "6.5")
+ ESX_BUILD=${ESX_BUILD:-$ESX_65_VERSION}
+ VC_BUILD=${VC_BUILD:-$VC_65_VERSION}
+ ;;
+ "6.7")
+ excludes="--exclude nsx --exclude hetero"
+ ESX_BUILD=${ESX_BUILD:-$ESX_67_VERSION}
+ VC_BUILD=${VC_BUILD:-$VC_67_VERSION}
+ ;;
+esac
+
+LOG_UPLOAD_DEST="${LOG_UPLOAD_DEST:-${DEFAULT_LOG_UPLOAD_DEST}}"
+
+n=0 && rm -f "${input}"
+until [ $n -ge 5 -o -f "${input}" ]; do
+ echo "Retry.. $n"
+ echo "Downloading gcp file ${input}"
+ wget -nv https://storage.googleapis.com/vic-engine-builds/${input}
+
+ ((n++))
+ sleep 15
+done
+
+echo "Extracting .tar.gz"
+mkdir bin && tar xvzf ${input} -C bin/ --strip 1
+
+if [ ! -f "bin/vic-machine-linux" ]; then
echo "Tarball extraction failed..quitting the run"
- break
+ rm -rf bin
+ exit
else
+ VCH_COMMIT=$(bin/vic-machine-linux version | awk -F '-' '{print $NF}')
echo "Tarball extraction passed, Running nightlies test.."
fi
-if [[ $target == "6.0" ]]; then
- echo "Executing nightly tests on vSphere 6.0"
- pabot --processes 4 --removekeywords TAG:secret --exclude nsx --variable ESX_VERSION:$ESX_60_VERSION --variable VC_VERSION:$VC_60_VERSION -d 60/$i tests/manual-test-cases/Group5-Functional-Tests tests/manual-test-cases/Group13-vMotion tests/manual-test-cases/Group21-Registries tests/manual-test-cases/Group23-Future-Tests
- cat 60/pabot_results/*/stdout.txt | grep '::' | grep -E 'PASS|FAIL' > console.log
-elif [[ $target == "6.5" ]]; then
- echo "Executing nightly tests on vSphere 6.5"
- pabot --processes 4 --removekeywords TAG:secret -d 65/$i tests/manual-test-cases/Group5-Functional-Tests tests/manual-test-cases/Group13-vMotion tests/manual-test-cases/Group21-Registries tests/manual-test-cases/Group23-Future-Tests
- cat 65/pabot_results/*/stdout.txt | grep '::' | grep -E 'PASS|FAIL' > console.log
-elif [[ $target == "6.7" ]]; then
- echo "Executing nightly tests on vSphere 6.7"
- pabot --processes 4 --removekeywords TAG:secret --exclude nsx --exclude hetero --variable ESX_VERSION:$ESX_67_VERSION --variable VC_VERSION:$VC_67_VERSION -d 67/$i tests/manual-test-cases/Group5-Functional-Tests tests/manual-test-cases/Group13-vMotion tests/manual-test-cases/Group21-Registries tests/manual-test-cases/Group23-Future-Tests
- cat 67/pabot_results/*/stdout.txt | grep '::' | grep -E 'PASS|FAIL' > console.log
+
+pabot --processes 4 --removekeywords TAG:secret ${excludes} --variable ESX_VERSION:${ESX_BUILD} --variable VC_VERSION:${VC_BUILD} -d ${target} "${testcases}"
+cat ${target}/pabot_results/*/stdout.txt | grep '::' | grep -E 'PASS|FAIL' > console.log
+
+# See if any VMs leaked
+# TODO: should be a warning until clean, then changed to a failure if any leak
+echo "There should not be any VMs listed here"
+echo "======================================="
+timeout 60s sshpass -p ${NIMBUS_PASSWORD} ssh -o StrictHostKeyChecking\=no ${NIMBUS_USER}@${NIMBUS_GW} nimbus-ctl list
+echo "======================================="
+echo "If VMs are listed we should investigate why they are leaking"
+
+# archive the logs
+logarchive="logs_vch-${VCH_BUILD}-${VCH_COMMIT}_test-${BUILD_ID}-${GIT_COMMIT}_${BUILD_TIMESTAMP}.zip"
+/usr/bin/zip -9 -r "${logarchive}" "${target}" *.zip *.log *.debug *.tgz
+if [ $? -eq 0 ]; then
+ tests/nightly/upload-logs.sh ${logarchive} ${LOG_UPLOAD_DEST}
fi
+
# Pretty up the email results
sed -i -e 's/^/
/g' console.log
sed -i -e 's|PASS|PASS|g' console.log
sed -i -e 's|FAIL|FAIL|g' console.log
-# See if any VMs leaked
-timeout 60s sshpass -p $NIMBUS_PASSWORD ssh -o StrictHostKeyChecking\=no $NIMBUS_USER@$NIMBUS_GW nimbus-ctl list
-
-tests/nightly/upload-logs.sh $target_$BUILD_TIMESTAMP
diff --git a/tests/nightly/upload-logs.sh b/tests/nightly/upload-logs.sh
index 8811c5b69c..82e72afdf3 100755
--- a/tests/nightly/upload-logs.sh
+++ b/tests/nightly/upload-logs.sh
@@ -14,28 +14,23 @@
# limitations under the License.
#
-echo "Upload logs"
+source=${1:?A source file must be specified}
+# The target destination in cloud storage. If the destination ends with a / it will be treated as a directory.
+# If not it _may_ be treated as a directory or a file depending on current remote objects. see gsutil cp doc.
+dest=${2:?A bucket must be specified, eg vic-ci-logs, or vic-ci-logs/user/branch/}
-set -x
-gsutil version -l
-set +x
-
-outfile="vic_nightly_logs_"$1".zip"
-echo $outfile
+if [ ! -r "${source}" ]; then
+ echo "Specified source file does not exist or cannot be read: ${source}"
+ exit 1
+fi
-if [ -d "60" ]; then
- /usr/bin/zip -9 -r $outfile 60 *.zip *.log *.debug *.tgz
-elif [ -d "65" ]; then
- /usr/bin/zip -9 -r $outfile 65 *.zip *.log *.debug *.tgz
-elif [ -d "67" ]; then
- /usr/bin/zip -9 -r $outfile 67 *.zip *.log *.debug *.tgz
-else
- echo "No output directories to upload!"
- exit 1
+if [ ${dest:0:1} == "/" ]; then
+ echo "Destination must start with a bucket name and no leading /"
+ exit 1
fi
# GC credentials
-keyfile=~/vic-ci-logs.key
+keyfile=~/${dest%%/*}.key
botofile=~/.boto
if [ ! -f $keyfile ]; then
echo -en $GS_PRIVATE_KEY > $keyfile
@@ -50,16 +45,22 @@ if [ ! -f $botofile ]; then
echo "default_project_id = $GS_PROJECT_ID" >> $botofile
fi
-if [ -f "$outfile" ]; then
- gsutil cp $outfile gs://vic-ci-logs
- echo "----------------------------------------------"
+echo "----------------------------------------------"
+echo "Uploading logs to ${dest}"
+echo "----------------------------------------------"
+if gsutil cp "${source}" "gs://${dest}"; then
+ url="https://console.cloud.google.com/m/cloudstorage/b/${dest}/o/${source}?authuser=1"
+ echo "$url" > log-download.url
echo "Download test logs here:"
- echo "https://console.cloud.google.com/m/cloudstorage/b/vic-ci-logs/o/$outfile?authuser=1"
- echo "----------------------------------------------"
+ echo "$url"
else
- echo "No log output file to upload"
+ echo "Log upload faled. Dumping gsutil version logic"
+ set -x
+ gsutil version -l
+ set +x
fi
+echo "----------------------------------------------"
+
+rm -f $keyfile
+
-if [ -f "$keyfile" ]; then
- rm -f $keyfile
-fi
diff --git a/tests/resources/Nimbus-Util.robot b/tests/resources/Nimbus-Util.robot
index 0ffe35ad08..25138317fd 100644
--- a/tests/resources/Nimbus-Util.robot
+++ b/tests/resources/Nimbus-Util.robot
@@ -45,12 +45,6 @@ Fetch POD
${pod}= Fetch From Left ${out} :
[return] ${pod}
-Custom Testbed Keepalive
- [Tags] secret
- [Arguments] ${folder}
- ${out}= Run Secret SSHPASS command %{NIMBUS_USER} '%{NIMBUS_PASSWORD}' touch ${folder}
- [Return] ${out}
-
Deploy Nimbus ESXi Server
[Arguments] ${user} ${password} ${version}=${ESX_VERSION} ${tls_disabled}=True
${name}= Evaluate 'ESX-' + str(random.randint(1000,9999)) + str(time.clock()) modules=random,time
@@ -192,13 +186,22 @@ Deploy Nimbus vCenter Server Async
${out}= Run Secret SSHPASS command %{NIMBUS_USER} '%{NIMBUS_PASSWORD}' '${NIMBUS_LOCATION} nimbus-vcvadeploy --lease=0.25 --vcvaBuild ${version} ${name}'
[Return] ${out}
+# Deploys a nimbus testbed based on the specified testbed spec and options
+# user [required] - nimbus user
+# password [required] - password for nimbus user
+# spec [optional] - name of spec file in tests/resources/nimbus-testbeds
+# args [optiona;] - args to pass into testbeddeploy
Deploy Nimbus Testbed
- [Arguments] ${user} ${password} ${testbed}
+ [Arguments] ${user} ${password} ${spec}= ${args}=
+
Open Connection %{NIMBUS_GW}
Wait Until Keyword Succeeds 2 min 30 sec Login ${user} ${password}
+ Run Keyword Unless ${spec} == ${EMPTY} Set Test Variable ${specarg} --testbedSpecRubyFile ./%{BUILD_TAG}/testbeds/${spec}
+ Run Keyword Unless ${spec} == ${EMPTY} Put File tests/resources/nimbus-testbeds/${spec} destination=./%{BUILD_TAG}/testbeds/
+
:FOR ${IDX} IN RANGE 1 5
- \ ${out}= Execute Command ${NIMBUS_LOCATION} nimbus-testbeddeploy --lease 0.25 ${testbed}
+ \ ${out}= Execute Command ${NIMBUS_LOCATION} nimbus-testbeddeploy --lease 0.25 ${specarg} ${args}
\ Log ${out}
\ # Make sure the deploy actually worked
\ ${status}= Run Keyword And Return Status Should Contain ${out} "deployment_result"=>"PASS"
@@ -215,26 +218,27 @@ Kill Nimbus Server
Log ${out}
Close connection
-Cleanup Nimbus PXE folder
- [Arguments] ${user} ${password}
+Cleanup Nimbus Folders
+ [Arguments] ${deletePXE}=${false}
Open Connection %{NIMBUS_GW}
- Wait Until Keyword Succeeds 2 min 30 sec Login ${user} ${password}
- ${out}= Execute Command ${NIMBUS_LOCATION} rm -rf public_html/pxe/*
+ Wait Until Keyword Succeeds 2 min 30 sec Login %{NIMBUS_USER} %{NIMBUS_PASSWORD}
+ Run Keyword If ${deletePXE} Execute Command ${NIMBUS_LOCATION} rm -rf public_html/pxe/*
+ Execute Command ${NIMBUS_LOCATION} rm -rf %{BUILD_TAG}
Close connection
+# Cleans up a list of VMs and deletes the pxe folder on nimbus gateway
Nimbus Cleanup
[Arguments] ${vm_list} ${collect_log}=True ${dontDelete}=${false}
- Run Keyword If ${collect_log} Run Keyword And Continue On Failure Gather Logs From Test Server
- Run Keyword And Ignore Error Cleanup Nimbus PXE folder %{NIMBUS_USER} %{NIMBUS_PASSWORD}
- Return From Keyword If ${dontDelete}
${list}= Catenate @{vm_list}
- Run Keyword And Ignore Error Kill Nimbus Server %{NIMBUS_USER} %{NIMBUS_PASSWORD} ${list}
+ Run Keyword Nimbus Cleanup Single VM ${list} ${collect_log} ${dontDelete} ${true}
+# Cleans up a vm (or space separated string list of vms) but does not delete pxe folder on nimbus gateway
Nimbus Cleanup Single VM
- [Arguments] ${vm} ${collect_log}=True ${dontDelete}=${false}
+ [Arguments] ${vms} ${collect_log}=True ${dontDelete}=${false} ${deletePXE}=${false}
Run Keyword If ${collect_log} Run Keyword And Continue On Failure Gather Logs From Test Server
+ Run Keyword And Ignore Error Cleanup Nimbus Folders ${deletePXE}
Return From Keyword If ${dontDelete}
- Run Keyword And Ignore Error Kill Nimbus Server %{NIMBUS_USER} %{NIMBUS_PASSWORD} ${vm}
+ Run Keyword And Ignore Error Kill Nimbus Server %{NIMBUS_USER} %{NIMBUS_PASSWORD} ${vms}
Gather Host IPs
${out}= Run govc ls host/cls
@@ -409,13 +413,13 @@ Get Vsphere Version
\ Run Keyword And Return If ${status} Fetch From Right ${line} ${SPACE}
Deploy Simple NFS Testbed
- [Arguments] ${user} ${password} ${additional-args}=
+ [Arguments] ${user} ${password} ${spec}= ${args}=
${name}= Evaluate 'NFS-' + str(random.randint(1000,9999)) + str(time.clock()) modules=random,time
Log To Console \nDeploying Nimbus NFS testbed: ${name}
Open Connection %{NIMBUS_GW}
Wait Until Keyword Succeeds 2 min 30 sec Login ${user} ${password}
- ${out}= Execute Command ${NIMBUS_LOCATION} nimbus-testbeddeploy --testbedName nfs --runName ${name} ${additional-args}
+ ${out}= Execute Command ${NIMBUS_LOCATION} nimbus-testbeddeploy spec=${spec} args=--testbedName nfs --runName ${name} ${args}
Log ${out}
# Make sure the deploy actually worked
Should Contain ${out} ${name}.nfs.0' is up. IP:
@@ -488,7 +492,7 @@ Create Simple VC Cluster With Static IP
Set Suite Variable ${NIMBUS_LOCATION} NIMBUS_LOCATION=wdc
Run Keyword And Ignore Error Nimbus Cleanup ${list} ${false}
Log To Console Create a new simple vc cluster with static ip support...
- ${out}= Deploy Nimbus Testbed %{NIMBUS_USER} %{NIMBUS_PASSWORD} --noSupportBundles --plugin testng --vcvaBuild ${VC_VERSION} --esxBuild ${ESX_VERSION} --testbedName vic-simple-cluster-with-static --testbedSpecRubyFile /dbc/pa-dbc1111/mhagen/nimbus-testbeds/testbeds/vic-simple-cluster-with-static.rb --runName ${name}
+ ${out}= Deploy Nimbus Testbed %{NIMBUS_USER} %{NIMBUS_PASSWORD} spec=vic-simple-cluster-with-static.rb args=--noSupportBundles --plugin testng --vcvaBuild ${VC_VERSION} --esxBuild ${ESX_VERSION} --testbedName vic-simple-cluster-with-static --runName ${name}
Log ${out}
Open Connection %{NIMBUS_GW}