Run the tests with existing image 69/20369/4
authorcristinapauna <cristina.pauna@enea.com>
Mon, 5 Sep 2016 15:47:23 +0000 (18:47 +0300)
committercristinapauna <cristina.pauna@enea.com>
Thu, 8 Sep 2016 13:09:13 +0000 (16:09 +0300)
When ran in functest on arm, the doctor suite fails because the x86
image is hardocded in the source files. This change adds the option to
run the doctor suite with an existing image as opposed to downloading
and creating it.

The image name is taken from an enviroment variables (if it is set).
When ran with functest, the env variable is set in doctor.py file.

Change-Id: Ib6ce56e650ebe8b29618a9a31ec990f9f0895f54
Signed-off-by: cristinapauna <cristina.pauna@enea.com>
tests/run.sh

index ee96da9..5ee4b6f 100755 (executable)
@@ -11,7 +11,8 @@
 [[ "${CI_DEBUG:-true}" == [Tt]rue ]] && set -x
 
 IMAGE_URL=https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img
-IMAGE_NAME=cirros
+#if an existing image name is provided in the enviroment, use that one
+IMAGE_NAME=${IMAGE_NAME:-cirros}
 IMAGE_FILE="${IMAGE_NAME}.img"
 IMAGE_FORMAT=qcow2
 VM_NAME=doctor_vm1
@@ -252,8 +253,14 @@ get_consumer_ip() {
 }
 
 download_image() {
-    [ -e "$IMAGE_FILE" ] && return 0
-    wget "$IMAGE_URL" -o "$IMAGE_FILE"
+    #if a different name was provided for the image in the enviroment there's no need to download the image
+    use_existing_image=false
+    openstack image list | grep -q " $IMAGE_NAME " && use_existing_image=true
+
+    if [[ "$use_existing_image" == false ]] ; then
+        [ -e "$IMAGE_FILE" ] && return 0
+        wget "$IMAGE_URL" -o "$IMAGE_FILE"
+    fi
 }
 
 register_image() {
@@ -531,7 +538,10 @@ cleanup() {
 
     image_id=$(openstack image list | grep " $IMAGE_NAME " | awk '{print $2}')
     sleep 1
-    [ -n "$image_id" ] && openstack image delete "$image_id"
+    #if an existing image was used, there's no need to remove it here
+    if [[ "$use_existing_image" == false ]] ; then
+        [ -n "$image_id" ] && openstack image delete "$image_id"
+    fi
     openstack role remove "$DOCTOR_ROLE" --user "$DOCTOR_USER" \
                               --project "$DOCTOR_PROJECT"
     openstack project delete "$DOCTOR_PROJECT"