Fix branchful jobs for collections

Stable branch jobs were using master for deployment

Story: #2008445
Task: #41412

Story: #2008444
Task: #41411

Mark train non-voting, see https://review.opendev.org/766622
Change-Id: I8132ec7cfe3468daaa363efb76c5d0b81bdeab30
This commit is contained in:
Sagi Shnaidman
2020-12-09 20:15:38 +02:00
parent af27a79312
commit 981d268039
7 changed files with 187 additions and 126 deletions

View File

@@ -73,7 +73,7 @@
vars: vars:
tox_envlist: ansible-pip tox_envlist: ansible-pip
# Stable branches # Stable branches tests
- job: - job:
name: ansible-collections-openstack-functional-devstack-victoria-ansible-2.10 name: ansible-collections-openstack-functional-devstack-victoria-ansible-2.10
parent: ansible-collections-openstack-functional-devstack-ansible-devel parent: ansible-collections-openstack-functional-devstack-ansible-devel
@@ -81,13 +81,12 @@
Run openstack collections functional tests against a victoria devstack Run openstack collections functional tests against a victoria devstack
using victoria brach of openstacksdk and stable 2.10 branch of ansible using victoria brach of openstacksdk and stable 2.10 branch of ansible
voting: true voting: true
override-checkout: stable/victoria
required-projects: required-projects:
- name: github.com/ansible/ansible - name: github.com/ansible/ansible
override-checkout: stable-2.10 override-checkout: stable-2.10
- name: openstack/openstacksdk - name: openstack/openstacksdk
override-branch: victoria override-checkout: stable/victoria
- name: openstack/devstack
override-checkout: victoria
vars: vars:
tox_envlist: ansible tox_envlist: ansible
@@ -99,13 +98,14 @@
Run openstack collections functional tests against a ussuri devstack Run openstack collections functional tests against a ussuri devstack
using ussuri brach of openstacksdk and stable 2.10 branch of ansible using ussuri brach of openstacksdk and stable 2.10 branch of ansible
voting: true voting: true
override-checkout: stable/ussuri
required-projects: required-projects:
- name: github.com/ansible/ansible - name: github.com/ansible/ansible
override-checkout: stable-2.10 override-checkout: stable-2.10
- name: openstack/openstacksdk - name: openstack/openstacksdk
override-branch: ussuri override-checkout: stable/ussuri
- name: openstack/devstack - name: openstack/os-client-config
override-checkout: ussuri override-checkout: stable/ussuri
vars: vars:
tox_envlist: ansible tox_envlist: ansible
@@ -115,14 +115,15 @@
description: | description: |
Run openstack collections functional tests against a train devstack Run openstack collections functional tests against a train devstack
using train brach of openstacksdk and stable 2.10 branch of ansible using train brach of openstacksdk and stable 2.10 branch of ansible
voting: true voting: false
override-checkout: stable/train
required-projects: required-projects:
- name: github.com/ansible/ansible - name: github.com/ansible/ansible
override-checkout: stable-2.10 override-checkout: stable-2.10
- name: openstack/openstacksdk - name: openstack/openstacksdk
override-branch: train override-checkout: stable/train
- name: openstack/devstack - name: openstack/os-client-config
override-checkout: train override-checkout: stable/train
vars: vars:
tox_envlist: ansible tox_envlist: ansible
@@ -133,13 +134,14 @@
Run openstack collections functional tests against a stein devstack Run openstack collections functional tests against a stein devstack
using stein brach of openstacksdk and stable 2.10 branch of ansible using stein brach of openstacksdk and stable 2.10 branch of ansible
voting: true voting: true
override-checkout: stable/stein
required-projects: required-projects:
- name: github.com/ansible/ansible - name: github.com/ansible/ansible
override-checkout: stable-2.10 override-checkout: stable-2.10
- name: openstack/openstacksdk - name: openstack/openstacksdk
override-branch: stein override-checkout: stable/stein
- name: openstack/devstack - name: openstack/os-client-config
override-checkout: stein override-checkout: stable/stein
vars: vars:
tox_envlist: ansible tox_envlist: ansible
@@ -150,13 +152,17 @@
Run openstack collections functional tests against a rocky devstack Run openstack collections functional tests against a rocky devstack
using rocky brach of openstacksdk and stable 2.10 branch of ansible using rocky brach of openstacksdk and stable 2.10 branch of ansible
voting: true voting: true
override-checkout: stable/rocky
required-projects: required-projects:
- name: github.com/ansible/ansible - name: github.com/ansible/ansible
override-checkout: stable-2.10 override-checkout: stable-2.10
- name: openstack/openstacksdk - name: openstack/openstacksdk
override-branch: rocky override-checkout: stable/rocky
- name: openstack/devstack - name: openstack/os-client-config
override-checkout: rocky override-checkout: stable/rocky
- name: openstack/shade
override-checkout: stable/rocky
vars: vars:
tox_envlist: ansible tox_envlist: ansible
@@ -167,13 +173,13 @@
Run openstack collections functional tests against a queens devstack Run openstack collections functional tests against a queens devstack
using master branch of openstacksdk and stable 2.10 branch of ansible using master branch of openstacksdk and stable 2.10 branch of ansible
voting: true voting: true
override-checkout: stable/queens
required-projects: required-projects:
- name: github.com/ansible/ansible - name: github.com/ansible/ansible
override-checkout: stable-2.10 override-checkout: stable-2.10
- name: openstack/openstacksdk - name: openstack/openstacksdk
override-branch: master # Run queens with highest possible py2 version of SDK
- name: openstack/devstack override-checkout: stable/train
override-checkout: queens
vars: vars:
tox_envlist: ansible tox_envlist: ansible
@@ -184,13 +190,13 @@
Run openstack collections functional tests against a queens devstack Run openstack collections functional tests against a queens devstack
using master branch of openstacksdk and devel branch of ansible using master branch of openstacksdk and devel branch of ansible
voting: false voting: false
override-checkout: stable/queens
required-projects: required-projects:
- name: github.com/ansible/ansible - name: github.com/ansible/ansible
override-checkout: devel override-checkout: devel
- name: openstack/openstacksdk - name: openstack/openstacksdk
override-branch: master # Run queens with highest possible py2 version of SDK
- name: openstack/devstack override-checkout: stable/train
override-checkout: queens
vars: vars:
tox_envlist: ansible-2.11 tox_envlist: ansible-2.11
@@ -324,7 +330,7 @@
- ansible-collections-openstack-functional-devstack-ansible-pip - ansible-collections-openstack-functional-devstack-ansible-pip
- ansible-collections-openstack-functional-devstack-victoria-ansible-2.10 - ansible-collections-openstack-functional-devstack-victoria-ansible-2.10
- ansible-collections-openstack-functional-devstack-ussuri-ansible-2.10 - ansible-collections-openstack-functional-devstack-ussuri-ansible-2.10
- ansible-collections-openstack-functional-devstack-train-ansible-2.10 # - ansible-collections-openstack-functional-devstack-train-ansible-2.10
- ansible-collections-openstack-functional-devstack-stein-ansible-2.10 - ansible-collections-openstack-functional-devstack-stein-ansible-2.10
- ansible-collections-openstack-functional-devstack-rocky-ansible-2.10 - ansible-collections-openstack-functional-devstack-rocky-ansible-2.10
- ansible-collections-openstack-functional-devstack-queens-ansible-2.10 - ansible-collections-openstack-functional-devstack-queens-ansible-2.10

