use tox instead of functest for doctor CI jobs 03/60403/3
authordongwenjuan <dong.wenjuan@zte.com.cn>
Tue, 31 Jul 2018 02:33:15 +0000 (10:33 +0800)
committerdongwenjuan <dong.wenjuan@zte.com.cn>
Tue, 31 Jul 2018 03:04:09 +0000 (11:04 +0800)
Change-Id: Ifbde5ebd12a7e7a040a0a3b2a3eeed532a11da73
Signed-off-by: dongwenjuan <dong.wenjuan@zte.com.cn>
jjb/doctor/doctor-env-presetup.sh [new file with mode: 0755]
jjb/doctor/doctor.yaml

diff --git a/jjb/doctor/doctor-env-presetup.sh b/jjb/doctor/doctor-env-presetup.sh
new file mode 100755 (executable)
index 0000000..b80b711
--- /dev/null
@@ -0,0 +1,45 @@
+#!/usr/bin/env bash
+set -o errexit
+set -o pipefail
+
+# Fetch INSTALLER_IP for APEX deployments
+if [[ ${INSTALLER_TYPE} == 'apex' ]]; then
+
+    echo "Gathering IP information for Apex installer VM"
+    ssh_options="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
+    if sudo virsh list | grep undercloud; then
+        echo "Installer VM detected"
+        undercloud_mac=$(sudo virsh domiflist undercloud | grep default | \
+                  grep -Eo "[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+")
+        export INSTALLER_IP=$(/usr/sbin/arp -e | grep ${undercloud_mac} | awk {'print $1'})
+        echo "Installer ip is ${INSTALLER_IP}"
+    else
+        echo "No available installer VM exists and no credentials provided...exiting"
+        exit 1
+    fi
+
+elif [[ ${INSTALLER_TYPE} == 'daisy' ]]; then
+    echo "Gathering IP information for Daisy installer VM"
+    if sudo virsh list | grep daisy; then
+        echo "Installer VM detected"
+
+        bridge_name=$(sudo virsh domiflist daisy | grep vnet | awk '{print $3}')
+        echo "Bridge is $bridge_name"
+
+        installer_mac=$(sudo virsh domiflist daisy | grep vnet | \
+                      grep -Eo "[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+")
+        export INSTALLER_IP=$(/usr/sbin/arp -e -i $bridge_name | grep ${installer_mac} | head -n 1 | awk {'print $1'})
+
+        echo "Installer ip is ${INSTALLER_IP}"
+    else
+        echo "No available installer VM exists...exiting"
+        exit 1
+    fi
+
+elif [[ ${INSTALLER_TYPE} == 'fuel' ]]; then
+    if [[ ! "${BRANCH}" =~ "danube" ]]; then
+        echo "Map mcp ssh_key"
+        export sshkey_vol="-v ${SSH_KEY:-/var/lib/opnfv/mcp.rsa}:/root/.ssh/id_rsa"
+    fi
+fi
+
index 0d7b781..566625e 100644 (file)
@@ -8,23 +8,16 @@
       - master:
           branch: '{stream}'
           gs-pathname: ''
-          docker-tag: 'latest'
           disabled: false
       - fraser: &fraser
           branch: 'stable/{stream}'
           gs-pathname: '/{stream}'
-          docker-tag: 'stable'
           disabled: false
 
-    # feature projects' tests are not triggered by functest
-    # doctor verify Pods need to deploy with these scenario
     installer:
-      - 'apex':
-          scenario: 'os-nosdn-kvm-ha'
-      - 'fuel':
-          scenario: 'os-nosdn-ovs-ha'
-      - 'daisy':
-          scenario: 'os-nosdn-ovs_dpdk-noha'
+      - 'apex'
+      - 'fuel'
+      - 'daisy'
 
     arch:
       - 'x86_64'
@@ -43,8 +36,6 @@
       # these would beenabled again once the PoDs are ready
       - installer: 'fuel'
         arch: 'x86_64'
-      - installer: 'daisy'
-        arch: 'x86_64'
 
     jobs:
       - 'doctor-verify-{inspector}-{stream}'
           branch: '{branch}'
       - '{installer}-defaults'
       - 'doctor-slave-parameter'
-      - 'doctor-parameter':
-          docker-tag: '{docker-tag}'
-          scenario: '{scenario}'
-      - 'doctor-functest-parameter':
-          gs-pathname: '{gs-pathname}'
-          inspector: '{inspector}'
     scm:
       - git-scm-gerrit
     builders:
