diff options
Diffstat (limited to 'jjb/dovetail')
-rw-r--r-- | jjb/dovetail/dovetail-ci-jobs.yaml | 84 | ||||
-rwxr-xr-x | jjb/dovetail/dovetail-run.sh | 57 |
2 files changed, 130 insertions, 11 deletions
diff --git a/jjb/dovetail/dovetail-ci-jobs.yaml b/jjb/dovetail/dovetail-ci-jobs.yaml index a95617ae4..8d47616d8 100644 --- a/jjb/dovetail/dovetail-ci-jobs.yaml +++ b/jjb/dovetail/dovetail-ci-jobs.yaml @@ -178,8 +178,13 @@ - 'default' - 'proposed_tests' + testarea: + - 'mandatory' + - 'optional' + jobs: - 'dovetail-{SUT}-{pod}-{testsuite}-{stream}' + - 'dovetail-{SUT}-{pod}-{testsuite}-{testarea}-{stream}' ################################ # job templates @@ -231,6 +236,85 @@ default: '{testsuite}' description: "dovetail testsuite to run" - string: + name: TESTAREA + default: 'all' + description: "dovetail testarea to run" + - string: + name: DOVETAIL_REPO_DIR + default: "/home/opnfv/dovetail" + description: "Directory where the dovetail repository is cloned" + - string: + name: SUT_BRANCH + default: '{branch}' + description: "SUT branch" + + scm: + - git-scm + + builders: + - description-setter: + description: "POD: $NODE_NAME" + - 'dovetail-cleanup' + - 'dovetail-run' + + publishers: + - archive: + artifacts: 'results/**/*' + allow-empty: true + fingerprint: true + - email-jenkins-admins-on-failure + +- job-template: + name: 'dovetail-{SUT}-{pod}-{testsuite}-{testarea}-{stream}' + + disabled: false + + concurrent: true + + properties: + - logrotate-default + - throttle: + enabled: true + max-per-node: 1 + option: 'project' + + wrappers: + - build-name: + name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' + - timeout: + timeout: 300 + abort: true + - fix-workspace-permissions + + triggers: + - '{auto-trigger-name}' + + parameters: + - project-parameter: + project: '{project}' + branch: '{dovetail-branch}' + - '{SUT}-defaults' + - '{slave-label}-defaults' + - string: + name: DEPLOY_SCENARIO + default: 'os-nosdn-nofeature-ha' + - string: + name: DOCKER_TAG + default: '{docker-tag}' + description: 'Tag to pull dovetail docker image' + - string: + name: CI_DEBUG + default: 'true' + description: "Show debug output information" + - string: + name: TESTSUITE + default: '{testsuite}' + description: "dovetail testsuite to run" + - string: + name: TESTAREA + default: '{testarea}' + description: "dovetail testarea to run" + - string: name: DOVETAIL_REPO_DIR default: "/home/opnfv/dovetail" description: "Directory where the dovetail repository is cloned" diff --git a/jjb/dovetail/dovetail-run.sh b/jjb/dovetail/dovetail-run.sh index 2a9c73c2f..739da9eac 100755 --- a/jjb/dovetail/dovetail-run.sh +++ b/jjb/dovetail/dovetail-run.sh @@ -130,8 +130,18 @@ if [[ ! "${SUT_BRANCH}" =~ "danube" && ${INSTALLER_TYPE} == 'fuel' && ${DEPLOY_T fuel_ctl_ip=$(ssh 2>/dev/null ${fuel_ctl_ssh_options} "${ssh_user}@${INSTALLER_IP}" \ "sudo salt 'cfg*' pillar.get _param:openstack_control_address --out text| \ cut -f2 -d' '") + fuel_cmp_ip=$(ssh 2>/dev/null ${fuel_ctl_ssh_options} "${ssh_user}@${INSTALLER_IP}" \ + "sudo salt 'cmp001*' pillar.get _param:openstack_control_address --out text| \ + cut -f2 -d' '") + fuel_dbs_ip=$(ssh 2>/dev/null ${fuel_ctl_ssh_options} "${ssh_user}@${INSTALLER_IP}" \ + "sudo salt 'dbs01*' pillar.get _param:openstack_database_node01_address --out text| \ + cut -f2 -d' '") + fuel_msg_ip=$(ssh 2>/dev/null ${fuel_ctl_ssh_options} "${ssh_user}@${INSTALLER_IP}" \ + "sudo salt 'msg01*' pillar.get _param:openstack_message_queue_node01_address --out text| \ + cut -f2 -d' '") ipmi_index=$(ssh 2>/dev/null ${fuel_ctl_ssh_options} "${ssh_user}@${INSTALLER_IP}" \ "sudo salt 'ctl*' network.ip_addrs cidr=${fuel_ctl_ip} --out text | grep ${fuel_ctl_ip} | cut -c 5") + organization="$(cut -d'-' -f1 <<< "${NODE_NAME}")" pod_name="$(cut -d'-' -f2 <<< "${NODE_NAME}")" pdf_file=${pharos_repo}/labs/${organization}/${pod_name}.yaml @@ -148,7 +158,9 @@ nodes: role: Jumpserver, user: ${ssh_user}} - {ip: ${fuel_ctl_ip}, name: node1, key_filename: /home/opnfv/userconfig/pre_config/id_rsa, role: controller, user: ${ssh_user}, ipmi_ip: ${ipmiIp}, ipmi_user: ${ipmiUser}, ipmi_password: ${ipmiPass}} - +- {ip: ${fuel_msg_ip}, name: msg01, key_filename: /home/opnfv/userconfig/pre_config/id_rsa, role: controller, user: ${ssh_user}} +- {ip: ${fuel_cmp_ip}, name: cmp01, key_filename: /home/opnfv/userconfig/pre_config/id_rsa, role: controller, user: ${ssh_user}} +- {ip: ${fuel_dbs_ip}, name: dbs01, key_filename: /home/opnfv/userconfig/pre_config/id_rsa, role: controller, user: ${ssh_user}} EOF fi @@ -193,15 +205,21 @@ if [ -f ${DOVETAIL_CONFIG}/pod.yaml ]; then sudo chmod 666 ${DOVETAIL_CONFIG}/pod.yaml echo "Adapt process info for $INSTALLER_TYPE ..." if [ "$INSTALLER_TYPE" == "apex" ]; then - attack_process='rabbitmq_server' - else - attack_process='rabbitmq' - fi - cat << EOF >> ${DOVETAIL_CONFIG}/pod.yaml + cat << EOF >> ${DOVETAIL_CONFIG}/pod.yaml process_info: -- {testcase_name: dovetail.ha.rabbitmq, attack_process: ${attack_process}} - +- {testcase_name: yardstick.ha.rabbitmq, attack_process: rabbitmq_server} +- {testcase_name: yardstick.ha.cinder_api, attack_process: cinder_wsgi} EOF + elif [ "$INSTALLER_TYPE" == "fuel" ]; then + cat << EOF >> ${DOVETAIL_CONFIG}/pod.yaml +process_info: +- {testcase_name: yardstick.ha.cinder_api, attack_process: cinder-wsgi} +- {testcase_name: yardstick.ha.rabbitmq, attack_process: rabbitmq_server, attack_host: msg01} +- {testcase_name: yardstick.ha.neutron_l3_agent, attack_process: neutron-l3-agent, attack_host: cmp01} +- {testcase_name: yardstick.ha.database, attack_process: mysqld, attack_host: dbs01} +EOF + fi + echo "file ${DOVETAIL_CONFIG}/pod.yaml:" cat ${DOVETAIL_CONFIG}/pod.yaml else @@ -238,7 +256,7 @@ fi ubuntu_image=${image_path}/ubuntu-16.04-server-cloudimg-amd64-disk1.img if [[ ! -f ${ubuntu_image} ]]; then echo "Download image ubuntu-16.04-server-cloudimg-amd64-disk1.img ..." - wget -q -nc http://artifacts.opnfv.org/sdnvpn/ubuntu-16.04-server-cloudimg-amd64-disk1.img -P ${image_path} + wget -q -nc https://artifacts.opnfv.org/sdnvpn/ubuntu-16.04-server-cloudimg-amd64-disk1.img -P ${image_path} fi sudo cp ${ubuntu_image} ${DOVETAIL_IMAGES} @@ -345,11 +363,28 @@ else testsuite="--testsuite ${TESTSUITE}" fi -run_cmd="dovetail run ${testsuite} -d" +if [[ ${TESTAREA} == 'mandatory' ]]; then + testarea='--mandatory' +elif [[ ${TESTAREA} == 'optional' ]]; then + testarea="--optional" +elif [[ ${TESTAREA} == 'all' ]]; then + testarea="" +else + testarea="--testarea ${TESTAREA}" +fi + +run_cmd="dovetail run ${testsuite} ${testarea} --deploy-scenario ${DEPLOY_SCENARIO} -d -r" echo "Container exec command: ${run_cmd}" docker exec $container_id ${run_cmd} sudo cp -r ${DOVETAIL_HOME}/results ./ +result_package=$(find ${DOVETAIL_HOME} -name 'logs_*') +echo "Results package is ${result_package}" +for item in ${result_package}; +do + sudo mv ${item} ./results +done + # To make sure the file owner is the current user, for the copied results files in the above line echo "Change owner of result files ..." CURRENT_USER=${SUDO_USER:-$USER} @@ -360,7 +395,7 @@ sudo chown -R ${CURRENT_USER}:${PRIMARY_GROUP} ./results #remove useless files to save disk space sudo rm -rf ./results/workspace sudo rm -f ./results/yardstick.img -sudo rm -f ./results/tmp* +sudo rm -f ./results/bottlenecks/tmp* echo "Dovetail: done!" |