- job-template: name: 'gate-dg-hooks-dsvm' node: '{node}' wrappers: - build-timeout: timeout: 65 - timestamps builders: - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true # place calls for all hooks in here function pre_test_hook {{ echo "I'm totally an awesome pre_test_hook" }} export -f pre_test_hook function gate_hook {{ echo "I'm totally an awesome gate_hook" }} export -f gate_hook function post_test_hook {{ echo "I'm totally an awesome post_test_hook" }} export -f post_test_hook cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-full{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - print-node-uuid - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_FULL=1 export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log # tempest-dsvm-full-head-{name} - run a devstack tempest job, but use # the zuul git refs for projects-from-git (whitespace separated list) # instead of the released library version(s). # # Purpose: this allows libraries to test their proposed commits to # ensure they don't break OpenStack on their next release. It is # expected to eventually be part of all library jobs in OpenStack, as # the main tempest-dsvm jobs will be using only released versions of # libraries. - job-template: name: '{pipeline}-tempest-dsvm-full-head-{name}{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_FULL=1 export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi for prj in {projects-from-git}; do # Worst-named variable ever. This is really # LIBS_FROM_GIT (a comma-separated list). export DEVSTACK_PROJECT_FROM_GIT="$prj,$DEVSTACK_PROJECT_FROM_GIT" # Even if the branch is overridden, make sure we use # the correct branch using the OVERRIDE_*_PROJECT_BRANCH # variable. uc_prj=$(echo $prj | tr a-z- A-Z_ | tr -cd A-Z_) export OVERRIDE_${{uc_prj}}_PROJECT_BRANCH=$ZUUL_BRANCH case "$prj" in pbr) export PROJECTS="openstack-dev/$prj $PROJECTS" ;; *) export PROJECTS="openstack/$prj $PROJECTS" ;; esac done cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log # tempest-dsvm-neutron-src-{name} - run a devstack tempest job, but # use the zuul git ref for name instead of the released library # version. This uses neutron instead of nova-network. # # Purpose: this allows libraries to test their proposed commits to # ensure they don't break OpenStack on their next release. It is # expected to eventually be part of all library jobs in OpenStack, as # the main tempest-dsvm jobs will be using only released versions of # libraries. # # Expiration: once neutron replaces nova-network as the default, this # can be removed. - job-template: name: '{pipeline}-tempest-dsvm-neutron-src-{name}{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe REPOSITORY="openstack/{name}" if [ "{name}" = "pbr" ]; then REPOSITORY="openstack-dev/pbr" fi export PROJECTS="$REPOSITORY $PROJECTS" export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_FULL=1 export DEVSTACK_GATE_NEUTRON=1 export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi export DEVSTACK_PROJECT_FROM_GIT={name} # Even if the branch is overridden, make sure we use # the correct branch using the OVERRIDE_*_PROJECT_BRANCH # variable. uc_project=`echo $DEVSTACK_PROJECT_FROM_GIT | tr [:lower:] [:upper:] | tr '-' '_' | sed 's/[^A-Z_]//'` export "OVERRIDE_"$uc_project"_PROJECT_BRANCH"=$ZUUL_BRANCH cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-neutron-src-{name}{job-suffix}-plugin' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PROJECTS="openstack/{name} $PROJECTS" export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_FULL=1 export DEVSTACK_GATE_NEUTRON=1 export DEVSTACK_LOCAL_CONFIG="enable_plugin {project-repo} git://git.openstack.org/openstack/{project-repo}" export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi export DEVSTACK_PROJECT_FROM_GIT={name} cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-full-test-accounts{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_FULL=1 export DEVSTACK_LOCAL_CONFIG="TEMPEST_USE_TEST_ACCOUNTS=True" export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-neutron-full-test-accounts{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 190 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_NEUTRON=1 export DEVSTACK_GATE_TEMPEST_FULL=1 export DEVSTACK_LOCAL_CONFIG="TEMPEST_USE_TEST_ACCOUNTS=True" export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-neutron-full-non-admin{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 190 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_NEUTRON=1 export DEVSTACK_GATE_TEMPEST_DISABLE_TENANT_ISOLATION=1 export DEVSTACK_LOCAL_CONFIG="TEMPEST_HAS_ADMIN=False" export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_USE_TEST_ACCOUNTS=True" export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-neutron{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_NEUTRON=1 export DEVSTACK_GATE_SMOKE_SERIAL=1 export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-neutron-full{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_FULL=1 export DEVSTACK_GATE_NEUTRON=1 export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-neutron-pg-full{job-suffix}' node: '{node}' wrappers: - timeout: timeout: 180 fail: true - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_FULL=1 export DEVSTACK_GATE_POSTGRES=1 export DEVSTACK_GATE_NEUTRON=1 export DEVSTACK_GATE_CONFIGDRIVE=0 export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-nova-v20-api{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_LOCAL_CONFIG="TEMPEST_COMPUTE_TYPE=compute_legacy" # only run compute API tests export DEVSTACK_GATE_TEMPEST_REGEX="api.*compute" export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-nova-os-vif{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 130 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_FULL=1 # enable to use os-vif for Nova export PROJECTS="openstack/os-vif $PROJECTS" export DEVSTACK_LOCAL_CONFIG+=$'\n'"LIBS_FROM_GIT=os-vif" export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log # dsvm-updown builds up an devstack and shuts it down, this ensures # that things like unstack.sh and clean.sh work correctly. This should # only be run on the devstack tree. - job-template: name: '{pipeline}-devstack-dsvm-updown{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 70 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_HEAT=1 export DEVSTACK_GATE_SAHARA=1 export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi # ensure that the unstack.sh and clean.sh scripts run # without errors, so that we can function post_test_hook {{ cd /opt/stack/new/devstack ./gate/updown.sh }} export -f post_test_hook cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-nova-wsgi-full{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_FULL=1 export DEVSTACK_GATE_NEUTRON=1 export DEVSTACK_LOCAL_CONFIG="NOVA_USE_MOD_WSGI=True" export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-nova-libvirt-kvm-apr{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_FULL=1 export PROJECTS="openstack/devstack-plugin-additional-pkg-repos $PROJECTS" export DEVSTACK_LOCAL_CONFIG="enable_plugin devstack-plugin-additional-pkg-repos git://git.openstack.org/openstack/devstack-plugin-additional-pkg-repos" # We want to test the latest libvirt with kvm version with that plugin # TODO: (markus_z) rename that in the apr repo to "libvirt-kvm" # to make the chosen virtualization technology explicit. export LATEST_CODEBASES=libvirt export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-lxc-f23{job-suffix}' node: 'fedora-23' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_LOCAL_CONFIG="LIBVIRT_TYPE=lxc" export DEVSTACK_LOCAL_CONFIG+=$'\n'"NOVA_BACKEND=LVM" export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi export DEVSTACK_GATE_SETTINGS=/opt/stack/new/nova/devstack/tempest-dsvm-lxc-rc cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - builder: # NOTE(adam_g): This is a temporary macro until we can define the Ironic d-s-g job in a # standard, minimal fashion. name: devstack-virtual-ironic builders: - shell: | #!/bin/bash -xe export PROJECTS="openstack/ironic $PROJECTS" export PROJECTS="openstack/ironic-lib $PROJECTS" export PROJECTS="openstack/ironic-python-agent $PROJECTS" export PROJECTS="openstack/python-ironicclient $PROJECTS" export PROJECTS="openstack/pyghmi $PROJECTS" export PROJECTS="openstack/virtualbmc $PROJECTS" export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_POSTGRES={postgres} export DEVSTACK_GATE_IRONIC=1 export DEVSTACK_GATE_NEUTRON=1 export DEVSTACK_GATE_VIRT_DRIVER=ironic export DEVSTACK_GATE_IRONIC_DRIVER={deploy_driver} export DEVSTACK_GATE_IRONIC_EPHEMERAL={ephemeral-size} export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK={build-ramdisk} export TEMPEST_CONCURRENCY=1 export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi export DEVSTACK_PROJECT_FROM_GIT="" export IRONICCLIENT_FROM_SOURCE={client-from-source} if [ "$IRONICCLIENT_FROM_SOURCE" == "1" ]; then export DEVSTACK_PROJECT_FROM_GIT="python-ironicclient,$DEVSTACK_PROJECT_FROM_GIT" fi export IRONIC_LIB_FROM_SOURCE={ironic-lib-from-source} if [ "$IRONIC_LIB_FROM_SOURCE" == "1" ]; then export DEVSTACK_PROJECT_FROM_GIT="ironic-lib,$DEVSTACK_PROJECT_FROM_GIT" fi export PYGHMI_FROM_SOURCE={pyghmi-from-source} if [ "$PYGHMI_FROM_SOURCE" == "1" ]; then export DEVSTACK_PROJECT_FROM_GIT="pyghmi,$DEVSTACK_PROJECT_FROM_GIT" fi export VIRTUALBMC_FROM_SOURCE={virtualbmc-from-source} if [ "$VIRTUALBMC_FROM_SOURCE" == "1" ]; then export DEVSTACK_PROJECT_FROM_GIT="virtualbmc,$DEVSTACK_PROJECT_FROM_GIT" fi export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_COUNT={bm-vm-count}" if [ "{deploy-with-ipa}" == "1" ] ; then export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEPLOY_DRIVER_ISCSI_WITH_IPA=True" # Support for non-CoreOS IPA ramdisks was added in Mitaka if [ "$ZUUL_BRANCH" != "stable/kilo" -a "$ZUUL_BRANCH" != "stable/liberty" ] ; then export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE={ramdisk-type}" # Standardize VM size for each supported ramdisk case "{ramdisk-type}" in 'tinyipa') export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=384" ;; 'coreos') export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=1024" ;; # if using a ramdisk without a known good value, use the devstack # default by not exporting any value for IRONIC_VM_SPECS_RAM esac else # For kilo and liberty, we still need 1024mb or ram as # we only have the CoreOS ramdisk. export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=1024" fi fi if [ "{ipxe-enabled}" == "1" ] ; then export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_IPXE_ENABLED=True" elif [ "{ipxe-enabled}" == "0" ] ; then export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_IPXE_ENABLED=False" fi # use tempest plugin if [[ "$ZUUL_BRANCH" != "master" ]] ; then # NOTE(jroll) if this isn't a patch against master, then # fetch master to install the plugin export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS=git+git://git.openstack.org/openstack/ironic" else # on master, use the local change, so we can pick up any changes to the plugin export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS=/opt/stack/new/ironic" fi # Allow switching between full tempest and baremetal-only if [ "{gate-tempest-full}" == "1" ] ; then export DEVSTACK_GATE_TEMPEST_FULL=1 else export DEVSTACK_GATE_TEMPEST_REGEX="{tempest-regex}" fi # devstack plugin didn't exist until mitaka if [[ "$ZUUL_BRANCH" != "stable/kilo" && "$ZUUL_BRANCH" != "stable/liberty" ]] ; then export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic git://git.openstack.org/openstack/ironic" fi export IRONIC_MULTITENANT_NETWORK={multitenant-network} if [ "$IRONIC_MULTITENANT_NETWORK" == "1" ]; then export DEVSTACK_GATE_OS_TEST_TIMEOUT=2400 # networking-generic-switch requires sudo to execute ovs-vsctl commands export DEVSTACK_GATE_REMOVE_STACK_SUDO=0 export PROJECTS="openstack/networking-generic-switch $PROJECTS" export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin networking-generic-switch git://git.openstack.org/openstack/networking-generic-switch" export DEVSTACK_LOCAL_CONFIG+=$'\n'"Q_PLUGIN_EXTRA_CONF_PATH=/etc/neutron/plugins/ml2" export DEVSTACK_LOCAL_CONFIG+=$'\n'"Q_PLUGIN_EXTRA_CONF_FILES['networking-generic-switch']=ml2_conf_genericswitch.ini" export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_USE_LINK_LOCAL=True" export DEVSTACK_LOCAL_CONFIG+=$'\n'"OVS_PHYSICAL_BRIDGE=brbm" export DEVSTACK_LOCAL_CONFIG+=$'\n'"PHYSICAL_NETWORK=mynetwork" export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_PROVISION_NETWORK_NAME=ironic-provision" export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_PROVISION_SUBNET_PREFIX=10.0.5.0/24" export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_PROVISION_SUBNET_GATEWAY=10.0.5.1" export DEVSTACK_LOCAL_CONFIG+=$'\n'"Q_PLUGIN=ml2" export DEVSTACK_LOCAL_CONFIG+=$'\n'"ENABLE_TENANT_VLANS=True" export DEVSTACK_LOCAL_CONFIG+=$'\n'"Q_ML2_TENANT_NETWORK_TYPE=vlan" export DEVSTACK_LOCAL_CONFIG+=$'\n'"TENANT_VLAN_RANGE=100:150" export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_ENABLED_NETWORK_INTERFACES=flat,neutron" export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_NETWORK_INTERFACE=neutron" export DEVSTACK_GATE_TEMPEST_REGEX=baremetal_multitenancy fi if [ "{inspector-enabled}" == "1" ] ; then export PROJECTS="openstack/ironic-inspector $PROJECTS" export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic-inspector git://git.openstack.org/openstack/ironic-inspector" export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' /opt/stack/new/ironic-inspector'" export IRONIC_INSPECTOR_AUTO_DISCOVERY={inspector-auto-discovery} if [ "IRONIC_INSPECTOR_AUTO_DISCOVERY" == "1" ]; then # enable enroll hook export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_NODE_NOT_FOUND_HOOK=enroll" fi fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh - job-template: name: '{pipeline}-grenade-dsvm-trove{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PROJECTS="openstack-dev/grenade $PROJECTS" export PROJECTS="openstack/trove-dashboard $PROJECTS" export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_FULL=1 export DEVSTACK_GATE_GRENADE=pullup export DEVSTACK_GATE_TROVE=1 export TEMPEST_CONCURRENCY=2 export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-ironic-pxe_ssh{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - devstack-virtual-ironic: postgres: 0 build-ramdisk: 1 deploy_driver: pxe_ssh ephemeral-size: 1 deploy-with-ipa: 0 client-from-source: 0 ironic-lib-from-source: 0 pyghmi-from-source: 0 virtualbmc-from-source: 0 ipxe-enabled: 0 inspector-enabled: 0 inspector-auto-discovery: 0 tempest-regex: ironic branch-override: '{branch-override}' ramdisk-type: 'coreos' gate-tempest-full: 0 bm-vm-count: 1 multitenant-network: 0 publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-ironic-pxe_ipa-tinyipa-src{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 75 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - devstack-virtual-ironic: postgres: 0 build-ramdisk: 1 deploy_driver: pxe_ssh ephemeral-size: 1 deploy-with-ipa: 1 client-from-source: 0 ironic-lib-from-source: 0 pyghmi-from-source: 0 virtualbmc-from-source: 0 ipxe-enabled: 1 inspector-enabled: 0 inspector-auto-discovery: 0 tempest-regex: ironic branch-override: '{branch-override}' ramdisk-type: 'tinyipa' gate-tempest-full: 0 bm-vm-count: 1 multitenant-network: 0 publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-ironic-pxe_ipa-full{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 160 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - devstack-virtual-ironic: postgres: 0 build-ramdisk: 0 deploy_driver: pxe_ssh ephemeral-size: 1 deploy-with-ipa: 1 client-from-source: 0 ironic-lib-from-source: 0 pyghmi-from-source: 0 virtualbmc-from-source: 0 ipxe-enabled: 1 inspector-enabled: 0 inspector-auto-discovery: 0 tempest-regex: ironic branch-override: '{branch-override}' ramdisk-type: 'tinyipa' gate-tempest-full: 1 bm-vm-count: 7 multitenant-network: 0 publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-ironic-pxe_ipa-postgres{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - devstack-virtual-ironic: postgres: 1 build-ramdisk: 0 deploy_driver: pxe_ssh ephemeral-size: 1 deploy-with-ipa: 1 client-from-source: 0 ironic-lib-from-source: 0 pyghmi-from-source: 0 virtualbmc-from-source: 0 ipxe-enabled: 1 inspector-enabled: 0 inspector-auto-discovery: 0 tempest-regex: ironic branch-override: '{branch-override}' ramdisk-type: 'tinyipa' gate-tempest-full: 0 bm-vm-count: 1 multitenant-network: 0 publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-ironic-parallel{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PROJECTS="openstack/ironic $PROJECTS" export PROJECTS="openstack/ironic-lib $PROJECTS" export PROJECTS="openstack/ironic-python-agent $PROJECTS" export PROJECTS="openstack/python-ironicclient $PROJECTS" export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 # NOTE(deva): tempest-lib support was added in Mitaka # but this job doesn't run on stable branches, so we can keep it simple here export DEVSTACK_GATE_TEMPEST_ALL_PLUGINS=1 export DEVSTACK_GATE_IRONIC=1 export DEVSTACK_GATE_NEUTRON=1 export DEVSTACK_GATE_VIRT_DRIVER=ironic export TEMPEST_CONCURRENCY=2 export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi # Run only baremetal tests export DEVSTACK_GATE_TEMPEST_REGEX='ironic' cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-ironic-pxe_ipa{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - devstack-virtual-ironic: postgres: 0 build-ramdisk: 0 deploy_driver: pxe_ssh ephemeral-size: 1 deploy-with-ipa: 1 client-from-source: 0 ironic-lib-from-source: 0 pyghmi-from-source: 0 virtualbmc-from-source: 0 ipxe-enabled: 1 inspector-enabled: 0 inspector-auto-discovery: 0 tempest-regex: ironic branch-override: '{branch-override}' ramdisk-type: 'tinyipa' gate-tempest-full: 0 bm-vm-count: 1 multitenant-network: 0 publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-ironic-pxe_ipmitool{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - devstack-virtual-ironic: postgres: 0 build-ramdisk: 0 deploy_driver: pxe_ipmitool ephemeral-size: 1 deploy-with-ipa: 1 client-from-source: 0 ironic-lib-from-source: 0 pyghmi-from-source: 0 virtualbmc-from-source: 0 ipxe-enabled: 1 inspector-enabled: 0 inspector-auto-discovery: 0 tempest-regex: ironic branch-override: '{branch-override}' ramdisk-type: 'tinyipa' gate-tempest-full: 0 bm-vm-count: 1 multitenant-network: 0 publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-ironic-pxe_ipmitool-pyghmi-src{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - devstack-virtual-ironic: postgres: 0 build-ramdisk: 0 deploy_driver: pxe_ipmitool ephemeral-size: 1 deploy-with-ipa: 1 client-from-source: 0 ironic-lib-from-source: 0 pyghmi-from-source: 1 virtualbmc-from-source: 0 ipxe-enabled: 1 inspector-enabled: 0 inspector-auto-discovery: 0 tempest-regex: ironic branch-override: '{branch-override}' ramdisk-type: 'coreos' gate-tempest-full: 0 bm-vm-ram: 1024 bm-vm-count: 1 multitenant-network: 0 publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-ironic-pxe_ipmitool-virtualbmc-src{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - devstack-virtual-ironic: postgres: 0 build-ramdisk: 0 deploy_driver: pxe_ipmitool ephemeral-size: 1 deploy-with-ipa: 1 client-from-source: 0 ironic-lib-from-source: 0 pyghmi-from-source: 1 virtualbmc-from-source: 1 ipxe-enabled: 1 inspector-enabled: 0 inspector-auto-discovery: 0 tempest-regex: ironic branch-override: '{branch-override}' ramdisk-type: 'tinyipa' gate-tempest-full: 0 bm-vm-count: 1 multitenant-network: 0 publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-ironic-pxe_ipa-coreos-src{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - devstack-virtual-ironic: postgres: 0 build-ramdisk: 1 deploy_driver: pxe_ssh ephemeral-size: 1 deploy-with-ipa: 1 client-from-source: 0 ironic-lib-from-source: 0 pyghmi-from-source: 0 virtualbmc-from-source: 0 ipxe-enabled: 1 inspector-enabled: 0 inspector-auto-discovery: 0 tempest-regex: ironic branch-override: '{branch-override}' ramdisk-type: 'coreos' gate-tempest-full: 0 bm-vm-count: 1 multitenant-network: 0 publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-ironic-agent_ssh{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - devstack-virtual-ironic: postgres: 0 build-ramdisk: 0 deploy_driver: agent_ssh ephemeral-size: 0 deploy-with-ipa: 1 client-from-source: 0 ironic-lib-from-source: 0 pyghmi-from-source: 0 virtualbmc-from-source: 0 ipxe-enabled: 1 inspector-enabled: 0 inspector-auto-discovery: 0 tempest-regex: ironic branch-override: '{branch-override}' ramdisk-type: 'tinyipa' gate-tempest-full: 0 bm-vm-count: 1 multitenant-network: 0 publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-ironic-agent_ssh-partition-image{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - devstack-virtual-ironic: postgres: 0 build-ramdisk: 0 deploy_driver: agent_ssh ephemeral-size: 1 deploy-with-ipa: 1 client-from-source: 0 ironic-lib-from-source: 0 pyghmi-from-source: 0 virtualbmc-from-source: 0 ipxe-enabled: 1 inspector-enabled: 0 inspector-auto-discovery: 0 tempest-regex: ironic branch-override: '{branch-override}' ramdisk-type: 'tinyipa' gate-tempest-full: 0 bm-vm-count: 1 multitenant-network: 0 publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-ironic-agent_ipmitool{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - devstack-virtual-ironic: postgres: 0 build-ramdisk: 0 deploy_driver: agent_ipmitool ephemeral-size: 0 deploy-with-ipa: 0 client-from-source: 0 ironic-lib-from-source: 0 pyghmi-from-source: 0 virtualbmc-from-source: 0 ipxe-enabled: 1 inspector-enabled: 0 inspector-auto-discovery: 0 tempest-regex: ironic branch-override: '{branch-override}' ramdisk-type: 'tinyipa' gate-tempest-full: 0 bm-vm-count: 1 multitenant-network: 0 publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-ironic-agent_ssh-tinyipa-src{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - devstack-virtual-ironic: postgres: 0 build-ramdisk: 1 deploy_driver: agent_ssh ephemeral-size: 0 deploy-with-ipa: 1 client-from-source: 0 ironic-lib-from-source: 0 pyghmi-from-source: 0 virtualbmc-from-source: 0 ipxe-enabled: 1 inspector-enabled: 0 inspector-auto-discovery: 0 tempest-regex: ironic branch-override: '{branch-override}' ramdisk-type: 'tinyipa' gate-tempest-full: 0 bm-vm-count: 1 multitenant-network: 0 publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-ironic-agent_ssh-coreos-src{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - devstack-virtual-ironic: postgres: 0 build-ramdisk: 1 deploy_driver: agent_ssh ephemeral-size: 0 deploy-with-ipa: 1 client-from-source: 0 ironic-lib-from-source: 0 pyghmi-from-source: 0 virtualbmc-from-source: 0 ipxe-enabled: 1 inspector-enabled: 0 inspector-auto-discovery: 0 tempest-regex: ironic branch-override: '{branch-override}' ramdisk-type: 'coreos' gate-tempest-full: 0 bm-vm-count: 1 multitenant-network: 0 publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-python-ironicclient-src{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - devstack-virtual-ironic: postgres: 0 build-ramdisk: 0 deploy_driver: pxe_ssh ephemeral-size: 1 deploy-with-ipa: 1 client-from-source: 1 ironic-lib-from-source: 0 pyghmi-from-source: 0 virtualbmc-from-source: 0 ipxe-enabled: 1 inspector-enabled: 0 inspector-auto-discovery: 0 tempest-regex: ironic branch-override: '{branch-override}' ramdisk-type: 'tinyipa' gate-tempest-full: 0 bm-vm-count: 1 multitenant-network: 0 publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-ironic-lib-src{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - devstack-virtual-ironic: postgres: 0 build-ramdisk: 0 deploy_driver: pxe_ssh ephemeral-size: 1 deploy-with-ipa: 1 client-from-source: 0 ironic-lib-from-source: 1 pyghmi-from-source: 0 virtualbmc-from-source: 0 ipxe-enabled: 1 inspector-enabled: 0 inspector-auto-discovery: 0 tempest-regex: ironic branch-override: '{branch-override}' ramdisk-type: 'tinyipa' gate-tempest-full: 0 bm-vm-count: 1 multitenant-network: 0 publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-ironic-multitenant-network{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - devstack-virtual-ironic: postgres: 0 build-ramdisk: 0 deploy_driver: agent_ssh ephemeral-size: 0 deploy-with-ipa: 0 client-from-source: 0 ironic-lib-from-source: 0 pyghmi-from-source: 0 virtualbmc-from-source: 0 ipxe-enabled: 1 inspector-enabled: 0 inspector-auto-discovery: 0 tempest-regex: ironic branch-override: '{branch-override}' ramdisk-type: 'tinyipa' gate-tempest-full: 0 bm-vm-count: 3 multitenant-network: 1 publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-ironic-inspector{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - devstack-virtual-ironic: postgres: 0 build-ramdisk: 0 deploy_driver: agent_ssh ephemeral-size: 0 deploy-with-ipa: 1 client-from-source: 0 ironic-lib-from-source: 0 pyghmi-from-source: 0 virtualbmc-from-source: 0 ipxe-enabled: 1 inspector-enabled: 1 inspector-auto-discovery: 0 tempest-regex: InspectorBasicTest branch-override: '{branch-override}' ramdisk-type: 'tinyipa' gate-tempest-full: 0 bm-vm-count: 1 multitenant-network: 0 publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-ironic-inspector-discovery{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - devstack-virtual-ironic: postgres: 0 build-ramdisk: 0 deploy_driver: agent_ssh ephemeral-size: 0 deploy-with-ipa: 1 client-from-source: 0 ironic-lib-from-source: 0 pyghmi-from-source: 0 virtualbmc-from-source: 0 ipxe-enabled: 1 inspector-enabled: 1 inspector-auto-discovery: 1 tempest-regex: InspectorDiscoveryTest branch-override: '{branch-override}' ramdisk-type: 'tinyipa' gate-tempest-full: 0 bm-vm-count: 1 multitenant-network: 0 publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-postgres-zeromq-full{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_FULL=1 export DEVSTACK_GATE_POSTGRES=1 export DEVSTACK_GATE_MQ_DRIVER="zeromq" export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-postgres-full{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_FULL=1 export DEVSTACK_GATE_POSTGRES=1 export DEVSTACK_GATE_CONFIGDRIVE=0 export DEVSTACK_GATE_NOVA_API_METADATA_SPLIT=1 export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-neutron-identity-v3-only-full{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_FULL=1 export DEVSTACK_GATE_NEUTRON=1 export DEVSTACK_LOCAL_CONFIG="ENABLE_IDENTITY_V2=False" export DEVSTACK_LOCAL_CONFIG+=$'\n'"SERVICE_DOMAIN_NAME=service" export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-oslo-latest-full{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_FULL=1 export DEVSTACK_GATE_NEUTRON=1 export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi export PROJECTS="openstack/oslo.cache $PROJECTS" export PROJECTS="openstack/oslo.concurrency $PROJECTS" export PROJECTS="openstack/oslo.config $PROJECTS" export PROJECTS="openstack/oslo.context $PROJECTS" export PROJECTS="openstack/oslo.db $PROJECTS" export PROJECTS="openstack/oslo.i18n $PROJECTS" export PROJECTS="openstack/oslo.log $PROJECTS" export PROJECTS="openstack/oslo.messaging $PROJECTS" export PROJECTS="openstack/oslo.middleware $PROJECTS" export PROJECTS="openstack/oslo.policy $PROJECTS" export PROJECTS="openstack/oslo.privsep $PROJECTS" export PROJECTS="openstack/oslo.reports $PROJECTS" export PROJECTS="openstack/oslo.rootwrap $PROJECTS" export PROJECTS="openstack/oslo.serialization $PROJECTS" export PROJECTS="openstack/oslo.service $PROJECTS" export PROJECTS="openstack/oslo.utils $PROJECTS" export PROJECTS="openstack/oslo.versionedobjects $PROJECTS" export PROJECTS="openstack/oslo.vmware $PROJECTS" export DEVSTACK_LOCAL_CONFIG+=$'\n'"LIBS_FROM_GIT=oslo.cache" export DEVSTACK_LOCAL_CONFIG+=$",oslo.concurrency" export DEVSTACK_LOCAL_CONFIG+=$",oslo.config" export DEVSTACK_LOCAL_CONFIG+=$",oslo.context" export DEVSTACK_LOCAL_CONFIG+=$",oslo.db" export DEVSTACK_LOCAL_CONFIG+=$",oslo.i18n" export DEVSTACK_LOCAL_CONFIG+=$",oslo.log" export DEVSTACK_LOCAL_CONFIG+=$",oslo.messaging" export DEVSTACK_LOCAL_CONFIG+=$",oslo.middleware" export DEVSTACK_LOCAL_CONFIG+=$",oslo.policy" export DEVSTACK_LOCAL_CONFIG+=$",oslo.privsep" export DEVSTACK_LOCAL_CONFIG+=$",oslo.reports" export DEVSTACK_LOCAL_CONFIG+=$",oslo.rootwrap" export DEVSTACK_LOCAL_CONFIG+=$",oslo.serialization" export DEVSTACK_LOCAL_CONFIG+=$",oslo.service" export DEVSTACK_LOCAL_CONFIG+=$",oslo.utils" export DEVSTACK_LOCAL_CONFIG+=$",oslo.versionedobjects" export DEVSTACK_LOCAL_CONFIG+=$",oslo.vmware" export DEVSTACK_LOCAL_CONFIG+=$'\n'"" cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-grenade-dsvm{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PROJECTS="openstack-dev/grenade $PROJECTS" export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_GRENADE=pullup export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-{name}-src-grenade-dsvm{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PROJECTS="openstack-dev/grenade openstack/{name} $PROJECTS" export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_GRENADE=pullup export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi export DEVSTACK_PROJECT_FROM_GIT={name} # Even if the branch is overridden, make sure we use # the correct branch using the OVERRIDE_*_PROJECT_BRANCH # variable. uc_project=`echo $DEVSTACK_PROJECT_FROM_GIT | tr [:lower:] [:upper:] | tr '-' '_' | sed 's/[^A-Z_]//'` export "OVERRIDE_"$uc_project"_PROJECT_BRANCH"=$ZUUL_BRANCH cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-grenade-dsvm-forward{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PROJECTS="openstack-dev/grenade $PROJECTS" export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_GRENADE=forward export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-grenade-dsvm-neutron{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PROJECTS="openstack-dev/grenade $PROJECTS" export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_GRENADE=pullup export DEVSTACK_GATE_NEUTRON=1 export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-grenade-dsvm-neutron-forward{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PROJECTS="openstack-dev/grenade $PROJECTS" export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_GRENADE=forward export DEVSTACK_GATE_NEUTRON=1 export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-grenade-dsvm-neutron-multinode{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_NEUTRON=1 export DEVSTACK_GATE_CONFIGDRIVE=0 export DEVSTACK_GATE_GRENADE=pullup export PROJECTS="openstack-dev/grenade $PROJECTS" # Default to non DVR export DEVSTACK_GATE_NEUTRON_DVR=0 export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi export DEVSTACK_GATE_TOPOLOGY="multinode" cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-grenade-dsvm-neutron-dvr-multinode{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 125 - timestamps builders: - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_NEUTRON=1 export DEVSTACK_GATE_CONFIGDRIVE=0 export DEVSTACK_GATE_GRENADE=pullup # Test DVR upgrade on multinode export PROJECTS="openstack-dev/grenade $PROJECTS" export DEVSTACK_GATE_NEUTRON_DVR=1 export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi export DEVSTACK_GATE_TOPOLOGY="multinode" cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-grenade-dsvm-partial-ncpu{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PROJECTS="openstack-dev/grenade $PROJECTS" export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_GRENADE=partial-ncpu export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-grenade-dsvm-ironic{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PROJECTS="openstack/ironic $PROJECTS" export PROJECTS="openstack/ironic-lib $PROJECTS" export PROJECTS="openstack/ironic-python-agent $PROJECTS" export PROJECTS="openstack/python-ironicclient $PROJECTS" export PROJECTS="openstack-dev/grenade $PROJECTS" export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_GRENADE=pullup export DEVSTACK_GATE_IRONIC=1 export DEVSTACK_GATE_NEUTRON=1 export DEVSTACK_GATE_VIRT_DRIVER=ironic export TEMPEST_CONCURRENCY=1 export DEVSTACK_GATE_OS_TEST_TIMEOUT=2400 export DEVSTACK_GATE_TEMPEST_BAREMETAL_BUILD_TIMEOUT=1200 export DEVSTACK_LOCAL_CONFIG="IRONIC_VM_SPECS_RAM=384"$'\n'"IRONIC_VM_COUNT=7" export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEPLOY_DRIVER_ISCSI_WITH_IPA=True" export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa" # Make IPXE configuration consistent between Mitaka and Master export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_IPXE_ENABLED=True" export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi export GRENADE_PLUGINRC="enable_grenade_plugin ironic https://git.openstack.org/openstack/ironic" cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-grenade-dsvm-ceilometer{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PROJECTS="openstack-dev/grenade $PROJECTS" export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_GRENADE=pullup export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi export GRENADE_PLUGINRC="enable_grenade_plugin ceilometer https://git.openstack.org/openstack/ceilometer" cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-all{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_ALL=1 export DEVSTACK_GATE_NEUTRON=1 export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-stress{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_NEUTRON=1 export DEVSTACK_GATE_TEMPEST_STRESS=1 export DEVSTACK_GATE_TEMPEST_STRESS_ARGS="-d 3600 -S -s -t tempest/stress/etc/stress-tox-job.json" export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-keystone-eventlet-full{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_FULL=1 export DEVSTACK_GATE_NEUTRON=1 export DEVSTACK_LOCAL_CONFIG="KEYSTONE_DEPLOY=eventlet" export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-keystone-uwsgi-full{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_FULL=1 export DEVSTACK_GATE_NEUTRON=1 export DEVSTACK_LOCAL_CONFIG="KEYSTONE_DEPLOY=uwsgi" export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-stress-keystonev3{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_NEUTRON=1 export DEVSTACK_GATE_TEMPEST_STRESS=1 export DEVSTACK_GATE_TEMPEST_STRESS_ARGS="-d 3600 -S -s -t tempest/stress/etc/stress-tox-job.json" export DEVSTACK_LOCAL_CONFIG="TEMPEST_AUTH_VERSION=v3" export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log # "platform" test -- run on an alternative node - job-template: name: '{pipeline}-tempest-dsvm-platform-{name}{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_FULL=1 export DEVSTACK_GATE_NEUTRON={neutron} cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-multinode-full{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_CONFIGDRIVE=0 export DEVSTACK_GATE_TEMPEST_FULL=1 export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi export DEVSTACK_GATE_TOPOLOGY="multinode" cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-multinode-live-migration{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_CONFIGDRIVE=0 export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_NOTESTS=1 export BRANCH_OVERRIDE={branch-override} export DEVSTACK_GATE_TOPOLOGY="multinode" if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi function post_test_hook {{ /opt/stack/new/nova/nova/tests/live_migration/hooks/run_tests.sh }} export -f post_test_hook cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-grenade-dsvm-multinode{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PROJECTS="openstack-dev/grenade $PROJECTS" export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_GRENADE=pullup export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi export DEVSTACK_GATE_TOPOLOGY="multinode" cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-{name}-src-grenade-dsvm-multinode{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PROJECTS="openstack-dev/grenade openstack/{name} $PROJECTS" export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_GRENADE=pullup export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi export DEVSTACK_GATE_TOPOLOGY="multinode" export DEVSTACK_PROJECT_FROM_GIT={name} # Even if the branch is overridden, make sure we use # the correct branch using the OVERRIDE_*_PROJECT_BRANCH # variable. uc_project=`echo $DEVSTACK_PROJECT_FROM_GIT | tr [:lower:] [:upper:] | tr '-' '_' | sed 's/[^A-Z_]//'` export "OVERRIDE_"$uc_project"_PROJECT_BRANCH"=$ZUUL_BRANCH cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-neutron-multinode-full{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_NEUTRON=1 export DEVSTACK_GATE_CONFIGDRIVE=0 export DEVSTACK_GATE_TEMPEST_FULL=1 # Default to non DVR export DEVSTACK_GATE_NEUTRON_DVR=0 export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi export DEVSTACK_GATE_TOPOLOGY="multinode" cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-neutron-dvr-multinode-full{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_NEUTRON=1 export DEVSTACK_GATE_CONFIGDRIVE=0 export DEVSTACK_GATE_TEMPEST_FULL=1 # Test DVR works multinode export DEVSTACK_GATE_NEUTRON_DVR=1 export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi export DEVSTACK_GATE_TOPOLOGY="multinode" cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-full-devstack-plugin-ceph{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_FULL=1 export PROJECTS="{plugin-repo} $PROJECTS" export DEVSTACK_LOCAL_CONFIG="enable_plugin devstack-plugin-{plugin} git://git.openstack.org/{plugin-repo}" export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-full-ceph-plugin-src-{name}{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_FULL=1 export PROJECTS="{plugin-repo} $PROJECTS" export DEVSTACK_LOCAL_CONFIG="enable_plugin devstack-plugin-{plugin} git://git.openstack.org/{plugin-repo}" export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi export DEVSTACK_PROJECT_FROM_GIT={name} cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-full-devstack-plugin-nfs{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_FULL=1 export PROJECTS="{plugin-repo} $PROJECTS" export DEVSTACK_LOCAL_CONFIG="enable_plugin devstack-plugin-{plugin} git://git.openstack.org/{plugin-repo}" export DEVSTACK_LOCAL_CONFIG+=$'\n'"ENABLE_NFS_CINDER=True" export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-full-lio{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_FULL=1 export DEVSTACK_LOCAL_CONFIG="CINDER_ISCSI_HELPER=lioadm" export DEVSTACK_LOCAL_CONFIG+=$'\n'"CINDER_LVM_TYPE=thin" export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log # tempest-dsvm-full-lio-src-{name} - run a devstack LVM/LIO tempest job, # but use the zuul git ref for name instead of the released library # version. - job-template: name: '{pipeline}-tempest-dsvm-full-lio-src-{name}{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PROJECTS="openstack/{name} $PROJECTS" export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_FULL=1 export DEVSTACK_LOCAL_CONFIG="CINDER_ISCSI_HELPER=lioadm" export DEVSTACK_LOCAL_CONFIG+=$'\n'"CINDER_LVM_TYPE=thin" export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi export DEVSTACK_PROJECT_FROM_GIT={name} cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log # {pipeline}-tempest-dsvm-full-{plugin}-src-{srcname}{job-suffix} - run a devstack # plugin tempest job, but use the zuul git ref for srcname instead of the # released library version. - job-template: name: '{pipeline}-tempest-dsvm-full-{plugin}-src-{srcname}{job-suffix}' node: ubuntu-trusty wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_FULL=1 export PROJECTS="{plugin-repo} $PROJECTS" export DEVSTACK_LOCAL_CONFIG="enable_plugin devstack-plugin-{plugin} git://git.openstack.org/{plugin-repo}" export DEVSTACK_PROJECT_FROM_GIT={srcname} cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log # A template for any project with a devstack-plugin to run the full # tempest suite with their project/plugin enabled. - job-template: name: '{pipeline}-tempest-dsvm-full-{plugin}{job-suffix}' node: ubuntu-trusty wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_FULL=1 export PROJECTS="{plugin-repo} $PROJECTS" export DEVSTACK_LOCAL_CONFIG="enable_plugin devstack-plugin-{plugin} git://git.openstack.org/{plugin-repo}" cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log # A Template to to run a oslo.messaging devstack-plugin with oslo.messaging # code picked up from source - job-template: name: '{pipeline}-oslo.messaging-src-dsvm-full-{plugin}{ostype}{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_FULL=1 export PROJECTS="{plugin-repo} openstack/oslo.messaging $PROJECTS" export DEVSTACK_LOCAL_CONFIG="enable_plugin devstack-plugin-{plugin} git://git.openstack.org/{plugin-repo}" export DEVSTACK_LOCAL_CONFIG+=$'\n'"LIBS_FROM_GIT=oslo.messaging" cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log # A template for the misnamed drbd-devstack project. # Runs the full tempest suite. - job-template: name: '{pipeline}-tempest-dsvm-full-drbd-devstack{job-suffix}' node: ubuntu-trusty wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - contact: name: Philipp Marek email: philipp.marek@linbit.com irc: flip214 - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_FULL=1 export PROJECTS="openstack/drbd-devstack $PROJECTS" export DEVSTACK_LOCAL_CONFIG="enable_plugin drbd-devstack git://git.openstack.org/openstack/drbd-devstack enable_service drbd-devstack CINDER_ENABLED_BACKENDS=drbd:drbdmanage" cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-cinder-tempest-dsvm-glusterfs{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export PROJECTS="openstack/devstack-plugin-glusterfs $PROJECTS" export DEVSTACK_LOCAL_CONFIG="enable_plugin devstack-plugin-glusterfs git://git.openstack.org/stackforge/devstack-plugin-glusterfs" # Configure devstack-plugin-glusterfs to enable GlusterFS as a backend for Glance, Nova and Cinder. export DEVSTACK_LOCAL_CONFIG+=$'\n'"CONFIGURE_GLUSTERFS_GLANCE=True" export DEVSTACK_LOCAL_CONFIG+=$'\n'"CONFIGURE_GLUSTERFS_NOVA=True" export DEVSTACK_LOCAL_CONFIG+=$'\n'"CONFIGURE_GLUSTERFS_CINDER=True" # Below regex exclude the slow tag. r="^(?!(.*\[.*slow.*\])).*$" export DEVSTACK_GATE_TEMPEST_REGEX="$r" cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-full-bdd{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - contact: name: Ivan Kolodyazhny email: e0ne@e0ne.info irc: e0ne - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 # BDD driver doesn't support 'in-use' volume attachement so we need to skip such tests export DEVSTACK_GATE_TEMPEST_REGEX="^(?!.*(volume_in_use|test_volume_boot_pattern)).*volume" export TEMPEST_CONCURRENCY=1 export PROJECTS="openstack/devstack-plugin-bdd $PROJECTS" export DEVSTACK_LOCAL_CONFIG="enable_plugin devstack-plugin-bdd git://git.openstack.org/openstack/devstack-plugin-bdd" cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log # run the tests for all the layer4 services together. This means we know they all work. - job-template: name: '{pipeline}-tempest-dsvm-layer4{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe # # tests heat, sahara, trove in a single job. export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_HEAT=1 export DEVSTACK_GATE_NEUTRON=1 export DEVSTACK_GATE_TEMPEST_REGEX="database|data_processing|orchestration" export DEVSTACK_LOCAL_CONFIG="TEMPEST_USE_TEST_ACCOUNTS=True" DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin trove git://git.openstack.org/openstack/trove" DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin sahara git://git.openstack.org/openstack/sahara" export DEVSTACK_LOCAL_CONFIG export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-trove{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_REGEX="database" if [[ "stable/kilo" =~ $ZUUL_BRANCH ]]; then # Trove was moved out of DevStack as plugin after Kilo export DEVSTACK_GATE_TROVE=1 else export DEVSTACK_LOCAL_CONFIG="enable_plugin trove git://git.openstack.org/openstack/trove" fi export PROJECTS="openstack/trove-dashboard $PROJECTS" export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-neutron-full-ssh{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TEMPEST_FULL=1 export DEVSTACK_LOCAL_CONFIG="TEMPEST_RUN_VALIDATION=True" export DEVSTACK_GATE_NEUTRON=1 export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job-template: name: '{pipeline}-tempest-dsvm-smoke-tlsproxy{job-suffix}' node: '{node}' wrappers: - build-timeout: timeout: 180 - timestamps builders: - print-template-name: template-name: "{template-name}" - link-logs - print-node-uuid - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export DEVSTACK_GATE_TLSPROXY=1 export DEVSTACK_LOCAL_CONFIG="KEYSTONE_DEPLOY=mod_wsgi" export BRANCH_OVERRIDE={branch-override} if [ "$BRANCH_OVERRIDE" != "default" ] ; then export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE fi cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - job-template: name: 'gate-dsvm-os-loganalyze{job-suffix}' node: 'ubuntu-trusty' wrappers: - build-timeout: timeout: 125 - timestamps builders: - link-logs - net-info - devstack-checkout - shell: | #!/bin/bash -xe export PYTHONUNBUFFERED=true export DEVSTACK_GATE_TEMPEST=1 export ENABLED_SERVICES=os-loganalyze export PROJECTS="openstack-infra/os-loganalyze $PROJECTS" export DEVSTACK_LOCAL_CONFIG="enable_plugin devstack-plugin-os-loganalyze git://git.openstack.org/openstack-infra/os-loganalyze" function post_test_hook {{ # Copy the tempest output to os-loganalze's DocumentRoot sudo cp -r logs/* /var/www/logs/ # Grab normally marked up file wget --header="Accept: text/html" http://localhost:8080/tempest.txt.gz # Check display level options are available if ! grep -q "" tempest.txt.gz; then return 1 fi if ! grep -q "DEBUG |" tempest.txt.gz; then return 1 fi # Check when fetching as plain, options are missing wget http://localhost:8080/tempest.txt.gz if grep -q "" tempest.txt.gz; then return 1 fi if grep -q "DEBUG |" tempest.txt.gz; then return 1 fi }} export -f post_test_hook cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh publishers: - devstack-logs - console-log - job: name: gate-devstack-gate-unittests node: ubuntu-trusty builders: - gerrit-git-prep - install-distro-packages - revoke-sudo - tox: envlist: run-tests publishers: - console-log - job-group: name: devstack-gate-jobs jobs: - 'gate-dg-tempest-dsvm-full' - 'gate-dg-tempest-dsvm-full-reexec' - 'gate-dg-hooks-dsvm' # Jobs will get defined for master branch in the periodic pipeline. - job-group: name: devstack-periodic-master-jobs jobs: - '{pipeline}-tempest-dsvm-all{job-suffix}' - '{pipeline}-tempest-dsvm-full-test-accounts{job-suffix}' - '{pipeline}-tempest-dsvm-neutron-dvr-ovs-native{job-suffix}' - '{pipeline}-tempest-dsvm-neutron-full-non-admin{job-suffix}' - '{pipeline}-tempest-dsvm-neutron-full-test-accounts{job-suffix}' - '{pipeline}-tempest-dsvm-neutron-identity-v3-only-full{job-suffix}' - '{pipeline}-tempest-dsvm-neutron-ovs-native{job-suffix}' - '{pipeline}-tempest-dsvm-oslo-latest-full{job-suffix}' - '{pipeline}-tempest-dsvm-stress{job-suffix}' - '{pipeline}-tempest-dsvm-neutron-full-ssh{job-suffix}' # Jobs will get defined for stable branches in the periodic pipeline, and # for stable branches gate jobs. - job-group: name: devstack-stable-jobs jobs: - '{pipeline}-tempest-dsvm-full{job-suffix}' - '{pipeline}-tempest-dsvm-neutron-full{job-suffix}' - '{pipeline}-tempest-dsvm-postgres-full{job-suffix}' # Jobs will get defined for gate queue. - job-group: name: devstack-jobs jobs: - '{pipeline}-devstack-dsvm-updown{job-suffix}' - '{pipeline}-grenade-dsvm-ceilometer{job-suffix}' - '{pipeline}-grenade-dsvm-forward{job-suffix}' - '{pipeline}-grenade-dsvm-ironic{job-suffix}' - '{pipeline}-grenade-dsvm-neutron-forward{job-suffix}' - '{pipeline}-grenade-dsvm-neutron{job-suffix}' - '{pipeline}-grenade-dsvm-partial-ncpu{job-suffix}' - '{pipeline}-grenade-dsvm-sahara{job-suffix}' - '{pipeline}-grenade-dsvm-trove{job-suffix}' - '{pipeline}-grenade-dsvm{job-suffix}' - '{pipeline}-tempest-dsvm-all{job-suffix}' - '{pipeline}-tempest-dsvm-cells{job-suffix}' - '{pipeline}-tempest-dsvm-full-lio{job-suffix}' - '{pipeline}-tempest-dsvm-full-test-accounts{job-suffix}' - '{pipeline}-tempest-dsvm-full{job-suffix}' - '{pipeline}-tempest-dsvm-ironic-agent_ssh-src{job-suffix}' - '{pipeline}-tempest-dsvm-ironic-agent_ssh{job-suffix}' - '{pipeline}-tempest-dsvm-ironic-agent_ipmitool{job-suffix}' - '{pipeline}-tempest-dsvm-ironic-parallel{job-suffix}' - '{pipeline}-tempest-dsvm-ironic-pxe_ipa-src{job-suffix}' - '{pipeline}-tempest-dsvm-ironic-pxe_ipa-tinyipa{job-suffix}' - '{pipeline}-tempest-dsvm-ironic-pxe_ipa{job-suffix}' - '{pipeline}-tempest-dsvm-ironic-pxe_ipa-postgres{job-suffix}' - '{pipeline}-tempest-dsvm-ironic-pxe_ipmitool{job-suffix}' - '{pipeline}-tempest-dsvm-ironic-pxe_ipmitool-pyghmi-src{job-suffix}' - '{pipeline}-tempest-dsvm-ironic-pxe_ssh{job-suffix}' - '{pipeline}-tempest-dsvm-ironic-inspector{job-suffix}' - '{pipeline}-tempest-dsvm-ironic-inspector-discovery{job-suffix}' - '{pipeline}-tempest-dsvm-layer4{job-suffix}' - '{pipeline}-tempest-dsvm-lxc-f23{job-suffix}' - '{pipeline}-tempest-dsvm-lvm{job-suffix}' - '{pipeline}-tempest-dsvm-neutron-dvr-ovs-native{job-suffix}' - '{pipeline}-tempest-dsvm-neutron-dvr{job-suffix}' - '{pipeline}-tempest-dsvm-neutron-full-non-admin{job-suffix}' - '{pipeline}-tempest-dsvm-neutron-full-ssh{job-suffix}' - '{pipeline}-tempest-dsvm-neutron-full-test-accounts{job-suffix}' - '{pipeline}-tempest-dsvm-neutron-full{job-suffix}' - '{pipeline}-tempest-dsvm-neutron-identity-v3-only-full{job-suffix}' - '{pipeline}-tempest-dsvm-neutron-ovs-native{job-suffix}' - '{pipeline}-tempest-dsvm-neutron-pg-full{job-suffix}' - '{pipeline}-tempest-dsvm-neutron-scenario{job-suffix}' - '{pipeline}-tempest-dsvm-neutron{job-suffix}' - '{pipeline}-tempest-dsvm-nova-v20-api{job-suffix}' - '{pipeline}-tempest-dsvm-nova-wsgi-full{job-suffix}' - '{pipeline}-tempest-dsvm-oslo-latest-full{job-suffix}' - '{pipeline}-tempest-dsvm-postgres-full{job-suffix}' - '{pipeline}-tempest-dsvm-smoke-tlsproxy{job-suffix}' - '{pipeline}-tempest-dsvm-stress-keystonev3{job-suffix}' - '{pipeline}-tempest-dsvm-stress{job-suffix}' - '{pipeline}-tempest-dsvm-trove{job-suffix}'