Update cinder-tempest-plugin-lvm-lio (revamp)
The changes should make this job a valid replacement for the legacy
cinder-tempest-dsvm-lvm-lio-barbican job defined inside cinder.git.
- rename as cinder-tempest-plugin-lvm-lio-barbican;
- add it to the gate queue as well, together with
devstack-plugin-ceph-tempest-py3;
- use the proper functional tox environment provided by cinderlib;
- synchronize the blacklist with the one used by the legacy job,
and use the same devstack options;
- remove barbicanclient and os-brick from required-projects,
so that the stable libraries are used, as usual for normal jobs.
Child jobs can add them if they need to test against
the master version of those libraries.
And a few minor changes (namespaces for the repositories,
prepare it to be multinode-compatible).
Change-Id: I0ed43c8eda445af8da61d861536da1efdd5a7b1f
Luigi Toscano
6 years ago
| 3 | 3 | - tempest-plugin-jobs |
| 4 | 4 | check: |
| 5 | 5 | jobs: |
| 6 | - cinder-tempest-plugin-lvm-lio | |
| 6 | - cinder-tempest-plugin-lvm-lio-barbican | |
| 7 | - devstack-plugin-ceph-tempest-py3 | |
| 8 | gate: | |
| 9 | jobs: | |
| 10 | - cinder-tempest-plugin-lvm-lio-barbican | |
| 7 | 11 | - devstack-plugin-ceph-tempest-py3 |
| 8 | 12 | |
| 9 | 13 | - job: |
| 10 | name: cinder-tempest-plugin-lvm-lio | |
| 11 | voting: false | |
| 14 | name: cinder-tempest-plugin-lvm-lio-barbican | |
| 12 | 15 | description: | |
| 13 | Run Cinder Tempest Plugin tests | |
| 16 | This jobs configures Cinder with LVM, LIO, barbican and | |
| 17 | runs tempest tests and cinderlib tests. | |
| 14 | 18 | parent: devstack-tempest |
| 19 | roles: | |
| 20 | - zuul: opendev.org/openstack/cinderlib | |
| 15 | 21 | required-projects: |
| 16 | - openstack/devstack-gate | |
| 17 | - openstack/barbican | |
| 18 | - openstack/python-barbicanclient | |
| 19 | - openstack/tempest | |
| 20 | - openstack/os-brick | |
| 21 | - openstack/cinder-tempest-plugin | |
| 22 | - openstack/cinder | |
| 22 | - opendev.org/openstack/barbican | |
| 23 | - opendev.org/openstack/tempest | |
| 24 | - opendev.org/openstack/cinder-tempest-plugin | |
| 25 | - opendev.org/openstack/cinder | |
| 26 | - opendev.org/openstack/cinderlib | |
| 27 | run: playbooks/tempest-and-cinderlib-run.yaml | |
| 28 | # Required to collect the tox-based logs of the cinderlib functional tests | |
| 29 | post-run: playbooks/post-cinderlib.yaml | |
| 30 | host-vars: | |
| 31 | controller: | |
| 32 | devstack_plugins: | |
| 33 | barbican: https://opendev.org/openstack/barbican | |
| 23 | 34 | vars: |
| 24 | tempest_test_regex: (tempest\.(api|scenario)|cinder_tempest_plugin) | |
| 25 | tempest_test_blacklist: '{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/tempest_blacklist.txt' | |
| 35 | tempest_test_regex: '(^tempest\.(api|scenario\.test_encrypted_cinder_volumes|scenario\.test_volume|scenario\.test_shelve_instance)|(^cinder_tempest_plugin))' | |
| 36 | tempest_test_blacklist: "{{ ansible_user_dir }}/{{ zuul.projects['opendev.org/openstack/cinder-tempest-plugin'].src_dir }}/tempest_blacklist.txt" | |
| 26 | 37 | tox_envlist: all |
| 27 | 38 | devstack_localrc: |
| 28 | 39 | CINDER_ISCSI_HELPER: lioadm |
| 29 | TEMPEST_PLUGINS: /opt/stack/cinder-tempest-plugin | |
| 30 | USE_PYTHON3: true | |
| 31 | devstack_plugins: | |
| 32 | barbican: https://opendev.org/openstack/barbican | |
| 40 | CINDER_LVM_TYPE: thin | |
| 41 | CINDER_COORDINATION_URL: 'file://\$state_path' | |
| 33 | 42 | devstack_services: |
| 34 | 43 | barbican: true |
| 44 | tempest_plugins: | |
| 45 | - cinder-tempest-plugin | |
| 46 | fetch_subunit_output_additional_dirs: | |
| 47 | - "{{ ansible_user_dir }}/{{ zuul.projects['opendev.org/openstack/cinderlib'].src_dir }}" | |
| 35 | 48 | irrelevant-files: |
| 36 | 49 | - ^.*\.rst$ |
| 37 | 50 | - ^doc/.*$ |
| 0 | - hosts: all | |
| 1 | vars: | |
| 2 | tox_envlist: functional | |
| 3 | zuul_work_dir: "{{ ansible_user_dir }}/{{ zuul.projects['opendev.org/openstack/cinderlib'].src_dir }}" | |
| 4 | roles: | |
| 5 | - fetch-tox-output |
| 0 | # Playbook imported from https://opendev.org/openstack/tempest/src/tag/23.0.0/playbooks/devstack-tempest.yaml | |
| 1 | ||
| 2 | # Changes that run through devstack-tempest are likely to have an impact on | |
| 3 | # the devstack part of the job, so we keep devstack in the main play to | |
| 4 | # avoid zuul retrying on legitimate failures. | |
| 5 | - hosts: all | |
| 6 | roles: | |
| 7 | - orchestrate-devstack | |
| 8 | ||
| 9 | # We run tests only on one node, regardless how many nodes are in the system | |
| 10 | - hosts: tempest | |
| 11 | environment: | |
| 12 | # This enviroment variable is used by the optional tempest-gabbi | |
| 13 | # job provided by the gabbi-tempest plugin. It can be safely ignored | |
| 14 | # if that plugin is not being used. | |
| 15 | GABBI_TEMPEST_PATH: "{{ gabbi_tempest_path | default('') }}" | |
| 16 | roles: | |
| 17 | - setup-tempest-run-dir | |
| 18 | - setup-tempest-data-dir | |
| 19 | - acl-devstack-files | |
| 20 | - role: run-tempest | |
| 21 | # ignore the errors, so that run-cinderlib-tests is always executed | |
| 22 | ignore_errors: yes | |
| 23 | - role: change-devstack-data-owner | |
| 24 | devstack_data_subdir_changed: cinder | |
| 25 | devstack_data_subdir_owner: zuul | |
| 26 | - role: run-cinderlib-tests | |
| 27 | cinderlib_base_dir: "{{ ansible_user_dir }}/{{ zuul.projects['opendev.org/openstack/cinderlib'].src_dir }}" |
| 0 | Change the ownership of a specific devstack data subdirectory | |
| 1 | ||
| 2 | This is needed in order to have cinderlib functional tests, | |
| 3 | which are normally executed by the `zuul` user, run under | |
| 4 | a devstack deployment where the `stack` user is the owner. | |
| 5 | ||
| 6 | **Role Variables** | |
| 7 | ||
| 8 | .. zuul:rolevar:: devstack_data_dir | |
| 9 | :default: /opt/stack/data | |
| 10 | ||
| 11 | The devstack data directory. | |
| 12 | ||
| 13 | .. zuul:rolevar:: devstack_data_subdir_changed | |
| 14 | :default: cinder | |
| 15 | ||
| 16 | The devstack data subdirectory whose ownership | |
| 17 | is changed. | |
| 18 | ||
| 19 | .. zuul:rolevar:: devstack_data_subdir_owner | |
| 20 | :default: zuul | |
| 21 | ||
| 22 | The new owner of the specified devstack data subdirectory. |
| 0 | devstack_data_dir: /opt/stack/data | |
| 1 | devstack_data_subdir_changed: cinder | |
| 2 | devstack_data_subdir_owner: zuul |
| 0 | - name: Change the owner of specific devstack data files | |
| 1 | file: | |
| 2 | path: "{{ devstack_data_dir }}/{{ devstack_data_subdir_changed }}" | |
| 3 | owner: "{{ devstack_data_subdir_owner }}" | |
| 4 | recurse: yes | |
| 5 | become: yes |
| 0 | # List of tests getting skipped | |
| 1 | .*\[.*\bslow\b.*\] | |
| 2 | .*\.*VolumesSnapshotTestJSON\.test_snapshot_backup | |
| 3 | .*\.*VolumesBackupsTest\.test_backup_create_attached_volume | |
| 4 | .*\.*VolumesBackupsTest\.test_backup_create_and_restore_to_an_existing_volume | |
| 5 | .*\.*VolumesBackupsTest\.test_bootable_volume_backup_and_restore | |
| 6 | .*\.*VolumesBackupsTest\.test_incremental_backup | |
| 7 | .*\.*VolumesBackupsTest\.test_volume_backup_create_get_detailed_list_restore_delete | |
| 8 | .*\.*VolumesBackupsTest\.test_volume_snapshot_backup | |
| 9 | .*\.*VolumesBackupsV39Test\.test_update_backup | |
| 0 | .*VolumesSnapshotTestJSON.test_snapshot_backup | |
| 1 | .*VolumesBackupsAdminTest.test_volume_backup_export_import | |
| 2 | .*VolumesBackupsAdminTest.test_volume_backup_reset_status | |
| 3 | .*VolumesBackupsTest.test_backup_create_attached_volume | |
| 4 | .*VolumesBackupsTest.test_backup_create_and_restore_to_an_existing_volume | |
| 5 | .*VolumesBackupsTest.test_bootable_volume_backup_and_restore | |
| 6 | .*VolumesBackupsTest.test_incremental_backup | |
| 7 | .*VolumesBackupsTest.test_volume_backup_create_get_detailed_list_restore_delete | |
| 8 | .*VolumesBackupsTest.test_volume_snapshot_backup | |
| 9 | .*VolumesBackupsV39Test.test_update_backup | |
| 10 | .*TestVolumeBackupRestore.test_volume_backup_restore |