Run the tests with existing image 25/20725/1
authorcristinapauna <cristina.pauna@enea.com>
Mon, 5 Sep 2016 15:47:23 +0000 (18:47 +0300)
committerwenjuan dong <dong.wenjuan@zte.com.cn>
Fri, 9 Sep 2016 00:07:11 +0000 (00:07 +0000)
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>
(cherry picked from commit 34e593954e048a86c90dd851de6a84c7329a937b)

tests/run.sh

index 2b25169..99e8fef 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() {
@@ -536,7 +543,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"