Migrate to Zuul v3

Story: 2001238
Task: 5764
Task: 5765

Change-Id: I263b1a92a9ec7b5e38d9c1dc8b02e214102a92c2
Needed-By: I7bc913d0e5cd9e8a06a63cc3d11740056c7036d7
This commit is contained in:
Adrian Czarnecki 2017-10-02 14:21:43 +02:00 committed by Tomasz Trębski
parent 37b2111435
commit cdc3acb279
7 changed files with 264 additions and 2 deletions

62
.zuul.yaml Normal file
View File

@ -0,0 +1,62 @@
- job:
name: monasca-tempest-base
parent: legacy-dsvm-base
run: playbooks/legacy/monasca-tempest-base/run
post-run: playbooks/legacy/monasca-tempest-base/post
timeout: 7800
required-projects:
- openstack-infra/devstack-gate
- openstack/monasca-agent
- openstack/monasca-api
- openstack/monasca-common
- openstack/monasca-grafana-datasource
- openstack/monasca-notification
- openstack/monasca-persister
- openstack/monasca-statsd
- openstack/monasca-thresh
- openstack/monasca-ui
- openstack/python-monascaclient
- openstack/tempest
- job:
name: monasca-tempest-python-mysql
parent: monasca-tempest-base
vars:
database: mysql
lang: python
- job:
name: monasca-tempest-python-postgresql
parent: monasca-tempest-base
vars:
database: postgresql
lang: python
voting: false
- job:
name: monasca-tempest-java-mysql
parent: monasca-tempest-base
vars:
database: mysql
lang: java
- job:
name: monasca-tempest-java-postgresql
parent: monasca-tempest-base
vars:
database: postgresql
lang: java
voting: false
- project:
name: openstack/monasca-api
check:
jobs:
- monasca-tempest-python-mysql
- monasca-tempest-python-postgresql
- monasca-tempest-java-mysql
- monasca-tempest-java-postgresql
gate:
jobs:
- monasca-tempest-python-mysql
- monasca-tempest-java-mysql

0
devstack/post_test_hook.sh Executable file → Normal file
View File

View File

View File

@ -0,0 +1,102 @@
#
# (C) Copyright 2015 Hewlett Packard Enterprise Development Company LP
# (C) Copyright 2017 FUJITSU LIMITED
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
sleep 6
function load_devstack_utilities {
source $BASE/new/devstack/stackrc
source $BASE/new/devstack/functions
source $BASE/new/devstack/openrc admin admin
}
function setup_monasca_api {
local constraints="-c /opt/stack/new/requirements/upper-constraints.txt"
pushd $TEMPEST_DIR
sudo -EH pip install $constraints -r requirements.txt -r test-requirements.txt
popd;
pushd $MONASCA_API_DIR
sudo -EH pip install $constraints -r requirements.txt -r test-requirements.txt
sudo -EH python setup.py install
popd;
}
function set_tempest_conf {
local conf_file=$TEMPEST_DIR/etc/tempest.conf
pushd $TEMPEST_DIR
oslo-config-generator \
--config-file tempest/cmd/config-generator.tempest.conf \
--output-file $conf_file
popd
cp -f $DEST/tempest/etc/logging.conf.sample $DEST/tempest/etc/logging.conf
# set identity section
iniset $conf_file identity admin_domain_scope True
iniset $conf_file identity user_unique_last_password_count 2
iniset $conf_file identity user_locakout_duration 5
iniset $conf_file identity user_lockout_failure_attempts 2
iniset $conf_file identity uri $OS_AUTH_URL/v2.0
iniset $conf_file identity uri_v3 $OS_AUTH_URL/v3
iniset $conf_file identity auth_version v$OS_IDENTITY_API_VERSION
# set auth section
iniset $conf_file auth use_dynamic_credentials True
iniset $conf_file auth admin_username $OS_USERNAME
iniset $conf_file auth admin_password $OS_PASSWORD
iniset $conf_file auth admin_domain_name $OS_PROJECT_DOMAIN_ID
iniset $conf_file auth admin_project_name $OS_PROJECT_NAME
}
function function_exists {
declare -f -F $1 > /dev/null
}
if ! function_exists echo_summary; then
function echo_summary {
echo $@
}
fi
XTRACE=$(set +o | grep xtrace)
set -o xtrace
echo_summary "monasca's post_test_hook.sh was called..."
(set -o posix; set)
# save ref to monasca-api dir
export MONASCA_API_DIR="$BASE/new/monasca-api"
export TEMPEST_DIR="$BASE/new/tempest"
sudo chown -R $USER:stack $MONASCA_API_DIR
sudo chown -R $USER:stack $TEMPEST_DIR
load_devstack_utilities
setup_monasca_api
set_tempest_conf
(cd $TEMPEST_DIR; testr init)
(cd $TEMPEST_DIR; testr list-tests monasca_tempest_tests > monasca_tempest_tests)
(cd $TEMPEST_DIR; cat monasca_tempest_tests)
(cd $TEMPEST_DIR; cat monasca_tempest_tests | grep gate > monasca_tempest_tests_gate)
(cd $TEMPEST_DIR; testr run --subunit --load-list=monasca_tempest_tests_gate | subunit-trace --fails)

View File

@ -0,0 +1,15 @@
- 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=/logs/**
- --include=*/
- --exclude=*
- --prune-empty-dirs

View File

@ -0,0 +1,85 @@
- hosts: all
name: Autoconverted job legacy-tempest-dsvm-monasca-python-mysql-full from old job
gate-tempest-dsvm-monasca-python-mysql-full-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]]
enable_plugin monasca-api git://git.openstack.org/openstack/monasca-api
MONASCA_API_IMPLEMENTATION_LANG="{{ lang }}"
MONASCA_PERSISTER_IMPLEMENTATION_LANG="{{ lang }}"
EOF
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
cmd: |
set -e
set -x
export PYTHONUNBUFFERED=true
export ENABLED_SERVICES=tempest
export DEVSTACK_GATE_NEUTRON=1
export DEVSTACK_GATE_EXERCISES=0
if [ "{{ database }}" == "postgresql" ]; then
export DEVSTACK_GATE_POSTGRES=1
else
export DEVSTACK_GATE_POSTGRES=0
fi
export PROJECTS="openstack/monasca-api $PROJECTS"
export PROJECTS="openstack/monasca-persister $PROJECTS"
export PROJECTS="openstack/monasca-common $PROJECTS"
export PROJECTS="openstack/monasca-agent $PROJECTS"
export PROJECTS="openstack/monasca-notification $PROJECTS"
export PROJECTS="openstack/monasca-thresh $PROJECTS"
export PROJECTS="openstack/monasca-statsd $PROJECTS"
export PROJECTS="openstack/python-monascaclient $PROJECTS"
export PROJECTS="openstack/monasca-grafana-datasource $PROJECTS"
export PROJECTS="openstack/monasca-ui $PROJECTS"
function pre_test_hook {
source $BASE/new/monasca-api/monasca_tempest_tests/contrib/gate_hook.sh
}
export -f pre_test_hook
function post_test_hook {
# Configure and run tempest on monasca-api installation
source $BASE/new/monasca-api/monasca_tempest_tests/contrib/post_test_hook.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
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'

View File

@ -67,8 +67,6 @@ usedevelop = False
commands = bash {toxinidir}/tools/bashate.sh
[testenv:pep8]
skip_install = True
usedevelop = False
commands =
{[testenv:flake8]commands}
{[testenv:bandit]commands}