Add the native zuulv3 instead of legacy way
Depends-On: https://review.opendev.org/653682 Depends-On: https://review.opendev.org/653907 Change-Id: I8474dac007ca2560a810d955a8cbf695c0953400
This commit is contained in:
parent
5ddfa33f2a
commit
02538c1b17
54
.zuul.yaml
54
.zuul.yaml
@ -1,21 +1,59 @@
|
|||||||
- job:
|
- job:
|
||||||
name: telemetry-dsvm-integration
|
name: telemetry-tempest-base
|
||||||
parent: legacy-dsvm-base
|
parent: devstack-tempest
|
||||||
run: playbooks/legacy/telemetry-dsvm-integration-tempest-plugin/run.yaml
|
irrelevant-files:
|
||||||
post-run: playbooks/legacy/telemetry-dsvm-integration-tempest-plugin/post.yaml
|
- ^(test-|)requirements.txt$
|
||||||
|
- ^setup.cfg$
|
||||||
|
- ^doc/.*$
|
||||||
|
- ^.*\.rst$
|
||||||
|
- ^releasenotes/.*$
|
||||||
timeout: 7800
|
timeout: 7800
|
||||||
required-projects:
|
required-projects:
|
||||||
- openstack/devstack-gate
|
- openstack/devstack-gate
|
||||||
|
- openstack/panko
|
||||||
- openstack/aodh
|
- openstack/aodh
|
||||||
- openstack/ceilometer
|
- openstack/ceilometer
|
||||||
- openstack/panko
|
|
||||||
- openstack/telemetry-tempest-plugin
|
- openstack/telemetry-tempest-plugin
|
||||||
- openstack/heat
|
|
||||||
- openstack/heat-tempest-plugin
|
- openstack/heat-tempest-plugin
|
||||||
# following are required when DEVSTACK_GATE_HEAT, which this
|
- openstack/heat
|
||||||
# job turns on
|
|
||||||
- openstack/dib-utils
|
- openstack/dib-utils
|
||||||
- openstack/diskimage-builder
|
- openstack/diskimage-builder
|
||||||
|
- openstack/tempest
|
||||||
|
vars:
|
||||||
|
devstack_plugins:
|
||||||
|
heat: https://opendev.org/openstack/heat
|
||||||
|
ceilometer: https://opendev.org/openstack/ceilometer
|
||||||
|
aodh: https://opendev.org/openstack/aodh
|
||||||
|
panko: https://opendev.org/openstack/panko
|
||||||
|
devstack_services:
|
||||||
|
tempest: true
|
||||||
|
tls-proxy: false
|
||||||
|
devstack_localrc:
|
||||||
|
TEMPEST_PLUGINS: '"/opt/stack/telemetry-tempest-plugin /opt/stack/heat-tempest-plugin"'
|
||||||
|
GNOCCHI_ARCHIVE_POLICY_TEMPEST: "ceilometer-high-rate"
|
||||||
|
CEILOMETER_BACKEND: "gnocchi"
|
||||||
|
CEILOMETER_PIPELINE_INTERVAL: 15
|
||||||
|
tempest_test_regex: telemetry_tempest_plugin
|
||||||
|
tox_envlist: all
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: telemetry-dsvm-integration
|
||||||
|
parent: telemetry-tempest-base
|
||||||
|
branches: ^(?!stable/(ocata|pike|queens|rocky)).*$
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: telemetry-dsvm-integration
|
||||||
|
parent: telemetry-tempest-base
|
||||||
|
branches:
|
||||||
|
- stable/pike
|
||||||
|
- stable/queens
|
||||||
|
- stable/rocky
|
||||||
|
vars:
|
||||||
|
devstack_localrc:
|
||||||
|
GNOCCHI_ARCHIVE_POLICY_TEMPEST: "ceilometer-high"
|
||||||
|
GNOCCHI_ARCHIVE_POLICY: "high"
|
||||||
|
CEILOMETER_ALARM_AGGREGATION_METHOD: "mean"
|
||||||
|
CEILOMETER_ALARM_METRIC_NAME: "cpu_util"
|
||||||
|
|
||||||
- project:
|
- project:
|
||||||
templates:
|
templates:
|
||||||
|
@ -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,127 +0,0 @@
|
|||||||
#!/bin/bash -xe
|
|
||||||
|
|
||||||
# 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.
|
|
||||||
|
|
||||||
# This script is executed inside post_test_hook function in devstack gate.
|
|
||||||
|
|
||||||
function export_subunit_data {
|
|
||||||
target="$1"
|
|
||||||
if [ -f .testrepository/0 ]; then
|
|
||||||
sudo testr last --subunit > $WORKSPACE/testrepository.subunit.$target
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function generate_testr_results {
|
|
||||||
cat $WORKSPACE/testrepository.subunit.* | sudo tee $BASE/logs/testrepository.subunit
|
|
||||||
sudo /usr/os-testr-env/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
|
|
||||||
}
|
|
||||||
|
|
||||||
function generate_telemetry_report(){
|
|
||||||
set -x
|
|
||||||
set +e
|
|
||||||
|
|
||||||
echo "* Message queue status:"
|
|
||||||
sudo rabbitmqctl list_queues | grep -e \\.sample -e \\.info
|
|
||||||
|
|
||||||
source $BASE/new/devstack/openrc admin admin
|
|
||||||
|
|
||||||
echo "* Heat stack:"
|
|
||||||
openstack stack show integration_test
|
|
||||||
echo "* Alarm list:"
|
|
||||||
aodh alarm list
|
|
||||||
echo "* Alarm show:"
|
|
||||||
aodh alarm show $(aodh alarm list -f value -c alarm_id)
|
|
||||||
echo "* Nova instance list:"
|
|
||||||
openstack server list --all-projects
|
|
||||||
|
|
||||||
echo "* Gnocchi instance list:"
|
|
||||||
gnocchi resource list -t instance
|
|
||||||
for instance_id in $(openstack server list -f value -c ID --all-projects); do
|
|
||||||
echo "* Nova instance detail:"
|
|
||||||
openstack server show $instance_id
|
|
||||||
echo "* Gnocchi instance detail:"
|
|
||||||
gnocchi resource show -t instance $instance_id
|
|
||||||
echo "* Gnocchi measures for instance ${instance_id}:"
|
|
||||||
if [[ $ZUUL_BRANCH =~ (stable/ocata|stable/pike|stable/queens|stable/rocky) ]]; then
|
|
||||||
gnocchi metric show -r $instance_id cpu_util
|
|
||||||
gnocchi --debug measures show -r $instance_id --aggregation mean cpu_util
|
|
||||||
else
|
|
||||||
gnocchi metric show -r $instance_id cpu
|
|
||||||
gnocchi --debug measures show -r $instance_id --aggregation rate:mean cpu
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
gnocchi status
|
|
||||||
|
|
||||||
echo "* Unprocessed measures:"
|
|
||||||
for key in $(redis-cli --scan --pattern 'incoming*'); do echo -n "$key length = " && redis-cli llen $key; done
|
|
||||||
|
|
||||||
echo "* locale:"
|
|
||||||
locale
|
|
||||||
echo
|
|
||||||
echo "* tempest locale:"
|
|
||||||
sudo -H -u tempest locale
|
|
||||||
echo
|
|
||||||
echo "* tempest tox locale:"
|
|
||||||
sudo -H -u tempest tox -evenv-tempest -- locale
|
|
||||||
echo
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -x
|
|
||||||
}
|
|
||||||
|
|
||||||
function generate_reports_and_maybe_exit() {
|
|
||||||
local ret="$1"
|
|
||||||
if [[ $ret != 0 ]]; then
|
|
||||||
# Collect and parse result
|
|
||||||
generate_telemetry_report
|
|
||||||
generate_testr_results
|
|
||||||
exit $ret
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function change_config_for_old_branch() {
|
|
||||||
local TEMPEST_CONFIG="$BASE/new/tempest/etc/tempest.conf"
|
|
||||||
if [[ $ZUUL_BRANCH =~ (stable/ocata|stable/pike|stable/queens|stable/rocky) ]]; then
|
|
||||||
if ! sudo grep -q "alarm_aggregation_method" "$TEMPEST_CONFIG" 2>/dev/null; then
|
|
||||||
sudo echo -e "alarm_aggregation_method = mean" | sudo tee --append "$TEMPEST_CONFIG" > /dev/null
|
|
||||||
sudo echo -e "alarm_metric_name = cpu_util" | sudo tee --append "$TEMPEST_CONFIG" > /dev/null
|
|
||||||
else
|
|
||||||
sudo sed -e "s/\(^\s*alarm_aggregation_method \s*=\).*$/\1 mean/" -i "$TEMPEST_CONFIG"
|
|
||||||
sudo sed -e "s/\(^\s*alarm_metric_name \s*=\).*$/\1 cpu_util/" -i "$TEMPEST_CONFIG"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# Run tests with tempest
|
|
||||||
sudo chown -R tempest:stack $BASE/new/tempest
|
|
||||||
sudo chown -R tempest:stack $BASE/data/tempest
|
|
||||||
cd $BASE/new/tempest
|
|
||||||
change_config_for_old_branch
|
|
||||||
sudo -H -u tempest tox -evenv-tempest -- pip install /opt/stack/new/telemetry-tempest-plugin
|
|
||||||
sudo -H -u tempest tox -evenv-tempest -- pip install /opt/stack/new/heat-tempest-plugin
|
|
||||||
echo "Checking installed Tempest plugins:"
|
|
||||||
sudo -H -u tempest tox -evenv-tempest -- tempest list-plugins
|
|
||||||
set +e
|
|
||||||
sudo -H -u tempest OS_TEST_TIMEOUT=$TEMPEST_OS_TEST_TIMEOUT tox -evenv-tempest -- tempest run -r telemetry_tempest_plugin --concurrency=$TEMPEST_CONCURRENCY
|
|
||||||
EXIT_CODE=$?
|
|
||||||
set -e
|
|
||||||
export_subunit_data "venv-tempest"
|
|
||||||
generate_reports_and_maybe_exit $EXIT_CODE
|
|
||||||
|
|
||||||
exit $EXIT_CODE
|
|
@ -1,62 +0,0 @@
|
|||||||
- hosts: all
|
|
||||||
name: Autoconverted job legacy-telemetry-dsvm-integration-ceilometer from old job
|
|
||||||
gate-telemetry-dsvm-integration-ceilometer-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/devstack-gate
|
|
||||||
dest: devstack-gate
|
|
||||||
EOF
|
|
||||||
/usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
|
|
||||||
https://opendev.org \
|
|
||||||
openstack/devstack-gate
|
|
||||||
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_HEAT=1
|
|
||||||
export DEVSTACK_GATE_NEUTRON=1
|
|
||||||
export DEVSTACK_GATE_TEMPEST=1
|
|
||||||
export DEVSTACK_GATE_EXERCISES=0
|
|
||||||
export DEVSTACK_GATE_INSTALL_TESTONLY=1
|
|
||||||
export DEVSTACK_GATE_TEMPEST_NOTESTS=1
|
|
||||||
export PROJECTS="openstack/ceilometer openstack/aodh openstack/panko openstack/telemetry-tempest-plugin openstack/heat openstack/heat-tempest-plugin"
|
|
||||||
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin panko https://opendev.org/openstack/panko"
|
|
||||||
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ceilometer https://opendev.org/openstack/ceilometer"
|
|
||||||
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin aodh https://opendev.org/openstack/aodh"
|
|
||||||
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin heat https://opendev.org/openstack/heat"
|
|
||||||
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin heat-tempest-plugin https://opendev.org/openstack/heat-tempest-plugin"
|
|
||||||
export DEVSTACK_LOCAL_CONFIG+=$'\n'"INSTALL_TEMPEST='False'"
|
|
||||||
if [[ $ZUUL_BRANCH =~ (stable/ocata|stable/pike|stable/queens|stable/rocky) ]]; then
|
|
||||||
export DEVSTACK_LOCAL_CONFIG+=$'\n'"GNOCCHI_ARCHIVE_POLICY=high"
|
|
||||||
export DEVSTACK_LOCAL_CONFIG+=$'\n'"GNOCCHI_ARCHIVE_POLICY_TEMPEST=ceilometer-high"
|
|
||||||
else
|
|
||||||
export DEVSTACK_LOCAL_CONFIG+=$'\n'"GNOCCHI_ARCHIVE_POLICY_TEMPEST=ceilometer-high-rate"
|
|
||||||
fi
|
|
||||||
export DEVSTACK_LOCAL_CONFIG+=$'\n'"CEILOMETER_BACKEND=gnocchi"
|
|
||||||
export DEVSTACK_LOCAL_CONFIG+=$'\n'"CEILOMETER_PIPELINE_INTERVAL=15"
|
|
||||||
function post_test_hook {
|
|
||||||
cd /opt/stack/new/telemetry-tempest-plugin/playbooks/legacy/telemetry-dsvm-integration-tempest-plugin/
|
|
||||||
./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 }}'
|
|
Loading…
Reference in New Issue
Block a user