diff --git a/.zuul.yaml b/.zuul.yaml index 58e2dd5..0965b9d 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -1,21 +1,59 @@ - job: - name: telemetry-dsvm-integration - parent: legacy-dsvm-base - run: playbooks/legacy/telemetry-dsvm-integration-tempest-plugin/run.yaml - post-run: playbooks/legacy/telemetry-dsvm-integration-tempest-plugin/post.yaml + name: telemetry-tempest-base + parent: devstack-tempest + irrelevant-files: + - ^(test-|)requirements.txt$ + - ^setup.cfg$ + - ^doc/.*$ + - ^.*\.rst$ + - ^releasenotes/.*$ timeout: 7800 required-projects: - openstack/devstack-gate + - openstack/panko - openstack/aodh - openstack/ceilometer - - openstack/panko - openstack/telemetry-tempest-plugin - - openstack/heat - openstack/heat-tempest-plugin - # following are required when DEVSTACK_GATE_HEAT, which this - # job turns on + - openstack/heat - openstack/dib-utils - 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: templates: diff --git a/playbooks/legacy/telemetry-dsvm-integration-tempest-plugin/post.yaml b/playbooks/legacy/telemetry-dsvm-integration-tempest-plugin/post.yaml deleted file mode 100644 index dac8753..0000000 --- a/playbooks/legacy/telemetry-dsvm-integration-tempest-plugin/post.yaml +++ /dev/null @@ -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 diff --git a/playbooks/legacy/telemetry-dsvm-integration-tempest-plugin/post_test_hook.sh b/playbooks/legacy/telemetry-dsvm-integration-tempest-plugin/post_test_hook.sh deleted file mode 100755 index b787994..0000000 --- a/playbooks/legacy/telemetry-dsvm-integration-tempest-plugin/post_test_hook.sh +++ /dev/null @@ -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 diff --git a/playbooks/legacy/telemetry-dsvm-integration-tempest-plugin/run.yaml b/playbooks/legacy/telemetry-dsvm-integration-tempest-plugin/run.yaml deleted file mode 100644 index 4e060d6..0000000 --- a/playbooks/legacy/telemetry-dsvm-integration-tempest-plugin/run.yaml +++ /dev/null @@ -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 }}'