-      - 'doctor-verify-installer-inspector-builders-macro'
+      - doctor-verify-installer-inspector-builders-macro:
+          installer: '{installer}'
+          inspector: '{inspector}'
     publishers:
       - 'doctor-verify-publishers-macro'
 
 # -------------------------------
 # parameter macros
 # -------------------------------
-- parameter:
-    name: 'doctor-parameter'
-    parameters:
-      - string:
-          name: OS_CREDS
-          default: /home/jenkins/openstack.creds
-          description: 'OpenStack credentials'
-      - string:
-          name: DOCKER_TAG
-          default: '{docker-tag}'
-          description: 'Tag to pull docker image'
-      - string:
-          name: CLEAN_DOCKER_IMAGES
-          default: 'false'
-          description: 'Remove downloaded docker images (opnfv/functest:*)'
-      - string:
-          name: DEPLOY_SCENARIO
-          default: '{scenario}'
-          description: 'Scenario to deploy and test'
 
-- parameter:
-    name: 'doctor-functest-parameter'
-    parameters:
-      # functest-suite-parameter
-      - string:
-          name: FUNCTEST_MODE
-          default: 'testcase'
-      - string:
-          name: FUNCTEST_SUITE_NAME
-          default: 'doctor-notification'
-      - string:
-          name: TESTCASE_OPTIONS
-          # yamllint disable rule:line-length
-          default: '-e INSPECTOR_TYPE={inspector} -v $WORKSPACE:/home/opnfv/repos/doctor'
-          # yamllint enable rule:line-length
-          description: 'Addtional parameters specific to test case(s)'
-      # functest-parameter
-      - string:
-          name: GS_PATHNAME
-          default: '{gs-pathname}'
-          # yamllint disable rule:line-length
-          description: "Version directory where the opnfv documents will be stored in gs repository"
-          # yamllint enable rule:line-length
-      - string:
-          name: FUNCTEST_REPO_DIR
-          default: "/home/opnfv/repos/functest"
-          description: "Directory where the Functest repository is cloned"
-      - string:
-          name: PUSH_RESULTS_TO_DB
-          default: "true"
-          description: "Push the results of all the tests to the resultDB"
-      - string:
-          name: CI_DEBUG
-          default: 'true'
-          description: "Show debug output information"
 # -------------------------------
 # builder macros
 # -------------------------------
     name: 'doctor-verify-installer-inspector-builders-macro'
     builders:
       - 'clean-workspace-log'
-      # yamllint disable rule:line-length
       - shell: |
-          # NOTE: Create symbolic link, so that we can archive file outside
-          #       of $WORKSPACE .
-          # NOTE: We are printing all logs under 'tests/' during test run,
-          #       so this symbolic link should not be in 'tests/'. Otherwise,
-          #       we'll have the same log twice in jenkins console log.
-          ln -sfn $HOME/opnfv/functest/results/{stream} functest_results
-          # NOTE: Get functest script in $WORKSPACE. This functest script is
-          #       needed to perform VM image download in set-functest-env.sh
-          #       from E release cycle.
-          mkdir -p functest/ci
-          wget https://git.opnfv.org/functest/plain/functest/ci/download_images.sh -O functest/ci/download_images.sh
-      - 'functest-suite-builder'
-      - shell: |
-          functest_log="$HOME/opnfv/functest/results/{stream}/$FUNCTEST_SUITE_NAME.log"
-          # NOTE: checking the test result, as the previous job could return
-          #       0 regardless the result of doctor test scenario.
-          grep -e 'doctor test successfully' $functest_log || exit 1
-      # yamllint enable rule:line-length
+          export INSTALLER_TYPE={installer}
+          export INSPECTOR_TYPE={inspector}
+          !include-raw:
+              - ./doctor-env-presetup.sh
+              - ../../utils/fetch_os_creds.sh
+          source $HOME/opnfv-openrc.sh
+          source $HOME/os_cacert
+          tox -e py35
 
 # -------------------------------
 # publisher macros
     publishers:
       - archive:
           artifacts: 'doctor_tests/*.log'
-      - archive:
-          artifacts: 'functest_results/$FUNCTEST_SUITE_NAME.log'
       - email-jenkins-admins-on-failure