Split project_access into {compute_flavor,volume_type}_access modules

Change-Id: I33fa4b3a08392feac702f45a2c47f8b04799ac0b
This commit is contained in:
Jakob Meng
2022-11-03 14:37:00 +01:00
parent 4fe73c978a
commit 5862d91615
8 changed files with 584 additions and 195 deletions

View File

@@ -0,0 +1,96 @@
---
- name: Create flavor
openstack.cloud.compute_flavor:
cloud: devstack-admin
state: present
name: ansible_flavor
is_public: False
ram: 1024
vcpus: 1
disk: 10
ephemeral: 10
swap: 1
register: flavor
- name: Fetch demo project
openstack.cloud.project_info:
cloud: devstack-admin
name: demo
register: projects
- name: Verify demo project
assert:
that:
- projects.openstack_projects|length == 1
- projects.openstack_projects.0.name == "demo"
- name: Grant access to flavor
openstack.cloud.compute_flavor_access:
cloud: devstack-admin
name: ansible_flavor
project: demo
state: present
register: access
- name: Verify access
assert:
that:
- access is changed
- access.flavor.id == flavor.flavor.id
# TODO: Replace with appropriate Ansible module once available
- name: Get compute flavor
command: openstack --os-cloud=devstack-admin flavor show ansible_flavor -f json
register: flavor_show
- name: Verify volume type access
assert:
that:
- (flavor_show.stdout | from_json).name == 'ansible_flavor'
- projects.openstack_projects.0.id in (flavor_show.stdout | from_json).access_project_ids
- name: Grant access to flavor again
openstack.cloud.compute_flavor_access:
cloud: devstack-admin
name: ansible_flavor
project: demo
state: present
register: access
- name: Verify access did not change
assert:
that:
- access is not changed
- name: Revoke access to flavor
openstack.cloud.compute_flavor_access:
cloud: devstack-admin
name: ansible_flavor
project: demo
state: absent
register: access
- name: Verify revoked access
assert:
that:
- access is changed
- access.flavor.id == flavor.flavor.id
- name: Revoke access to flavor again
openstack.cloud.compute_flavor_access:
cloud: devstack-admin
name: ansible_flavor
project: demo
state: absent
register: access
- name: Verify access did not change
assert:
that:
- access is not changed
- name: Delete flavor
openstack.cloud.compute_flavor:
cloud: devstack-admin
state: absent
name: ansible_flavor

View File

@@ -0,0 +1,96 @@
---
# TODO: Replace with appropriate Ansible module once available
- name: Get volume types
command: openstack --os-cloud=devstack-admin volume type list -f json
register: volume_types
# TODO: Replace with appropriate Ansible module once available
- name: Create volume type
command: openstack --os-cloud=devstack-admin volume type create ansible_volume_type --private
when: "'ansible_volume_type' not in (volume_types.stdout | from_json) | map(attribute='Name') | list"
# TODO: Replace with appropriate Ansible module once available
- name: Get volume types
command: openstack --os-cloud=devstack-admin volume type show ansible_volume_type -f json
register: volume_type
- name: Fetch demo project
openstack.cloud.project_info:
cloud: devstack-admin
name: demo
register: projects
- name: Verify demo project
assert:
that:
- projects.openstack_projects|length == 1
- projects.openstack_projects.0.name == "demo"
- name: Grant access to volume type
openstack.cloud.volume_type_access:
cloud: devstack-admin
name: ansible_volume_type
project: demo
state: present
register: access
- name: Verify access
assert:
that:
- access is changed
- access.volume_type.id == (volume_type.stdout | from_json).id
# TODO: Replace with appropriate Ansible module once available
- name: Get volume types
command: openstack --os-cloud=devstack-admin volume type show ansible_volume_type -f json
register: volume_type
- name: Verify volume type access
assert:
that:
- (volume_type.stdout | from_json).name == 'ansible_volume_type'
- projects.openstack_projects.0.id in (volume_type.stdout | from_json).access_project_ids
- name: Grant access to volume type again
openstack.cloud.volume_type_access:
cloud: devstack-admin
name: ansible_volume_type
project: demo
state: present
register: access
- name: Verify access did not change
assert:
that:
- access is not changed
- name: Revoke access to volume type
openstack.cloud.volume_type_access:
cloud: devstack-admin
name: ansible_volume_type
project: demo
state: absent
register: access
- name: Verify revoked access
assert:
that:
- access is changed
- access.volume_type.id == (volume_type.stdout | from_json).id
- name: Revoke access to volume type again
openstack.cloud.volume_type_access:
cloud: devstack-admin
name: ansible_volume_type
project: demo
state: absent
register: access
- name: Verify access did not change
assert:
that:
- access is not changed
# TODO: Replace with appropriate Ansible module once available
- name: Delete volume type
command: openstack --os-cloud=devstack-admin volume type delete ansible_volume_type

View File

@@ -8,6 +8,7 @@
- { role: auth, tags: auth }
- { role: catalog_service, tags: catalog_service }
- { role: compute_flavor, tags: compute_flavor }
- { role: compute_flavor_access, tags: compute_flavor_access }
- { role: config, tags: config }
- { role: dns_zone_info, tags: dns_zone_info }
- role: object_container
@@ -68,6 +69,7 @@
- { role: volume, tags: volume }
- { role: volume_backup, tags: volume_backup }
- { role: volume_snapshot, tags: volume_snapshot }
- { role: volume_type_access, tags: volume_type_access }
- role: loadbalancer
tags: loadbalancer
- { role: quota, tags: quota }