diff --git a/tasks/create_per_cloud_profiles_resources.yml b/tasks/create_per_cloud_profiles_resources.yml index 6e0a319..36c78f6 100644 --- a/tasks/create_per_cloud_profiles_resources.yml +++ b/tasks/create_per_cloud_profiles_resources.yml @@ -26,6 +26,15 @@ tags: - users +- name: "Processing roles resources for profile {{ item_profile }}" + include: create_role.yml + with_items: "{{ profiles|selectattr('name', 'equalto', item_profile)|map(attribute='roles')|list }}" + loop_control: + loop_var: item_role + when: "{{ 'roles' in profiles|selectattr('name', 'equalto', item_profile)|list|first }}" + tags: + - roles + - name: "Processing networks resources for profile {{ item_profile }}" include: create_network.yml with_items: "{{ profiles|selectattr('name', 'equalto', item_profile)|map(attribute='networks')|list }}" diff --git a/tasks/create_per_cloud_resources.yml b/tasks/create_per_cloud_resources.yml index 05cb099..9c50f79 100644 --- a/tasks/create_per_cloud_resources.yml +++ b/tasks/create_per_cloud_resources.yml @@ -23,6 +23,14 @@ tags: - users +- name: "Processing per cloud roles" + include: create_role.yml + with_items: "{{ item_cloud.roles|default([]) }}" + loop_control: + loop_var: item_role + tags: + - roles + - name: "Processing per cloud networks" include: create_network.yml with_items: "{{ item_cloud.networks|default([]) }}" diff --git a/tasks/create_role.yml b/tasks/create_role.yml new file mode 100644 index 0000000..74d6b10 --- /dev/null +++ b/tasks/create_role.yml @@ -0,0 +1,6 @@ +--- +- name: "Processing role {{ item_role.name }}" + os_keystone_role: + cloud: "{{ item_cloud.oscc_cloud|default(item_cloud.name) }}" + state: "{{ item_role.state|default(omit) }}" + name: "{{ item_role.name }}" diff --git a/tests/resources.yml b/tests/resources.yml index d3fc297..b9472e4 100644 --- a/tests/resources.yml +++ b/tests/resources.yml @@ -28,6 +28,8 @@ clouds: - name: test_server_a image: cirros-0.3.4-x86_64-uec flavor: c1 + roles: + - name: test_role - name: devstack servers: - name: test_server_b diff --git a/tests/test.yaml b/tests/test.yaml index 404f4b9..faa1f99 100644 --- a/tests/test.yaml +++ b/tests/test.yaml @@ -45,6 +45,14 @@ - name: Assert test_user user has been created assert: { that: result.rc == 0 } + - name: Querying for test_role role + command: openstack --os-cloud devstack-admin role show test_role + register: result + changed_when: False + + - name: Assert test_role role has been created + assert: { that: result.rc == 0 } + - name: Querying for test_server_a server command: openstack --os-cloud devstack-admin server show test_server_a register: result