diff --git a/.zuul.yaml b/.zuul.yaml index bbdf17d..879513f 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -5,64 +5,229 @@ - publish-openstack-docs-pti check: jobs: - - vitrage-dsvm-api-py3 - - vitrage-dsvm-datasources-py3 - - vitrage-dsvm-api-py3-ussuri - - vitrage-dsvm-datasources-py3-ussuri - - vitrage-dsvm-api-py3-train - - vitrage-dsvm-datasources-py3-train - - vitrage-dsvm-api-py3-stein - - vitrage-dsvm-datasources-py3-stein + - vitrage-tempest-plugin-api + - vitrage-tempest-plugin-datasources + - vitrage-tempest-plugin-datasources-ussuri + - vitrage-tempest-plugin-api-ussuri + - vitrage-tempest-plugin-datasources-train + - vitrage-tempest-plugin-api-train + - vitrage-tempest-plugin-datasources-stein + - vitrage-tempest-plugin-api-stein gate: queue: vitrage jobs: - - vitrage-dsvm-api-py3 - - vitrage-dsvm-datasources-py3 + - vitrage-tempest-plugin-api + - vitrage-tempest-plugin-datasources - job: - name: vitrage-dsvm-api-py3-ussuri - parent: vitrage-dsvm-api-py3 + name: vitrage-tempest-plugin-base + parent: devstack-tempest + pre-run: playbooks/pre.yaml + timeout: 7800 + required-projects: &base_required_projects + - opendev.org/openstack/aodh + - opendev.org/openstack/mistral + - opendev.org/openstack/python-vitrageclient + - opendev.org/openstack/vitrage + - opendev.org/openstack/vitrage-tempest-plugin + - opendev.org/openstack/ceilometer + - opendev.org/openstack/heat + irrelevant-files: &base_irrelevant_files + - ^.*\.rst$ + - ^doc/.*$ + - ^releasenotes/.*$ + vars: &base_vars + devstack_local_conf: + post-config: + $NOVA_CONF: + DEFAULT: + notification_topics: 'notifications,vitrage_notifications' + notification_driver: messagingv2 + notifications: + versioned_notifications_topics: 'versioned_notifications,vitrage_notifications' + notification_driver: messagingv2 + $NEUTRON_CONF: + DEFAULT: + notification_topics: 'notifications,vitrage_notifications' + notification_driver: messagingv2 + $CINDER_CONF: + DEFAULT: + notification_topics: 'notifications,vitrage_notifications' + notification_driver: messagingv2 + $HEAT_CONF: + DEFAULT: + notification_topics: 'notifications,vitrage_notifications' + notification_driver: messagingv2 + policy_file: /etc/heat/policy.yaml + $AODH_CONF: + oslo_messaging_notifications: + topics: 'notifications,vitrage_notifications' + driver: messagingv2 + $VITRAGE_CONF: + DEFAULT: + notifiers: 'mistral,nova,webhook' + datasources: + snapshots_interval: 120 + test-config: + $TEMPEST_CONFIG: + service_available: + vitrage: True + root_cause_analysis_service: + zabbix_alarms_per_host: 2 + instances_per_host: 2 + snapshots_interval: 120 + tox_envlist: all + tempest_concurrency: 1 + tempest_test_regex: topology|test_rca|test_alarms|test_resources|test_template|test_webhook|test_service + tempest_black_regex: tempest\.api + tempest_plugins: + - vitrage-tempest-plugin + devstack_localrc: + VITRAGE_USE_STATIC: 1 + VITRAGE_USE_DOCTOR: 1 + VITRAGE_USE_PROMETHEUS: 1 + devstack_services: + s-account: false + s-container: false + s-object: false + s-proxy: false + tls-proxy: false + devstack_plugins: + heat: https://opendev.org/openstack/heat + ceilometer: https://opendev.org/openstack/ceilometer + aodh: https://opendev.org/openstack/aodh + mistral: https://opendev.org/openstack/mistral + vitrage: https://opendev.org/openstack/vitrage + + +- job: + name: vitrage-tempest-plugin-api + parent: vitrage-tempest-plugin-base + +- job: + name: vitrage-tempest-plugin-api-ipv6-only + parent: devstack-tempest-ipv6 nodeset: openstack-single-node-bionic + pre-run: playbooks/pre.yaml + timeout: 7800 + required-projects: *base_required_projects + irrelevant-files: *base_irrelevant_files + vars: *base_vars + +- job: + name: vitrage-tempest-plugin-datasources + parent: vitrage-tempest-plugin-base + vars: + tempest_test_regex: datasources|test_events|notifiers|e2e|database + +- job: + name: vitrage-tempest-plugin-mock + parent: devstack-tempest + timeout: 7800 + required-projects: + - opendev.org/openstack/python-vitrageclient + - opendev.org/openstack/vitrage + - opendev.org/openstack/vitrage-tempest-plugin + irrelevant-files: *base_irrelevant_files + vars: + devstack_local_conf: + post-config: + $NOVA_CONF: + DEFAULT: + notification_topics: 'notifications,vitrage_notifications' + notification_driver: messagingv2 + notifications: + versioned_notifications_topics: 'versioned_notifications,vitrage_notifications' + notification_driver: messagingv2 + notification_format: both + $CINDER_CONF: + DEFAULT: + notification_topics: 'notifications,vitrage_notifications' + notification_driver: messagingv2 + $VITRAGE_CONF: + DEFAULT: + verbose: true + debug: false + notifiers: 'nova,webhook' + rpc_response_timeout: 300 + datasources: + types: 'doctor,mock_graph_datasource' + path: 'vitrage.datasources,vitrage.tests.mocks' + snapshots_interval: 60 + mock_graph_datasource: + networks: 100 + zones_per_cluster: 4 + hosts_per_zone: 16 + zabbix_alarms_per_host: 8 + instances_per_host: 50 + ports_per_instance: 3 + volumes_per_instance: 2 + vitrage_alarms_per_instance: 0 + tripleo_controllers: 3 + zabbix_alarms_per_controller: 1 + test-config: + $TEMPEST_CONFIG: + service_available: + vitrage: True + root_cause_analysis_service: + zabbix_alarms_per_host: 8 + instances_per_host: 50 + snapshots_interval: 60 + tox_envlist: all + tempest_concurrency: 1 + tempest_test_regex: mock_datasource + tempest_plugins: + - vitrage-tempest-plugin + devstack_services: + s-account: false + s-container: false + s-object: false + s-proxy: false + tls-proxy: false + devstack_plugins: + vitrage: https://opendev.org/openstack/vitrage + + +- job: + name: vitrage-tempest-plugin-api-ussuri + parent: vitrage-tempest-plugin-api override-checkout: stable/ussuri - job: - name: vitrage-dsvm-api-py3-train - parent: vitrage-dsvm-api-py3 - nodeset: openstack-single-node-bionic + name: vitrage-tempest-plugin-datasources-ussuri + parent: vitrage-tempest-plugin-datasources + override-checkout: stable/ussuri + +- job: + name: vitrage-tempest-plugin-api-train + parent: vitrage-tempest-plugin-api override-checkout: stable/train vars: devstack_localrc: USE_PYTHON3: True - job: - name: vitrage-dsvm-api-py3-stein - parent: vitrage-dsvm-api-py35 - nodeset: openstack-single-node-bionic - override-checkout: stable/stein - vars: - devstack_localrc: - USE_PYTHON3: True - -- job: - name: vitrage-dsvm-datasources-py3-ussuri - parent: vitrage-dsvm-datasources-py3 - nodeset: openstack-single-node-bionic - override-checkout: stable/ussuri - -- job: - name: vitrage-dsvm-datasources-py3-train - parent: vitrage-dsvm-datasources-py3 - nodeset: openstack-single-node-bionic + name: vitrage-tempest-plugin-datasources-train + parent: vitrage-tempest-plugin-datasources override-checkout: stable/train vars: devstack_localrc: USE_PYTHON3: True - job: - name: vitrage-dsvm-datasources-py3-stein - parent: vitrage-dsvm-datasources-py35 - nodeset: openstack-single-node-bionic + name: vitrage-tempest-plugin-api-stein + parent: vitrage-tempest-plugin-api override-checkout: stable/stein vars: + tempest_black_regex: tempest\.api|test_template + devstack_localrc: + USE_PYTHON3: True + +- job: + name: vitrage-tempest-plugin-datasources-stein + parent: vitrage-tempest-plugin-datasources + override-checkout: stable/stein + vars: + tempest_black_regex: tempest\.api|test_template devstack_localrc: USE_PYTHON3: True diff --git a/devstack/post_test_hook.sh b/devstack/post_test_hook.sh deleted file mode 100644 index fe8085a..0000000 --- a/devstack/post_test_hook.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/env bash -# Copyright 2016 - Nokia -# -# 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. - -STACK_USER=${STACK_USER:stack} - -source $BASE/new/devstack/functions -sudo chown -R $USER:$STACK_USER $BASE/new/tempest - -DEVSTACK_PATH="$BASE/new" -TEMPEST_CONFIG=$BASE/new/tempest/etc/tempest.conf - -iniset $TEMPEST_CONFIG service_available vitrage true - -if [ "$1" = "mock" ]; then - iniset $TEMPEST_CONFIG root_cause_analysis_service zabbix_alarms_per_host 8 - iniset $TEMPEST_CONFIG root_cause_analysis_service instances_per_host 50 - iniset $TEMPEST_CONFIG root_cause_analysis_service snapshots_interval 60 -else - iniset $TEMPEST_CONFIG root_cause_analysis_service zabbix_alarms_per_host 2 - iniset $TEMPEST_CONFIG root_cause_analysis_service instances_per_host 2 - iniset $TEMPEST_CONFIG root_cause_analysis_service snapshots_interval 120 -fi - - -#Argument is received from Zuul -if [[ "$1" = "api" ]]; then - TESTS="topology|test_rca|test_alarms|test_resources|test_template|test_webhook|test_service" -elif [[ "$1" = "datasources" ]]; then - TESTS="datasources|test_events|notifiers|e2e|database" -elif [[ "$1" = "mock" ]]; then - TESTS="mock_datasource" -else # used for internal testing shouldn't get here in gate - TESTS="$1" -fi - -if [[ "$DEVSTACK_GATE_USE_PYTHON3" == "True" ]]; then - export PYTHON=python3 -fi - -sudo cp -rf $DEVSTACK_PATH/tempest/etc/logging.conf.sample $DEVSTACK_PATH/tempest/etc/logging.conf - -cd $DEVSTACK_PATH/tempest/ -sudo -E stestr init - -echo "Listing existing Tempest tests" -sudo -E stestr list vitrage_tempest_plugin | grep -E "$TESTS" | sort | tee /tmp/vitrage_tempest_tests.list -echo "Testing $1: $TESTS..." -sudo -E stestr run --serial --subunit --load-list=/tmp/vitrage_tempest_tests.list | subunit-trace --fails --no-failure-debug diff --git a/devstack/pre_test_hook.sh b/devstack/pre_test_hook.sh deleted file mode 100644 index a0ac80d..0000000 --- a/devstack/pre_test_hook.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env bash -# Copyright 2019 - Nokia -# -# 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. - -DEVSTACK_PATH="$BASE/new" - -# Copy prometheus_conf.yaml to /etc/vitrage directory -ETC_VITRAGE=/etc/vitrage/ -PROMETHES_CONF_PATH=vitrage-tempest-plugin/vitrage_tempest_plugin/tests/resources/prometheus/prometheus_conf.yaml -sudo mkdir -p $ETC_VITRAGE && sudo cp $DEVSTACK_PATH/$PROMETHES_CONF_PATH $ETC_VITRAGE - diff --git a/playbooks/pre.yaml b/playbooks/pre.yaml new file mode 100644 index 0000000..0544661 --- /dev/null +++ b/playbooks/pre.yaml @@ -0,0 +1,36 @@ +- hosts: tempest + tasks: + - name: Create /etc/vitrage and make it available to stack and tempest user + file: + path: /etc/vitrage + state: directory + mode: 0777 + owner: tempest + group: stack + become: yes + - name: Create /etc/vitrage/static_datasources and make it available to stack and tempest user + file: + path: /etc/vitrage/static_datasources + state: directory + mode: 0777 + owner: tempest + group: stack + become: yes + - name: Copy prometheus_conf to vitrage folder + blockinfile: + path: "/etc/vitrage/prometheus_conf.yaml" + mode: 0644 + create: yes + block: | + alerts: + - key: + alertname: HighCpuOnVmAlert + job: libvirt + resource: + instance_name: domain + host_id: instance + - key: + alertname: HighInodeUsage + job: node + resource: + id: instance \ No newline at end of file