Decoupling yardstick_verify.sh 25/22425/1
authorxudan <xudan16@huawei.com>
Mon, 26 Sep 2016 02:59:21 +0000 (02:59 +0000)
committerxudan <xudan16@huawei.com>
Mon, 26 Sep 2016 04:11:16 +0000 (04:11 +0000)
JIRA: YARDSTICK-360

Change-Id: I9f0b44041a50d3538ffa7fb2941d847808b220ff
Signed-off-by: xudan <xudan16@huawei.com>
tests/ci/clean_images.sh [new file with mode: 0755]
tests/ci/load_images.sh [new file with mode: 0755]
tests/ci/yardstick-verify

diff --git a/tests/ci/clean_images.sh b/tests/ci/clean_images.sh
new file mode 100755 (executable)
index 0000000..05f68a7
--- /dev/null
@@ -0,0 +1,29 @@
+#!/bin/bash
+##############################################################################
+# Copyright (c) 2015 Ericsson AB, Huawei Technologies Co.,Ltd and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+# Clean the images and flavor before running yardstick test suites.
+
+cleanup()
+{
+    echo
+    echo "========== Cleanup =========="
+
+    if ! glance image-list; then
+        return
+    fi
+
+    for image in $(glance image-list | grep -e cirros-0.3.3 -e yardstick-trusty-server -e Ubuntu-14.04 \
+        -e yardstick-vivid-kernel | awk '{print $2}'); do
+        echo "Deleting image $image..."
+        glance image-delete $image || true
+    done
+
+    nova flavor-delete yardstick-flavor &> /dev/null || true
+}
diff --git a/tests/ci/load_images.sh b/tests/ci/load_images.sh
new file mode 100755 (executable)
index 0000000..fd14ab6
--- /dev/null
@@ -0,0 +1,205 @@
+#!/bin/bash
+##############################################################################
+# Copyright (c) 2015 Ericsson AB, Huawei Technologies Co.,Ltd and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+# Set up the environment to run yardstick test suites.
+
+set -e
+
+UCA_HOST="cloud-images.ubuntu.com"
+if [ $YARD_IMG_ARCH = "arm64" ]; then
+    export VIVID_IMG_URL="http://${UCA_HOST}/vivid/current/vivid-server-cloudimg-arm64.tar.gz"
+    if ! grep -q "Defaults env_keep += \"VIVID_IMG_URL\"" "/etc/sudoers"; then
+        sudo echo "Defaults env_keep += \"VIVID_IMG_URL\"" >> /etc/sudoers
+    fi
+fi
+
+build_yardstick_image()
+{
+    echo
+    echo "========== Build yardstick cloud image =========="
+
+    local cmd="sudo $(which yardstick-img-modify) $(pwd)/tools/ubuntu-server-cloudimg-modify.sh"
+
+    # Build the image. Retry once if the build fails.
+    $cmd || $cmd
+
+    if [ ! -f $QCOW_IMAGE ]; then
+        echo "Failed building QCOW image"
+        exit 1
+    fi
+}
+
+load_yardstick_image()
+{
+    echo
+    echo "========== Loading yardstick cloud image =========="
+    EXTRA_PARAMS=""
+    if [ $YARD_IMG_ARCH = "arm64" ]; then
+        VIVID_IMAGE="/tmp/vivid-server-cloudimg-arm64.tar.gz"
+        VIVID_KERNEL="/tmp/vivid-server-cloudimg-arm64-vmlinuz-generic"
+        cd /tmp
+        if [ ! -f $VIVID_IMAGE ]; then
+            wget $VIVID_IMG_URL
+        fi
+        if [ ! -f $VIVID_KERNEL ]; then
+            tar zxf $VIVID_IMAGE $(basename $VIVID_KERNEL)
+        fi
+        create_vivid_kernel=$(glance --os-image-api-version 1 image-create \
+                --name yardstick-vivid-kernel \
+                --is-public true --disk-format qcow2 \
+                --container-format bare \
+                --file $VIVID_KERNEL)
+
+        GLANCE_KERNEL_ID=$(echo "$create_vivid_kernel" | grep " id " | awk '{print $(NF-1)}')
+        if [ -z "$GLANCE_KERNEL_ID" ]; then
+            echo 'Failed uploading kernel to cloud'.
+            exit 1
+        fi
+
+        command_line="root=/dev/vdb1 console=tty0 console=ttyS0 console=ttyAMA0 rw"
+
+        EXTRA_PARAMS="--property kernel_id=$GLANCE_KERNEL_ID --property os_command_line=\"$command_line\""
+
+        rm -f $VIVID_KERNEL $VIVID_IMAGE
+        cd $YARDSTICK_REPO_DIR
+    fi
+
+    # VPP requires guest memory to be backed by large pages
+    if [[ "$DEPLOY_SCENARIO" == *"-fdio-"* ]]; then
+        EXTRA_PARAMS=$EXTRA_PARAMS" --property hw_mem_page_size=large"
+    fi
+
+    output=$(eval glance --os-image-api-version 1 image-create \
+        --name yardstick-trusty-server \
+        --is-public true --disk-format $DISK_FORMAT \
+        --container-format bare \
+        $EXTRA_PARAMS \
+        --file $QCOW_IMAGE)
+
+    echo "$output"
+
+    GLANCE_IMAGE_ID=$(echo "$output" | grep " id " | awk '{print $(NF-1)}')
+
+    if [ -z "$GLANCE_IMAGE_ID" ]; then
+        echo 'Failed uploading image to cloud'.
+        exit 1
+    fi
+
+    sudo rm -f $QCOW_IMAGE
+
+    echo "Glance image id: $GLANCE_IMAGE_ID"
+}
+
+load_cirros_image()
+{
+    echo
+    echo "========== Loading cirros cloud image =========="
+
+    local image_file=/home/opnfv/images/cirros-0.3.3-x86_64-disk.img
+
+    EXTRA_PARAMS=""
+    # VPP requires guest memory to be backed by large pages
+    if [[ "$DEPLOY_SCENARIO" == *"-fdio-"* ]]; then
+        EXTRA_PARAMS=$EXTRA_PARAMS" --property hw_mem_page_size=large"
+    fi
+
+    output=$(glance image-create \
+        --name  cirros-0.3.3 \
+        --disk-format $DISK_FORMAT \
+        --container-format bare \
+        $EXTRA_PARAMS \
+        --file $image_file)
+    echo "$output"
+
+    CIRROS_IMAGE_ID=$(echo "$output" | grep " id " | awk '{print $(NF-1)}')
+    if [ -z "$CIRROS_IMAGE_ID" ]; then
+        echo 'Failed uploading cirros image to cloud'.
+        exit 1
+    fi
+
+    echo "Cirros image id: $CIRROS_IMAGE_ID"
+}
+
+load_ubuntu_image()
+{
+    echo
+    echo "========== Loading ubuntu cloud image =========="
+
+    local ubuntu_image_file=/home/opnfv/images/trusty-server-cloudimg-amd64-disk1.img
+
+    EXTRA_PARAMS=""
+    # VPP requires guest memory to be backed by large pages
+    if [[ "$DEPLOY_SCENARIO" == *"-fdio-"* ]]; then
+        EXTRA_PARAMS=$EXTRA_PARAMS" --property hw_mem_page_size=large"
+    fi
+
+    output=$(glance image-create \
+        --name Ubuntu-14.04 \
+        --disk-format qcow2 \
+        --container-format bare \
+        $EXTRA_PARAMS \
+        --file $ubuntu_image_file)
+    echo "$output"
+
+    UBUNTU_IMAGE_ID=$(echo "$output" | grep " id " | awk '{print $(NF-1)}')
+
+    if [ -z "$UBUNTU_IMAGE_ID" ]; then
+        echo 'Failed uploading UBUNTU image to cloud'.
+        exit 1
+    fi
+
+    echo "Ubuntu image id: $UBUNTU_IMAGE_ID"
+}
+
+create_nova_flavor()
+{
+    if ! nova flavor-list | grep -q yardstick-flavor; then
+        echo
+        echo "========== Create nova flavor =========="
+        # Create the nova flavor used by some sample test cases
+        nova flavor-create yardstick-flavor 100 512 3 1
+        # DPDK-enabled OVS requires guest memory to be backed by large pages
+        if [[ "$DEPLOY_SCENARIO" == *"-ovs-"* ]]; then
+            nova flavor-key yardstick-flavor set hw:mem_page_size=large
+        fi
+        # VPP requires guest memory to be backed by large pages
+        if [[ "$DEPLOY_SCENARIO" == *"-fdio-"* ]]; then
+            nova flavor-key yardstick-flavor set hw:mem_page_size=large
+        fi
+    fi
+}
+
+main()
+{
+    QCOW_IMAGE="/tmp/workspace/yardstick/yardstick-trusty-server.img"
+
+    if [ "$DEPLOY_SCENARIO" == "os-nosdn-lxd-ha" -o "$DEPLOY_SCENARIO" == "os-nosdn-lxd-noha" ]; then
+        DISK_FORMAT="raw"
+    else
+        DISK_FORMAT="qcow2"
+    fi
+
+    build_yardstick_image
+    load_yardstick_image
+    if [ $YARD_IMG_ARCH = "arm64" ]; then
+        sed -i 's/image: cirros-0.3.3/image: TestVM/g' tests/opnfv/test_cases/opnfv_yardstick_tc002.yaml \
+        samples/ping.yaml
+        #We have overlapping IP with the real network
+        for filename in tests/opnfv/test_cases/*; do
+            sed -i "s/cidr: '10.0.1.0\/24'/cidr: '10.3.1.0\/24'/g" $filename
+        done
+    else
+        load_cirros_image
+        load_ubuntu_image
+    fi
+    create_nova_flavor
+}
+
+main
index 77a560c..2b7ec9d 100755 (executable)
@@ -44,13 +44,7 @@ DISPATCHER_TYPE=file
 DISPATCHER_FILE_NAME="/tmp/yardstick.out"
 DISPATCHER_HTTP_TARGET="http://testresults.opnfv.org/test/api/v1/results"
 DISPATCHER_INFLUXDB_TARGET=
-UCA_HOST="cloud-images.ubuntu.com"
-if [ $YARD_IMG_ARCH = "arm64" ]; then
-    export VIVID_IMG_URL="http://${UCA_HOST}/vivid/current/vivid-server-cloudimg-arm64.tar.gz"
-    if ! grep -q "Defaults env_keep += \"VIVID_IMG_URL\"" "/etc/sudoers"; then
-        sudo echo "Defaults env_keep += \"VIVID_IMG_URL\"" >> /etc/sudoers
-    fi
-fi
+
 while getopts "r:i:h" OPTION; do
     case $OPTION in
         h)
@@ -77,24 +71,6 @@ done
 shift $[OPTIND - 1]
 TEST_SUITES=$@
 
-cleanup()
-{
-    echo
-    echo "========== Cleanup =========="
-
-    if ! glance image-list; then
-        return
-    fi
-
-    for image in $(glance image-list | grep -e cirros-0.3.3 -e yardstick-trusty-server -e Ubuntu-14.04 \
-        -e yardstick-vivid-kernel | awk '{print $2}'); do
-        echo "Deleting image $image..."
-        glance image-delete $image || true
-    done
-
-    nova flavor-delete yardstick-flavor &> /dev/null || true
-}
-
 exitcode=""
 
 error_exit()
@@ -158,162 +134,6 @@ remove_storperf()
     fi
 }
 
-build_yardstick_image()
-{
-    echo
-    echo "========== Build yardstick cloud image =========="
-
-    local cmd="sudo $(which yardstick-img-modify) $(pwd)/tools/ubuntu-server-cloudimg-modify.sh"
-
-    # Build the image. Retry once if the build fails.
-    $cmd || $cmd
-
-    if [ ! -f $QCOW_IMAGE ]; then
-        echo "Failed building QCOW image"
-        exit 1
-    fi
-}
-
-create_nova_flavor()
-{
-    if ! nova flavor-list | grep -q yardstick-flavor; then
-        echo
-        echo "========== Create nova flavor =========="
-        # Create the nova flavor used by some sample test cases
-        nova flavor-create yardstick-flavor 100 512 3 1
-        # DPDK-enabled OVS requires guest memory to be backed by large pages
-        if [[ "$DEPLOY_SCENARIO" == *"-ovs-"* ]]; then
-            nova flavor-key yardstick-flavor set hw:mem_page_size=large
-        fi
-        # VPP requires guest memory to be backed by large pages
-        if [[ "$DEPLOY_SCENARIO" == *"-fdio-"* ]]; then
-            nova flavor-key yardstick-flavor set hw:mem_page_size=large
-        fi
-    fi
-}
-
-load_cirros_image()
-{
-    echo
-    echo "========== Loading cirros cloud image =========="
-
-    local image_file=/home/opnfv/images/cirros-0.3.3-x86_64-disk.img
-
-    EXTRA_PARAMS=""
-    # VPP requires guest memory to be backed by large pages
-    if [[ "$DEPLOY_SCENARIO" == *"-fdio-"* ]]; then
-        EXTRA_PARAMS=$EXTRA_PARAMS" --property hw_mem_page_size=large"
-    fi
-
-    output=$(glance image-create \
-        --name  cirros-0.3.3 \
-        --disk-format $DISK_FORMAT \
-        --container-format bare \
-        $EXTRA_PARAMS \
-        --file $image_file)
-    echo "$output"
-
-    CIRROS_IMAGE_ID=$(echo "$output" | grep " id " | awk '{print $(NF-1)}')
-    if [ -z "$CIRROS_IMAGE_ID" ]; then
-        echo 'Failed uploading cirros image to cloud'.
-        exit 1
-    fi
-
-    echo "Cirros image id: $CIRROS_IMAGE_ID"
-}
-
-load_ubuntu_image()
-{
-    echo
-    echo "========== Loading ubuntu cloud image =========="
-
-    local ubuntu_image_file=/home/opnfv/images/trusty-server-cloudimg-amd64-disk1.img
-
-    EXTRA_PARAMS=""
-    # VPP requires guest memory to be backed by large pages
-    if [[ "$DEPLOY_SCENARIO" == *"-fdio-"* ]]; then
-        EXTRA_PARAMS=$EXTRA_PARAMS" --property hw_mem_page_size=large"
-    fi
-
-    output=$(glance image-create \
-        --name Ubuntu-14.04 \
-        --disk-format qcow2 \
-        --container-format bare \
-        $EXTRA_PARAMS \
-        --file $ubuntu_image_file)
-    echo "$output"
-
-    UBUNTU_IMAGE_ID=$(echo "$output" | grep " id " | awk '{print $(NF-1)}')
-
-    if [ -z "$UBUNTU_IMAGE_ID" ]; then
-        echo 'Failed uploading UBUNTU image to cloud'.
-        exit 1
-    fi
-
-    echo "Ubuntu image id: $UBUNTU_IMAGE_ID"
-}
-
-load_yardstick_image()
-{
-    echo
-    echo "========== Loading yardstick cloud image =========="
-    EXTRA_PARAMS=""
-    if [ $YARD_IMG_ARCH = "arm64" ]; then
-        VIVID_IMAGE="/tmp/vivid-server-cloudimg-arm64.tar.gz"
-        VIVID_KERNEL="/tmp/vivid-server-cloudimg-arm64-vmlinuz-generic"
-        cd /tmp
-        if [ ! -f $VIVID_IMAGE ]; then
-            wget $VIVID_IMG_URL
-        fi
-        if [ ! -f $VIVID_KERNEL ]; then
-            tar zxf $VIVID_IMAGE $(basename $VIVID_KERNEL)
-        fi
-        create_vivid_kernel=$(glance --os-image-api-version 1 image-create \
-                --name yardstick-vivid-kernel \
-                --is-public true --disk-format qcow2 \
-                --container-format bare \
-                --file $VIVID_KERNEL)
-
-        GLANCE_KERNEL_ID=$(echo "$create_vivid_kernel" | grep " id " | awk '{print $(NF-1)}')
-        if [ -z "$GLANCE_KERNEL_ID" ]; then
-            echo 'Failed uploading kernel to cloud'.
-            exit 1
-        fi
-
-        command_line="root=/dev/vdb1 console=tty0 console=ttyS0 console=ttyAMA0 rw"
-
-        EXTRA_PARAMS="--property kernel_id=$GLANCE_KERNEL_ID --property os_command_line=\"$command_line\""
-
-        rm -f $VIVID_KERNEL $VIVID_IMAGE
-        cd $YARDSTICK_REPO_DIR
-    fi
-
-    # VPP requires guest memory to be backed by large pages
-    if [[ "$DEPLOY_SCENARIO" == *"-fdio-"* ]]; then
-        EXTRA_PARAMS=$EXTRA_PARAMS" --property hw_mem_page_size=large"
-    fi
-
-    output=$(eval glance --os-image-api-version 1 image-create \
-        --name yardstick-trusty-server \
-        --is-public true --disk-format $DISK_FORMAT \
-        --container-format bare \
-        $EXTRA_PARAMS \
-        --file $QCOW_IMAGE)
-
-    echo "$output"
-
-    GLANCE_IMAGE_ID=$(echo "$output" | grep " id " | awk '{print $(NF-1)}')
-
-    if [ -z "$GLANCE_IMAGE_ID" ]; then
-        echo 'Failed uploading image to cloud'.
-        exit 1
-    fi
-
-    sudo rm -f $QCOW_IMAGE
-
-    echo "Glance image id: $GLANCE_IMAGE_ID"
-}
-
 report(){
 
     echo
@@ -498,32 +318,13 @@ main()
     # install yardstick
     install_yardstick
 
+    source $YARDSTICK_REPO_DIR/tests/ci/clean_images.sh
+
     cleanup
 
     trap "error_exit" EXIT SIGTERM
 
-    QCOW_IMAGE="/tmp/workspace/yardstick/yardstick-trusty-server.img"
-
-    if [ "$DEPLOY_SCENARIO" == "os-nosdn-lxd-ha" -o "$DEPLOY_SCENARIO" == "os-nosdn-lxd-noha" ]; then
-        DISK_FORMAT="raw"
-    else
-        DISK_FORMAT="qcow2"
-    fi
-
-    build_yardstick_image
-    load_yardstick_image
-    if [ $YARD_IMG_ARCH = "arm64" ]; then
-        sed -i 's/image: cirros-0.3.3/image: TestVM/g' tests/opnfv/test_cases/opnfv_yardstick_tc002.yaml \
-        samples/ping.yaml
-        #We have overlapping IP with the real network
-        for filename in tests/opnfv/test_cases/*; do
-            sed -i "s/cidr: '10.0.1.0\/24'/cidr: '10.3.1.0\/24'/g" $filename
-        done
-    else
-        load_cirros_image
-        load_ubuntu_image
-    fi
-    create_nova_flavor
+    source $YARDSTICK_REPO_DIR/tests/ci/load_images.sh
     install_storperf
     run_test
     remove_storperf