View File

@@ -200,7 +200,10 @@
that: that:
- info10.openstack_servers.0.status == 'ACTIVE' - info10.openstack_servers.0.status == 'ACTIVE'
# not in all versions 'locked' is supported # not in all versions 'locked' is supported
- info10.openstack_servers.0.locked in (None, True) - >-
(info10.openstack_server[0]['locked'] is defined and
info10.openstack_server[0]['locked']|bool) or
(info10.openstack_server[0]['locked'] is not defined)
- server is changed - server is changed
- name: Lock server again - name: Lock server again
@@ -222,7 +225,10 @@
that: that:
- info11.openstack_servers.0.status == 'ACTIVE' - info11.openstack_servers.0.status == 'ACTIVE'
# not in all versions 'locked' is supported # not in all versions 'locked' is supported
- info11.openstack_servers.0.locked in (None, True) - >-
(info11.openstack_server[0]['locked'] is defined and
info11.openstack_server[0]['locked']|bool) or
(info11.openstack_server[0]['locked'] is not defined)
- server is changed # no support for lock idempotency - server is changed # no support for lock idempotency
- name: Unock server - name: Unock server
@@ -244,7 +250,10 @@
that: that:
- info12.openstack_servers.0.status == 'ACTIVE' - info12.openstack_servers.0.status == 'ACTIVE'
# not in all versions 'locked' is supported # not in all versions 'locked' is supported
- info12.openstack_servers.0.locked in (None, False) - >-
(info12.openstack_server[0]['locked'] is defined and
not info12.openstack_server[0]['locked']|bool) or
(info12.openstack_server[0]['locked'] is not defined)
- server is changed - server is changed
- name: Unlock server again - name: Unlock server again
@@ -267,7 +276,10 @@
- info13.openstack_servers.0.status == 'ACTIVE' - info13.openstack_servers.0.status == 'ACTIVE'
- server is changed # no support for unlock idempotency - server is changed # no support for unlock idempotency
# not in all versions 'locked' is supported # not in all versions 'locked' is supported
- info13.openstack_servers.0.locked in (None, False) - >-
(info13.openstack_server[0]['locked'] is defined and
not info13.openstack_server[0]['locked']|bool) or
(info13.openstack_server[0]['locked'] is not defined)
- name: Suspend server - name: Suspend server
openstack.cloud.server_action: openstack.cloud.server_action:

View File

@@ -21,6 +21,7 @@
cloud: "{{ cloud }}" cloud: "{{ cloud }}"
name: ansible_volume_snapshot name: ansible_volume_snapshot
register: snap_info register: snap_info
ignore_errors: sdk_version is version(0.49, '<')
- name: Create volume backup - name: Create volume backup
openstack.cloud.volume_backup: openstack.cloud.volume_backup:
@@ -29,12 +30,14 @@
display_name: ansible_volume_backup display_name: ansible_volume_backup
volume: ansible_volume volume: ansible_volume
register: vol_backup register: vol_backup
ignore_errors: sdk_version is version(0.49, '<')
- name: Get backup info - name: Get backup info
openstack.cloud.volume_backup_info: openstack.cloud.volume_backup_info:
cloud: "{{ cloud }}" cloud: "{{ cloud }}"
name: ansible_volume_backup name: ansible_volume_backup
register: backup_info register: backup_info
ignore_errors: sdk_version is version(0.49, '<')
- debug: var=vol - debug: var=vol
@@ -49,6 +52,7 @@
cloud: "{{ cloud }}" cloud: "{{ cloud }}"
display_name: ansible_volume_backup display_name: ansible_volume_backup
state: absent state: absent
ignore_errors: sdk_version is version(0.49, '<')
- name: Delete volume snapshot - name: Delete volume snapshot
openstack.cloud.volume_snapshot: openstack.cloud.volume_snapshot:

View File

