Native DevStack jobs
Convert legacy DevStack jobs to native Zuul v3 form, plus some test-job-related docs updates. Change-Id: Ia8c08be81605da885b9eee799fc58129305dfc41
This commit is contained in:
parent
ef595fcfc4
commit
676159555f
110
.zuul.yaml
110
.zuul.yaml
@ -1,38 +1,112 @@
|
|||||||
# from zuul.d/zuul-legacy-jobs.yaml legacy-osc-dsvm-functional
|
- job:
|
||||||
|
name: osc-functional-devstack-base
|
||||||
|
parent: devstack
|
||||||
|
description: |
|
||||||
|
Base job for devstack-based functional tests
|
||||||
|
pre-run: playbooks/osc-devstack/pre
|
||||||
|
run: playbooks/osc-devstack/run
|
||||||
|
post-run: playbooks/osc-devstack/post
|
||||||
|
required-projects:
|
||||||
|
- name: openstack/swift
|
||||||
|
roles:
|
||||||
|
- zuul: openstack-infra/devstack
|
||||||
|
timeout: 9000
|
||||||
|
vars:
|
||||||
|
devstack_localrc:
|
||||||
|
SWIFT_HASH: "1234123412341234"
|
||||||
|
LIBS_FROM_GIT: 'python-openstackclient'
|
||||||
|
# NOTE(dtroyer): OSC needs to support Image v1 for a while yet so re-enable
|
||||||
|
GLANCE_V1_ENABLED: True
|
||||||
|
# NOTE(dtroyer): Functional tests need a bit more volume headroom
|
||||||
|
VOLUME_BACKING_FILE_SIZE: 20G
|
||||||
|
devstack_local_conf:
|
||||||
|
post-config:
|
||||||
|
"$CINDER_CONF":
|
||||||
|
DEFAULT:
|
||||||
|
# NOTE(dtroyer): OSC needs to support Volume v1 for a while yet so re-enable
|
||||||
|
enable_v1_api: True
|
||||||
|
devstack_services:
|
||||||
|
ceilometer-acentral: False
|
||||||
|
ceilometer-acompute: False
|
||||||
|
ceilometer-alarm-evaluator: False
|
||||||
|
ceilometer-alarm-notifier: False
|
||||||
|
ceilometer-anotification: False
|
||||||
|
ceilometer-api: False
|
||||||
|
ceilometer-collector: False
|
||||||
|
horizon: False
|
||||||
|
s-account: True
|
||||||
|
s-container: True
|
||||||
|
s-object: True
|
||||||
|
s-proxy: True
|
||||||
|
osc_environment:
|
||||||
|
PYTHONUNBUFFERED: 'true'
|
||||||
|
OS_CLOUD: 'devstack-admin'
|
||||||
|
tox_install_siblings: False
|
||||||
|
zuul_work_dir: src/git.openstack.org/openstack/python-openstackclient
|
||||||
|
|
||||||
|
# The Neutron bits are here rather than in osc-functional-devstack-base to
|
||||||
|
# simplify removing Neutron in the osc-functional-devstack-n-net job.
|
||||||
- job:
|
- job:
|
||||||
name: osc-functional-devstack
|
name: osc-functional-devstack
|
||||||
parent: legacy-dsvm-base
|
parent: osc-functional-devstack-base
|
||||||
run: playbooks/osc-functional-devstack/run
|
|
||||||
post-run: playbooks/osc-functional-devstack/post
|
|
||||||
timeout: 7800
|
timeout: 7800
|
||||||
required-projects:
|
vars:
|
||||||
- openstack-infra/devstack-gate
|
devstack_plugins:
|
||||||
- openstack/python-openstackclient
|
# NOTE(amotoki): Some neutron features are enabled by devstack plugin
|
||||||
|
neutron: https://git.openstack.org/openstack/neutron
|
||||||
|
devstack_services:
|
||||||
|
neutron-segments: True
|
||||||
|
q-metering: True
|
||||||
|
q-qos: True
|
||||||
|
tox_envlist: functional
|
||||||
|
|
||||||
- job:
|
- job:
|
||||||
name: osc-functional-devstack-n-net
|
name: osc-functional-devstack-n-net
|
||||||
parent: legacy-dsvm-base
|
parent: osc-functional-devstack-base
|
||||||
run: playbooks/osc-functional-devstack-n-net/run
|
|
||||||
post-run: playbooks/osc-functional-devstack-n-net/post
|
|
||||||
timeout: 7800
|
timeout: 7800
|
||||||
required-projects:
|
vars:
|
||||||
- openstack-infra/devstack-gate
|
devstack_localrc:
|
||||||
- openstack/python-openstackclient
|
FLAT_INTERFACE: 'br_flat'
|
||||||
|
PUBLIC_INTERFACE: 'br_pub'
|
||||||
|
devstack_services:
|
||||||
|
n-cell: True
|
||||||
|
n-net: True
|
||||||
|
neutron: False
|
||||||
|
neutron-segments: False
|
||||||
|
q-agt: False
|
||||||
|
q-dhcp: False
|
||||||
|
q-l3: False
|
||||||
|
q-meta: False
|
||||||
|
q-metering: False
|
||||||
|
q-qos: False
|
||||||
|
q-svc: False
|
||||||
|
tox_envlist: functional
|
||||||
|
|
||||||
- job:
|
- job:
|
||||||
name: osc-functional-devstack-tips
|
name: osc-functional-devstack-tips
|
||||||
parent: legacy-dsvm-base
|
parent: osc-functional-devstack
|
||||||
run: playbooks/osc-functional-devstack-tips/run
|
|
||||||
post-run: playbooks/osc-functional-devstack-tips/post
|
|
||||||
timeout: 7800
|
timeout: 7800
|
||||||
required-projects:
|
required-projects:
|
||||||
- openstack-infra/devstack-gate
|
|
||||||
- openstack/os-client-config
|
- openstack/os-client-config
|
||||||
- openstack/osc-lib
|
- openstack/osc-lib
|
||||||
- openstack/python-openstackclient
|
- openstack/python-openstackclient
|
||||||
- openstack/python-openstacksdk
|
- openstack/python-openstacksdk
|
||||||
|
vars:
|
||||||
|
devstack_localrc:
|
||||||
|
USE_PYTHON3: True
|
||||||
|
LIBS_FROM_GIT: 'python-openstackclient,python-openstacksdk,osc-lib,os-client-config'
|
||||||
|
# This is insufficient, but leaving it here as a reminder of what may
|
||||||
|
# someday be all we need to make this work
|
||||||
|
# disable_python3_package swift
|
||||||
|
DISABLED_PYTHON3_PACKAGES: 'swift'
|
||||||
|
devstack_services:
|
||||||
|
# Swift is not ready for python3 yet: At a minimum keystonemiddleware needs
|
||||||
|
# to be installed in the py2 env, there are probably other things too...
|
||||||
|
s-account: False
|
||||||
|
s-container: False
|
||||||
|
s-object: False
|
||||||
|
s-proxy: False
|
||||||
|
tox_envlist: functional-tips
|
||||||
|
|
||||||
- project:
|
- project:
|
||||||
name: openstack/python-openstackclient
|
name: openstack/python-openstackclient
|
||||||
|
@ -217,16 +217,13 @@ more steps needed to fully integrate the client with openstackclient.
|
|||||||
Add the command checker to your CI
|
Add the command checker to your CI
|
||||||
----------------------------------
|
----------------------------------
|
||||||
|
|
||||||
#. Modify the section of ``zuul/layout.yaml`` related to your repository to
|
#. Add ``openstackclient-plugin-jobs`` to the list of job templates for your project.
|
||||||
add ``osc-plugin-jobs`` to the list of job templates for your project.
|
These jobs ensures that all plugin libraries are co-installable with
|
||||||
This job checks that to see if any new commands are: duplicated, missing
|
``python-openstackclient`` and checks for conflicts across all OpenStackClient
|
||||||
entry points, or have overlap; across all openstackclient plugins.
|
plugins, such as duplicated commands, missing entry points, or other overlaps.
|
||||||
|
|
||||||
#. Update ``jenkins/scripts/check-osc-plugins.sh`` to include your new
|
#. Add your project to the ``required-projects`` list in the ``.zuul.yaml`` file
|
||||||
library to be installed from source. This is essential in running the
|
in the ``openstack/openstackclient`` repo.
|
||||||
previously mentioned check job. Simply add
|
|
||||||
``install_from_source python-fooclient`` to the block of code where all
|
|
||||||
other clients are installed.
|
|
||||||
|
|
||||||
Changes to python-openstackclient
|
Changes to python-openstackclient
|
||||||
---------------------------------
|
---------------------------------
|
||||||
|
@ -1,51 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# This is a script that kicks off a series of functional tests against an
|
|
||||||
# OpenStack cloud. It will attempt to create an instance if one is not
|
|
||||||
# available. Do not run this script unless you know what you're doing.
|
|
||||||
# For more information refer to:
|
|
||||||
# https://docs.openstack.org/python-openstackclient/latest/
|
|
||||||
|
|
||||||
function generate_testr_results {
|
|
||||||
if [ -f .testrepository/0 ]; then
|
|
||||||
sudo .tox/functional/bin/testr last --subunit > $WORKSPACE/testrepository.subunit
|
|
||||||
sudo mv $WORKSPACE/testrepository.subunit $BASE/logs/testrepository.subunit
|
|
||||||
sudo .tox/functional/bin/subunit2html $BASE/logs/testrepository.subunit $BASE/logs/testr_results.html
|
|
||||||
sudo gzip -9 $BASE/logs/testrepository.subunit
|
|
||||||
sudo gzip -9 $BASE/logs/testr_results.html
|
|
||||||
sudo chown $USER:$USER $BASE/logs/testrepository.subunit.gz $BASE/logs/testr_results.html.gz
|
|
||||||
sudo chmod a+r $BASE/logs/testrepository.subunit.gz $BASE/logs/testr_results.html.gz
|
|
||||||
elif [ -f .stestr/0 ]; then
|
|
||||||
sudo .tox/functional/bin/stestr last --subunit > $WORKSPACE/testrepository.subunit
|
|
||||||
sudo mv $WORKSPACE/testrepository.subunit $BASE/logs/testrepository.subunit
|
|
||||||
sudo .tox/functional/bin/subunit2html $BASE/logs/testrepository.subunit $BASE/logs/testr_results.html
|
|
||||||
sudo gzip -9 $BASE/logs/testrepository.subunit
|
|
||||||
sudo gzip -9 $BASE/logs/testr_results.html
|
|
||||||
sudo chown $USER:$USER $BASE/logs/testrepository.subunit.gz $BASE/logs/testr_results.html.gz
|
|
||||||
sudo chmod a+r $BASE/logs/testrepository.subunit.gz $BASE/logs/testr_results.html.gz
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
export OPENSTACKCLIENT_DIR="$BASE/new/python-openstackclient"
|
|
||||||
sudo chown -R $USER:stack $OPENSTACKCLIENT_DIR
|
|
||||||
|
|
||||||
# Go to the openstackclient dir
|
|
||||||
cd $OPENSTACKCLIENT_DIR
|
|
||||||
|
|
||||||
# Run tests
|
|
||||||
echo "Running openstackclient functional test suite"
|
|
||||||
set +e
|
|
||||||
|
|
||||||
# Source environment variables to kick things off
|
|
||||||
source ~stack/devstack/openrc admin admin
|
|
||||||
echo 'Running tests with:'
|
|
||||||
env | grep OS
|
|
||||||
|
|
||||||
# Preserve env for OS_ credentials
|
|
||||||
sudo -E -H -u $USER tox -efunctional
|
|
||||||
EXIT_CODE=$?
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Collect and parse result
|
|
||||||
generate_testr_results
|
|
||||||
exit $EXIT_CODE
|
|
@ -1,55 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# This is a script that kicks off a series of functional tests against an
|
|
||||||
# OpenStack cloud. It will attempt to create an instance if one is not
|
|
||||||
# available. Do not run this script unless you know what you're doing.
|
|
||||||
# For more information refer to:
|
|
||||||
# https://docs.openstack.org/python-openstackclient/latest/
|
|
||||||
|
|
||||||
# This particular script differs from the normal post_test_hook because
|
|
||||||
# it installs the master (tip) version of osc-lib, os-client-config
|
|
||||||
# and openstacksdk, OSCs most important dependencies.
|
|
||||||
|
|
||||||
function generate_testr_results {
|
|
||||||
if [ -f .testrepository/0 ]; then
|
|
||||||
sudo .tox/functional-tips/bin/testr last --subunit > $WORKSPACE/testrepository.subunit
|
|
||||||
sudo mv $WORKSPACE/testrepository.subunit $BASE/logs/testrepository.subunit
|
|
||||||
sudo .tox/functional-tips/bin/subunit2html $BASE/logs/testrepository.subunit $BASE/logs/testr_results.html
|
|
||||||
sudo gzip -9 $BASE/logs/testrepository.subunit
|
|
||||||
sudo gzip -9 $BASE/logs/testr_results.html
|
|
||||||
sudo chown $USER:$USER $BASE/logs/testrepository.subunit.gz $BASE/logs/testr_results.html.gz
|
|
||||||
sudo chmod a+r $BASE/logs/testrepository.subunit.gz $BASE/logs/testr_results.html.gz
|
|
||||||
elif [ -f .stestr/0 ]; then
|
|
||||||
sudo .tox/functional-tips/bin/stestr last --subunit > $WORKSPACE/testrepository.subunit
|
|
||||||
sudo mv $WORKSPACE/testrepository.subunit $BASE/logs/testrepository.subunit
|
|
||||||
sudo .tox/functional-tips/bin/subunit2html $BASE/logs/testrepository.subunit $BASE/logs/testr_results.html
|
|
||||||
sudo gzip -9 $BASE/logs/testrepository.subunit
|
|
||||||
sudo gzip -9 $BASE/logs/testr_results.html
|
|
||||||
sudo chown $USER:$USER $BASE/logs/testrepository.subunit.gz $BASE/logs/testr_results.html.gz
|
|
||||||
sudo chmod a+r $BASE/logs/testrepository.subunit.gz $BASE/logs/testr_results.html.gz
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
export OPENSTACKCLIENT_DIR="$BASE/new/python-openstackclient"
|
|
||||||
sudo chown -R $USER:stack $OPENSTACKCLIENT_DIR
|
|
||||||
|
|
||||||
# Go to the openstackclient dir
|
|
||||||
cd $OPENSTACKCLIENT_DIR
|
|
||||||
|
|
||||||
# Run tests
|
|
||||||
echo "Running openstackclient functional-tips test suite"
|
|
||||||
set +e
|
|
||||||
|
|
||||||
# Source environment variables to kick things off
|
|
||||||
source ~stack/devstack/openrc admin admin
|
|
||||||
echo 'Running tests with:'
|
|
||||||
env | grep OS
|
|
||||||
|
|
||||||
# Preserve env for OS_ credentials
|
|
||||||
sudo -E -H -u $USER tox -e functional-tips
|
|
||||||
EXIT_CODE=$?
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Collect and parse result
|
|
||||||
generate_testr_results
|
|
||||||
exit $EXIT_CODE
|
|
4
playbooks/osc-devstack/post.yaml
Normal file
4
playbooks/osc-devstack/post.yaml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
- hosts: all
|
||||||
|
roles:
|
||||||
|
- fetch-tox-output
|
||||||
|
- fetch-stestr-output
|
8
playbooks/osc-devstack/pre.yaml
Normal file
8
playbooks/osc-devstack/pre.yaml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
- hosts: all
|
||||||
|
roles:
|
||||||
|
- run-devstack
|
||||||
|
- role: bindep
|
||||||
|
bindep_profile: test
|
||||||
|
bindep_dir: "{{ zuul_work_dir }}"
|
||||||
|
- test-setup
|
||||||
|
- ensure-tox
|
3
playbooks/osc-devstack/run.yaml
Normal file
3
playbooks/osc-devstack/run.yaml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
- hosts: all
|
||||||
|
roles:
|
||||||
|
- tox
|
@ -1,80 +0,0 @@
|
|||||||
- hosts: primary
|
|
||||||
tasks:
|
|
||||||
|
|
||||||
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
|
|
||||||
synchronize:
|
|
||||||
src: '{{ ansible_user_dir }}/workspace/'
|
|
||||||
dest: '{{ zuul.executor.log_root }}'
|
|
||||||
mode: pull
|
|
||||||
copy_links: true
|
|
||||||
verify_host: true
|
|
||||||
rsync_opts:
|
|
||||||
- --include=**/*nose_results.html
|
|
||||||
- --include=*/
|
|
||||||
- --exclude=*
|
|
||||||
- --prune-empty-dirs
|
|
||||||
|
|
||||||
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
|
|
||||||
synchronize:
|
|
||||||
src: '{{ ansible_user_dir }}/workspace/'
|
|
||||||
dest: '{{ zuul.executor.log_root }}'
|
|
||||||
mode: pull
|
|
||||||
copy_links: true
|
|
||||||
verify_host: true
|
|
||||||
rsync_opts:
|
|
||||||
- --include=**/*testr_results.html.gz
|
|
||||||
- --include=*/
|
|
||||||
- --exclude=*
|
|
||||||
- --prune-empty-dirs
|
|
||||||
|
|
||||||
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
|
|
||||||
synchronize:
|
|
||||||
src: '{{ ansible_user_dir }}/workspace/'
|
|
||||||
dest: '{{ zuul.executor.log_root }}'
|
|
||||||
mode: pull
|
|
||||||
copy_links: true
|
|
||||||
verify_host: true
|
|
||||||
rsync_opts:
|
|
||||||
- --include=/.testrepository/tmp*
|
|
||||||
- --include=*/
|
|
||||||
- --exclude=*
|
|
||||||
- --prune-empty-dirs
|
|
||||||
|
|
||||||
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
|
|
||||||
synchronize:
|
|
||||||
src: '{{ ansible_user_dir }}/workspace/'
|
|
||||||
dest: '{{ zuul.executor.log_root }}'
|
|
||||||
mode: pull
|
|
||||||
copy_links: true
|
|
||||||
verify_host: true
|
|
||||||
rsync_opts:
|
|
||||||
- --include=**/*testrepository.subunit.gz
|
|
||||||
- --include=*/
|
|
||||||
- --exclude=*
|
|
||||||
- --prune-empty-dirs
|
|
||||||
|
|
||||||
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
|
|
||||||
synchronize:
|
|
||||||
src: '{{ ansible_user_dir }}/workspace/'
|
|
||||||
dest: '{{ zuul.executor.log_root }}/tox'
|
|
||||||
mode: pull
|
|
||||||
copy_links: true
|
|
||||||
verify_host: true
|
|
||||||
rsync_opts:
|
|
||||||
- --include=/.tox/*/log/*
|
|
||||||
- --include=*/
|
|
||||||
- --exclude=*
|
|
||||||
- --prune-empty-dirs
|
|
||||||
|
|
||||||
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
|
|
||||||
synchronize:
|
|
||||||
src: '{{ ansible_user_dir }}/workspace/'
|
|
||||||
dest: '{{ zuul.executor.log_root }}'
|
|
||||||
mode: pull
|
|
||||||
copy_links: true
|
|
||||||
verify_host: true
|
|
||||||
rsync_opts:
|
|
||||||
- --include=/logs/**
|
|
||||||
- --include=*/
|
|
||||||
- --exclude=*
|
|
||||||
- --prune-empty-dirs
|
|
@ -1,85 +0,0 @@
|
|||||||
- hosts: all
|
|
||||||
name: Autoconverted job legacy-osc-dsvm-functional-n-net from old job gate-osc-dsvm-functional-n-net-ubuntu-xenial-nv
|
|
||||||
tasks:
|
|
||||||
|
|
||||||
- name: Ensure legacy workspace directory
|
|
||||||
file:
|
|
||||||
path: '{{ ansible_user_dir }}/workspace'
|
|
||||||
state: directory
|
|
||||||
|
|
||||||
- shell:
|
|
||||||
cmd: |
|
|
||||||
set -e
|
|
||||||
set -x
|
|
||||||
cat > clonemap.yaml << EOF
|
|
||||||
clonemap:
|
|
||||||
- name: openstack-infra/devstack-gate
|
|
||||||
dest: devstack-gate
|
|
||||||
EOF
|
|
||||||
/usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
|
|
||||||
git://git.openstack.org \
|
|
||||||
openstack-infra/devstack-gate
|
|
||||||
executable: /bin/bash
|
|
||||||
chdir: '{{ ansible_user_dir }}/workspace'
|
|
||||||
environment: '{{ zuul | zuul_legacy_vars }}'
|
|
||||||
|
|
||||||
- shell:
|
|
||||||
cmd: |
|
|
||||||
set -e
|
|
||||||
set -x
|
|
||||||
cat << 'EOF' >>"/tmp/dg-local.conf"
|
|
||||||
[[local|localrc]]
|
|
||||||
# NOTE(RuiChen): nova-network only can be enable in nova cell v1
|
|
||||||
enable_service n-net n-cell
|
|
||||||
disable_service neutron q-svc q-agt q-dhcp q-l3 q-meta q-metering
|
|
||||||
# NOTE(dtroyer): OSC needs to support Image v1 for a while yet so re-enable
|
|
||||||
GLANCE_V1_ENABLED=True
|
|
||||||
# NOTE(dtroyer): Functional tests need a bit more volume headroom
|
|
||||||
VOLUME_BACKING_FILE_SIZE=20G
|
|
||||||
# NOTE(dtroyer): OSC needs to support Volume v1 for a while yet so re-enable
|
|
||||||
[[post-config|$CINDER_CONF]]
|
|
||||||
[DEFAULT]
|
|
||||||
enable_v1_api = True
|
|
||||||
|
|
||||||
EOF
|
|
||||||
executable: /bin/bash
|
|
||||||
chdir: '{{ ansible_user_dir }}/workspace'
|
|
||||||
environment: '{{ zuul | zuul_legacy_vars }}'
|
|
||||||
|
|
||||||
- shell:
|
|
||||||
cmd: |
|
|
||||||
set -e
|
|
||||||
set -x
|
|
||||||
export PYTHONUNBUFFERED=true
|
|
||||||
export DEVSTACK_GATE_UNSTACK=0
|
|
||||||
export DEVSTACK_GATE_TEMPEST=0
|
|
||||||
export DEVSTACK_GATE_EXERCISES=0
|
|
||||||
export DEVSTACK_GATE_INSTALL_TESTONLY=1
|
|
||||||
# NOTE(RuiChen): Explicitly tell devstack-gate that we need to run
|
|
||||||
# the nova-network job with cell v1.
|
|
||||||
export DEVSTACK_GATE_NEUTRON=0
|
|
||||||
export DEVSTACK_GATE_CELLS=1
|
|
||||||
export BRANCH_OVERRIDE=default
|
|
||||||
export DEVSTACK_PROJECT_FROM_GIT=python-openstackclient
|
|
||||||
if [ "$BRANCH_OVERRIDE" != "default" ] ; then
|
|
||||||
export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
|
|
||||||
fi
|
|
||||||
|
|
||||||
function post_test_hook {
|
|
||||||
# NOTE(stevemar): After the newton release was tagged the file was moved.
|
|
||||||
# But, we run functional tests for various stable releases
|
|
||||||
# (mitaka, and newton).
|
|
||||||
# TODO(stevemar): Remove this check when Newton hits EOL.
|
|
||||||
hook_location=$BASE/new/python-openstackclient/openstackclient/tests/functional/post_test_hook.sh
|
|
||||||
if [ ! -f "$hook_location" ]; then
|
|
||||||
hook_location=$BASE/new/python-openstackclient/post_test_hook.sh
|
|
||||||
fi
|
|
||||||
bash -xe $hook_location
|
|
||||||
}
|
|
||||||
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
|
|
||||||
executable: /bin/bash
|
|
||||||
chdir: '{{ ansible_user_dir }}/workspace'
|
|
||||||
environment: '{{ zuul | zuul_legacy_vars }}'
|
|
@ -1,80 +0,0 @@
|
|||||||
- hosts: primary
|
|
||||||
tasks:
|
|
||||||
|
|
||||||
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
|
|
||||||
synchronize:
|
|
||||||
src: '{{ ansible_user_dir }}/workspace/'
|
|
||||||
dest: '{{ zuul.executor.log_root }}'
|
|
||||||
mode: pull
|
|
||||||
copy_links: true
|
|
||||||
verify_host: true
|
|
||||||
rsync_opts:
|
|
||||||
- --include=**/*nose_results.html
|
|
||||||
- --include=*/
|
|
||||||
- --exclude=*
|
|
||||||
- --prune-empty-dirs
|
|
||||||
|
|
||||||
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
|
|
||||||
synchronize:
|
|
||||||
src: '{{ ansible_user_dir }}/workspace/'
|
|
||||||
dest: '{{ zuul.executor.log_root }}'
|
|
||||||
mode: pull
|
|
||||||
copy_links: true
|
|
||||||
verify_host: true
|
|
||||||
rsync_opts:
|
|
||||||
- --include=**/*testr_results.html.gz
|
|
||||||
- --include=*/
|
|
||||||
- --exclude=*
|
|
||||||
- --prune-empty-dirs
|
|
||||||
|
|
||||||
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
|
|
||||||
synchronize:
|
|
||||||
src: '{{ ansible_user_dir }}/workspace/'
|
|
||||||
dest: '{{ zuul.executor.log_root }}'
|
|
||||||
mode: pull
|
|
||||||
copy_links: true
|
|
||||||
verify_host: true
|
|
||||||
rsync_opts:
|
|
||||||
- --include=/.testrepository/tmp*
|
|
||||||
- --include=*/
|
|
||||||
- --exclude=*
|
|
||||||
- --prune-empty-dirs
|
|
||||||
|
|
||||||
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
|
|
||||||
synchronize:
|
|
||||||
src: '{{ ansible_user_dir }}/workspace/'
|
|
||||||
dest: '{{ zuul.executor.log_root }}'
|
|
||||||
mode: pull
|
|
||||||
copy_links: true
|
|
||||||
verify_host: true
|
|
||||||
rsync_opts:
|
|
||||||
- --include=**/*testrepository.subunit.gz
|
|
||||||
- --include=*/
|
|
||||||
- --exclude=*
|
|
||||||
- --prune-empty-dirs
|
|
||||||
|
|
||||||
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
|
|
||||||
synchronize:
|
|
||||||
src: '{{ ansible_user_dir }}/workspace/'
|
|
||||||
dest: '{{ zuul.executor.log_root }}/tox'
|
|
||||||
mode: pull
|
|
||||||
copy_links: true
|
|
||||||
verify_host: true
|
|
||||||
rsync_opts:
|
|
||||||
- --include=/.tox/*/log/*
|
|
||||||
- --include=*/
|
|
||||||
- --exclude=*
|
|
||||||
- --prune-empty-dirs
|
|
||||||
|
|
||||||
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
|
|
||||||
synchronize:
|
|
||||||
src: '{{ ansible_user_dir }}/workspace/'
|
|
||||||
dest: '{{ zuul.executor.log_root }}'
|
|
||||||
mode: pull
|
|
||||||
copy_links: true
|
|
||||||
verify_host: true
|
|
||||||
rsync_opts:
|
|
||||||
- --include=/logs/**
|
|
||||||
- --include=*/
|
|
||||||
- --exclude=*
|
|
||||||
- --prune-empty-dirs
|
|
@ -1,90 +0,0 @@
|
|||||||
- hosts: all
|
|
||||||
name: Autoconverted job legacy-osc-dsvm-functional-tips from old job gate-osc-dsvm-functional-tips-ubuntu-xenial-nv
|
|
||||||
tasks:
|
|
||||||
|
|
||||||
- name: Ensure legacy workspace directory
|
|
||||||
file:
|
|
||||||
path: '{{ ansible_user_dir }}/workspace'
|
|
||||||
state: directory
|
|
||||||
|
|
||||||
- shell:
|
|
||||||
cmd: |
|
|
||||||
set -e
|
|
||||||
set -x
|
|
||||||
cat > clonemap.yaml << EOF
|
|
||||||
clonemap:
|
|
||||||
- name: openstack-infra/devstack-gate
|
|
||||||
dest: devstack-gate
|
|
||||||
EOF
|
|
||||||
/usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
|
|
||||||
git://git.openstack.org \
|
|
||||||
openstack-infra/devstack-gate
|
|
||||||
executable: /bin/bash
|
|
||||||
chdir: '{{ ansible_user_dir }}/workspace'
|
|
||||||
environment: '{{ zuul | zuul_legacy_vars }}'
|
|
||||||
|
|
||||||
- shell:
|
|
||||||
cmd: |
|
|
||||||
set -e
|
|
||||||
set -x
|
|
||||||
cat << 'EOF' >>"/tmp/dg-local.conf"
|
|
||||||
[[local|localrc]]
|
|
||||||
# NOTE(amotoki): Some neutron features are enabled by devstack plugin
|
|
||||||
enable_plugin neutron https://git.openstack.org/openstack/neutron
|
|
||||||
enable_service q-qos
|
|
||||||
enable_service neutron-segments
|
|
||||||
# NOTE(dtroyer): OSC needs to support Image v1 for a while yet so re-enable
|
|
||||||
GLANCE_V1_ENABLED=True
|
|
||||||
# NOTE(dtroyer): Functional tests need a bit more volume headroom
|
|
||||||
VOLUME_BACKING_FILE_SIZE=20G
|
|
||||||
# Swift is not ready for python3 yet: At a minimum keystonemiddleware needs
|
|
||||||
# to be installed in the py2 env, there are probably other things too...
|
|
||||||
disable_service s-account
|
|
||||||
disable_service s-container
|
|
||||||
disable_service s-object
|
|
||||||
disable_service s-proxy
|
|
||||||
# This is insufficient, but leaving it here as a reminder of what may
|
|
||||||
# someday be all we need to make this work
|
|
||||||
disable_python3_package swift
|
|
||||||
# NOTE(dtroyer): OSC needs to support Volume v1 for a while yet so re-enable
|
|
||||||
[[post-config|$CINDER_CONF]]
|
|
||||||
[DEFAULT]
|
|
||||||
enable_v1_api = True
|
|
||||||
|
|
||||||
EOF
|
|
||||||
executable: /bin/bash
|
|
||||||
chdir: '{{ ansible_user_dir }}/workspace'
|
|
||||||
environment: '{{ zuul | zuul_legacy_vars }}'
|
|
||||||
|
|
||||||
- shell:
|
|
||||||
cmd: |
|
|
||||||
set -e
|
|
||||||
set -x
|
|
||||||
export PYTHONUNBUFFERED=true
|
|
||||||
export DEVSTACK_GATE_USE_PYTHON3=True
|
|
||||||
export DEVSTACK_GATE_UNSTACK=0
|
|
||||||
export DEVSTACK_GATE_TEMPEST=0
|
|
||||||
export DEVSTACK_GATE_EXERCISES=0
|
|
||||||
export DEVSTACK_GATE_INSTALL_TESTONLY=1
|
|
||||||
export DEVSTACK_GATE_NEUTRON=1
|
|
||||||
export BRANCH_OVERRIDE=default
|
|
||||||
export DEVSTACK_PROJECT_FROM_GIT="python-openstackclient,python-openstacksdk,osc-lib,os-client-config"
|
|
||||||
if [ "$BRANCH_OVERRIDE" != "default" ] ; then
|
|
||||||
export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
|
|
||||||
fi
|
|
||||||
|
|
||||||
function post_test_hook {
|
|
||||||
# This test hook will install the master version of the following:
|
|
||||||
# - osc-lib
|
|
||||||
# - openstacksdk
|
|
||||||
# - os-client-config
|
|
||||||
hook_location=$BASE/new/python-openstackclient/openstackclient/tests/functional/post_test_hook_tips.sh
|
|
||||||
bash -xe $hook_location
|
|
||||||
}
|
|
||||||
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
|
|
||||||
executable: /bin/bash
|
|
||||||
chdir: '{{ ansible_user_dir }}/workspace'
|
|
||||||
environment: '{{ zuul | zuul_legacy_vars }}'
|
|
@ -1,80 +0,0 @@
|
|||||||
- hosts: primary
|
|
||||||
tasks:
|
|
||||||
|
|
||||||
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
|
|
||||||
synchronize:
|
|
||||||
src: '{{ ansible_user_dir }}/workspace/'
|
|
||||||
dest: '{{ zuul.executor.log_root }}'
|
|
||||||
mode: pull
|
|
||||||
copy_links: true
|
|
||||||
verify_host: true
|
|
||||||
rsync_opts:
|
|
||||||
- --include=**/*nose_results.html
|
|
||||||
- --include=*/
|
|
||||||
- --exclude=*
|
|
||||||
- --prune-empty-dirs
|
|
||||||
|
|
||||||
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
|
|
||||||
synchronize:
|
|
||||||
src: '{{ ansible_user_dir }}/workspace/'
|
|
||||||
dest: '{{ zuul.executor.log_root }}'
|
|
||||||
mode: pull
|
|
||||||
copy_links: true
|
|
||||||
verify_host: true
|
|
||||||
rsync_opts:
|
|
||||||
- --include=**/*testr_results.html.gz
|
|
||||||
- --include=*/
|
|
||||||
- --exclude=*
|
|
||||||
- --prune-empty-dirs
|
|
||||||
|
|
||||||
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
|
|
||||||
synchronize:
|
|
||||||
src: '{{ ansible_user_dir }}/workspace/'
|
|
||||||
dest: '{{ zuul.executor.log_root }}'
|
|
||||||
mode: pull
|
|
||||||
copy_links: true
|
|
||||||
verify_host: true
|
|
||||||
rsync_opts:
|
|
||||||
- --include=/.testrepository/tmp*
|
|
||||||
- --include=*/
|
|
||||||
- --exclude=*
|
|
||||||
- --prune-empty-dirs
|
|
||||||
|
|
||||||
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
|
|
||||||
synchronize:
|
|
||||||
src: '{{ ansible_user_dir }}/workspace/'
|
|
||||||
dest: '{{ zuul.executor.log_root }}'
|
|
||||||
mode: pull
|
|
||||||
copy_links: true
|
|
||||||
verify_host: true
|
|
||||||
rsync_opts:
|
|
||||||
- --include=**/*testrepository.subunit.gz
|
|
||||||
- --include=*/
|
|
||||||
- --exclude=*
|
|
||||||
- --prune-empty-dirs
|
|
||||||
|
|
||||||
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
|
|
||||||
synchronize:
|
|
||||||
src: '{{ ansible_user_dir }}/workspace/'
|
|
||||||
dest: '{{ zuul.executor.log_root }}/tox'
|
|
||||||
mode: pull
|
|
||||||
copy_links: true
|
|
||||||
verify_host: true
|
|
||||||
rsync_opts:
|
|
||||||
- --include=/.tox/*/log/*
|
|
||||||
- --include=*/
|
|
||||||
- --exclude=*
|
|
||||||
- --prune-empty-dirs
|
|
||||||
|
|
||||||
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
|
|
||||||
synchronize:
|
|
||||||
src: '{{ ansible_user_dir }}/workspace/'
|
|
||||||
dest: '{{ zuul.executor.log_root }}'
|
|
||||||
mode: pull
|
|
||||||
copy_links: true
|
|
||||||
verify_host: true
|
|
||||||
rsync_opts:
|
|
||||||
- --include=/logs/**
|
|
||||||
- --include=*/
|
|
||||||
- --exclude=*
|
|
||||||
- --prune-empty-dirs
|
|
@ -1,83 +0,0 @@
|
|||||||
- hosts: all
|
|
||||||
name: Autoconverted job legacy-osc-dsvm-functional from old job gate-osc-dsvm-functional-ubuntu-xenial
|
|
||||||
tasks:
|
|
||||||
|
|
||||||
- name: Ensure legacy workspace directory
|
|
||||||
file:
|
|
||||||
path: '{{ ansible_user_dir }}/workspace'
|
|
||||||
state: directory
|
|
||||||
|
|
||||||
- shell:
|
|
||||||
cmd: |
|
|
||||||
set -e
|
|
||||||
set -x
|
|
||||||
cat > clonemap.yaml << EOF
|
|
||||||
clonemap:
|
|
||||||
- name: openstack-infra/devstack-gate
|
|
||||||
dest: devstack-gate
|
|
||||||
EOF
|
|
||||||
/usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
|
|
||||||
git://git.openstack.org \
|
|
||||||
openstack-infra/devstack-gate
|
|
||||||
executable: /bin/bash
|
|
||||||
chdir: '{{ ansible_user_dir }}/workspace'
|
|
||||||
environment: '{{ zuul | zuul_legacy_vars }}'
|
|
||||||
|
|
||||||
- shell:
|
|
||||||
cmd: |
|
|
||||||
set -e
|
|
||||||
set -x
|
|
||||||
cat << 'EOF' >>"/tmp/dg-local.conf"
|
|
||||||
[[local|localrc]]
|
|
||||||
# NOTE(amotoki): Some neutron features are enabled by devstack plugin
|
|
||||||
enable_plugin neutron https://git.openstack.org/openstack/neutron
|
|
||||||
enable_service q-qos
|
|
||||||
enable_service neutron-segments
|
|
||||||
# NOTE(dtroyer): OSC needs to support Image v1 for a while yet so re-enable
|
|
||||||
GLANCE_V1_ENABLED=True
|
|
||||||
# NOTE(dtroyer): Functional tests need a bit more volume headroom
|
|
||||||
VOLUME_BACKING_FILE_SIZE=20G
|
|
||||||
# NOTE(dtroyer): OSC needs to support Volume v1 for a while yet so re-enable
|
|
||||||
[[post-config|$CINDER_CONF]]
|
|
||||||
[DEFAULT]
|
|
||||||
enable_v1_api = True
|
|
||||||
|
|
||||||
EOF
|
|
||||||
executable: /bin/bash
|
|
||||||
chdir: '{{ ansible_user_dir }}/workspace'
|
|
||||||
environment: '{{ zuul | zuul_legacy_vars }}'
|
|
||||||
|
|
||||||
- shell:
|
|
||||||
cmd: |
|
|
||||||
set -e
|
|
||||||
set -x
|
|
||||||
export PYTHONUNBUFFERED=true
|
|
||||||
export DEVSTACK_GATE_UNSTACK=0
|
|
||||||
export DEVSTACK_GATE_TEMPEST=0
|
|
||||||
export DEVSTACK_GATE_EXERCISES=0
|
|
||||||
export DEVSTACK_GATE_INSTALL_TESTONLY=1
|
|
||||||
export DEVSTACK_GATE_NEUTRON=1
|
|
||||||
export BRANCH_OVERRIDE=default
|
|
||||||
export DEVSTACK_PROJECT_FROM_GIT=python-openstackclient
|
|
||||||
if [ "$BRANCH_OVERRIDE" != "default" ] ; then
|
|
||||||
export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
|
|
||||||
fi
|
|
||||||
|
|
||||||
function post_test_hook {
|
|
||||||
# NOTE(stevemar): After the newton release was tagged the file was moved.
|
|
||||||
# But, we run functional tests for various stable releases
|
|
||||||
# (mitaka, and newton).
|
|
||||||
# TODO(stevemar): Remove this check when Newton hits EOL.
|
|
||||||
hook_location=$BASE/new/python-openstackclient/openstackclient/tests/functional/post_test_hook.sh
|
|
||||||
if [ ! -f "$hook_location" ]; then
|
|
||||||
hook_location=$BASE/new/python-openstackclient/post_test_hook.sh
|
|
||||||
fi
|
|
||||||
bash -xe $hook_location
|
|
||||||
}
|
|
||||||
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
|
|
||||||
executable: /bin/bash
|
|
||||||
chdir: '{{ ansible_user_dir }}/workspace'
|
|
||||||
environment: '{{ zuul | zuul_legacy_vars }}'
|
|
16
tox.ini
16
tox.ini
@ -56,20 +56,20 @@ commands =
|
|||||||
[testenv:functional]
|
[testenv:functional]
|
||||||
setenv = OS_TEST_PATH=./openstackclient/tests/functional
|
setenv = OS_TEST_PATH=./openstackclient/tests/functional
|
||||||
passenv = OS_*
|
passenv = OS_*
|
||||||
# Enable this when running Zuul v3 jobs
|
whitelist_externals = openstackclient/tests/functional/run_ostestr.sh
|
||||||
#whitelist_externals = openstackclient/tests/functional/run_ostestr.sh
|
commands =
|
||||||
#commands =
|
{toxinidir}/openstackclient/tests/functional/run_ostestr.sh {posargs}
|
||||||
# {toxinidir}/openstackclient/tests/functional/run_ostestr.sh {posargs}
|
|
||||||
|
|
||||||
[testenv:functional-tips]
|
[testenv:functional-tips]
|
||||||
setenv = OS_TEST_PATH=./openstackclient/tests/functional
|
setenv = OS_TEST_PATH=./openstackclient/tests/functional
|
||||||
passenv = OS_*
|
passenv = OS_*
|
||||||
|
whitelist_externals = openstackclient/tests/functional/run_ostestr.sh
|
||||||
commands =
|
commands =
|
||||||
pip install -q -U -e "git+file:///opt/stack/new/osc-lib#egg=osc_lib"
|
pip install -q -U -e "git+file://{toxinidir}/../osc-lib#egg=osc_lib"
|
||||||
pip install -q -U -e "git+file:///opt/stack/new/python-openstacksdk#egg=openstacksdk"
|
pip install -q -U -e "git+file://{toxinidir}/../os-client-config#egg=os_client_config"
|
||||||
pip install -q -U -e "git+file:///opt/stack/new/os-client-config#egg=os_client_config"
|
pip install -q -U -e "git+file://{toxinidir}/../python-openstacksdk#egg=openstacksdk"
|
||||||
pip freeze
|
pip freeze
|
||||||
ostestr {posargs}
|
{toxinidir}/openstackclient/tests/functional/run_ostestr.sh {posargs}
|
||||||
|
|
||||||
[testenv:venv]
|
[testenv:venv]
|
||||||
commands = {posargs}
|
commands = {posargs}
|
||||||
|
Loading…
Reference in New Issue
Block a user