@@ -1,122 +1,155 @@
- name: Get info about volumes - name: Get info about volumes and all projects for all SDK
openstack.cloud.volume_info:
cloud: "{{ cloud }}"
all_projects: true
register: delete
- name: Clean up volumes before the test
openstack.cloud.volume:
cloud: "{{ cloud }}"
state: absent
display_name: "{{ vol.name }}"
loop: "{{ delete.volumes }}"
loop_control:
loop_var: vol
- name: Create volume
openstack.cloud.volume:
cloud: "{{ cloud }}"
state: present
size: 1
display_name: ansible_test
display_description: testci
register: vol
- name: Get info about volumes
openstack.cloud.volume_info: openstack.cloud.volume_info:
cloud: "{{ cloud }}" cloud: "{{ cloud }}"
details: true details: true
all_projects: true all_projects: true
register: info register: all_sdk
ignore_errors: true
- name: Check info - name: Check info for all projects
assert: assert:
that: that:
- info.volumes | selectattr("description", "equalto", "testci") | list | length == 1 # Rocky SDK doesn't have all_projects attribute
- info.volumes.0.name == 'ansible_test' - >-
- info.volumes.0.status == 'available' (all_sdk is failed and sdk_version is version(0.19, '<')) or
all_sdk is success
- name: Get not detailed info about volumes - name: Get info about volumes for all SDK
openstack.cloud.volume_info: openstack.cloud.volume_info:
cloud: "{{ cloud }}" cloud: "{{ cloud }}"
details: false details: true
all_projects: true register: all_sdk1
register: info1 ignore_errors: true
- name: Check info - name: Check info for all SDK
assert: assert:
that: that:
- info1.volumes | selectattr("id", "equalto", "{{ info.volumes.0.id }}") | list | length == 1 - all_sdk1 is success
- info1.volumes.0.name == 'ansible_test' - all_sdk1.volumes is defined
- info1.volumes.0.status == None
- name: Get info about volumes with name - name: Run tests for SDK > 0.28 (from train)
openstack.cloud.volume_info: when: sdk_version is version(0.28, '>')
cloud: "{{ cloud }}" block:
details: false
name: ansible_test
all_projects: true
register: info2
- name: Check info - name: Get info about volumes
assert: openstack.cloud.volume_info:
that: cloud: "{{ cloud }}"
- info2.volumes | length == 1 all_projects: true
- info2.volumes.0.name == 'ansible_test' register: delete
- name: Get info about volumes with non-existent name - name: Clean up volumes before the test
openstack.cloud.volume_info: openstack.cloud.volume:
cloud: "{{ cloud }}" cloud: "{{ cloud }}"
details: false state: absent
name: nothing_here display_name: "{{ vol.name }}"
all_projects: true loop: "{{ delete.volumes }}"
register: info3 loop_control:
loop_var: vol
- name: Check info - name: Create volume
assert: openstack.cloud.volume:
that: cloud: "{{ cloud }}"
- info3.volumes | length == 0 state: present
size: 1
display_name: ansible_test
display_description: testci
register: vol
- name: Get info about volumes - name: Get info about volumes
openstack.cloud.volume_info: openstack.cloud.volume_info:
cloud: "{{ cloud }}" cloud: "{{ cloud }}"
details: false details: true
name: ansible_test all_projects: true
all_projects: true register: info
register: info4
- name: Check info - name: Check info
assert: assert:
that: that:
- info4.volumes | length == 1 - info.volumes | selectattr("description", "equalto", "testci") | list | length == 1
- info4.volumes.0.name == 'ansible_test' - info.volumes.0.name == 'ansible_test'
- info.volumes.0.status == 'available'
- name: Get info about volumes not from all projects - name: Get not detailed info about volumes
openstack.cloud.volume_info: openstack.cloud.volume_info:
cloud: "{{ cloud }}" cloud: "{{ cloud }}"
details: false details: false
name: ansible_test all_projects: true
register: info4a register: info1
- name: Check info - name: Check info
assert: assert:
that: that:
- info4a.volumes | length == 1 - info1.volumes | selectattr("id", "equalto", "{{ info.volumes.0.id }}") | list | length == 1
- info4a.volumes.0.name == 'ansible_test' - info1.volumes.0.name == 'ansible_test'
- info1.volumes.0.status == None
- name: Delete volume - name: Get info about volumes with name
openstack.cloud.volume: openstack.cloud.volume_info:
cloud: "{{ cloud }}" cloud: "{{ cloud }}"
state: absent details: false
display_name: ansible_test name: ansible_test
all_projects: true
register: info2
- name: Get info when no volumes - name: Check info
openstack.cloud.volume_info: assert:
cloud: "{{ cloud }}" that:
all_projects: true - info2.volumes | length == 1
register: info5 - info2.volumes.0.name == 'ansible_test'
- name: Check info - name: Get info about volumes with non-existent name
assert: openstack.cloud.volume_info:
that: cloud: "{{ cloud }}"
- info5.volumes | selectattr("name", "equalto", "ansible_test") | list | length == 0 details: false
name: nothing_here
all_projects: true
register: info3
- name: Check info
assert:
that:
- info3.volumes | length == 0
- name: Get info about volumes
openstack.cloud.volume_info:
cloud: "{{ cloud }}"
details: false
name: ansible_test
all_projects: true
register: info4
- name: Check info
assert:
that:
- info4.volumes | length == 1
- info4.volumes.0.name == 'ansible_test'
- name: Get info about volumes not from all projects
openstack.cloud.volume_info:
cloud: "{{ cloud }}"
details: false
name: ansible_test
register: info4a
- name: Check info
assert:
that:
- info4a.volumes | length == 1
- info4a.volumes.0.name == 'ansible_test'
- name: Delete volume
openstack.cloud.volume:
cloud: "{{ cloud }}"
state: absent
display_name: ansible_test
- name: Get info when no volumes
openstack.cloud.volume_info:
cloud: "{{ cloud }}"
all_projects: true
register: info5
- name: Check info
assert:
that:
- info5.volumes | selectattr("name", "equalto", "ansible_test") | list | length == 0

View File

@@ -98,6 +98,8 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
class VolumeBackupModule(OpenStackModule): class VolumeBackupModule(OpenStackModule):
module_min_sdk_version = '0.49.0'
argument_spec = dict( argument_spec = dict(
display_name=dict(required=True, aliases=['name'], type='str'), display_name=dict(required=True, aliases=['name'], type='str'),
display_description=dict(required=False, aliases=['description'], display_description=dict(required=False, aliases=['description'],

View File

@@ -84,6 +84,8 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
class VolumeBackupInfoModule(OpenStackModule): class VolumeBackupInfoModule(OpenStackModule):
module_min_sdk_version = '0.49.0'
argument_spec = dict( argument_spec = dict(
name=dict(required=False, type='str'), name=dict(required=False, type='str'),
volume=dict(required=False, type='str') volume=dict(required=False, type='str')

View File

@@ -85,6 +85,8 @@ from ansible_collections.openstack.cloud.plugins.module_utils.openstack import O
class VolumeSnapshotInfoModule(OpenStackModule): class VolumeSnapshotInfoModule(OpenStackModule):
module_min_sdk_version = '0.49.0'
argument_spec = dict( argument_spec = dict(
details=dict(default=True, type='bool'), details=dict(default=True, type='bool'),
name=dict(required=False, type='str'), name=dict(required=False, type='str'),