mirror of
https://opendev.org/openstack/ansible-collections-openstack.git
synced 2026-03-26 21:43:02 +00:00
Refactored project{,_info} modules
Change-Id: I863d08c42b4c708444b74e3d47f0ca70a8ff94fd
This commit is contained in:
@@ -21,8 +21,8 @@
|
||||
- name: Verify demo project
|
||||
assert:
|
||||
that:
|
||||
- projects.openstack_projects|length == 1
|
||||
- projects.openstack_projects.0.name == "demo"
|
||||
- projects.projects|length == 1
|
||||
- projects.projects.0.name == "demo"
|
||||
|
||||
- name: Grant access to flavor
|
||||
openstack.cloud.compute_flavor_access:
|
||||
@@ -47,7 +47,7 @@
|
||||
assert:
|
||||
that:
|
||||
- (flavor_show.stdout | from_json).name == 'ansible_flavor'
|
||||
- projects.openstack_projects.0.id in (flavor_show.stdout | from_json).access_project_ids
|
||||
- projects.projects.0.id in (flavor_show.stdout | from_json).access_project_ids
|
||||
|
||||
- name: Grant access to flavor again
|
||||
openstack.cloud.compute_flavor_access:
|
||||
|
||||
@@ -239,8 +239,8 @@
|
||||
state: present
|
||||
name: image_owner_project
|
||||
description: Project owning test image
|
||||
domain_id: default
|
||||
enabled: True
|
||||
domain: default
|
||||
is_enabled: True
|
||||
register: owner_project
|
||||
|
||||
- name: Create raw image (owner by project name)
|
||||
@@ -309,7 +309,7 @@
|
||||
cloud: "{{ cloud }}"
|
||||
state: absent
|
||||
name: image_owner_project
|
||||
domain_id: default
|
||||
domain: default
|
||||
|
||||
- name: Delete test image file
|
||||
file:
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
state: present
|
||||
name: ansible_source_project
|
||||
description: Source project for network RBAC test
|
||||
domain_id: default
|
||||
enabled: True
|
||||
domain: default
|
||||
is_enabled: True
|
||||
register: source_project
|
||||
|
||||
- name: Create network
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
project_fields:
|
||||
expected_fields:
|
||||
- description
|
||||
- domain_id
|
||||
- id
|
||||
|
||||
@@ -1,155 +1,181 @@
|
||||
---
|
||||
- name: Ensure project doesn't exist before tests
|
||||
- name: Create project
|
||||
openstack.cloud.project:
|
||||
cloud: "{{ cloud }}"
|
||||
state: absent
|
||||
state: present
|
||||
name: ansible_project
|
||||
description: dummy description
|
||||
domain: default
|
||||
is_enabled: True
|
||||
register: project
|
||||
|
||||
- block:
|
||||
- name: Create project
|
||||
openstack.cloud.project:
|
||||
cloud: "{{ cloud }}"
|
||||
state: present
|
||||
name: ansible_project
|
||||
description: dummy description
|
||||
domain: default
|
||||
enabled: True
|
||||
register: project
|
||||
- name: Assert return values of project module
|
||||
assert:
|
||||
that:
|
||||
- project is changed
|
||||
# allow new fields to be introduced but prevent fields from being removed
|
||||
- expected_fields|difference(project.project.keys())|length == 0
|
||||
|
||||
- name: Assert project changed
|
||||
assert:
|
||||
that: project is changed
|
||||
- name: Fetch project
|
||||
openstack.cloud.project_info:
|
||||
cloud: "{{ cloud }}"
|
||||
name: ansible_project
|
||||
register: project
|
||||
|
||||
- name: Assert project fields
|
||||
assert:
|
||||
that: item in project['project']
|
||||
loop: "{{ project_fields }}"
|
||||
- name: Assert project
|
||||
assert:
|
||||
that:
|
||||
- project.projects | length == 1
|
||||
- project.projects.0.name == 'ansible_project'
|
||||
- project.projects.0.description == 'dummy description'
|
||||
|
||||
- name: Get project
|
||||
openstack.cloud.project_info:
|
||||
cloud: "{{ cloud }}"
|
||||
name: ansible_project
|
||||
register: project_info
|
||||
- name: Create project again
|
||||
openstack.cloud.project:
|
||||
cloud: "{{ cloud }}"
|
||||
state: present
|
||||
name: ansible_project
|
||||
description: dummy description
|
||||
domain: default
|
||||
is_enabled: True
|
||||
register: project
|
||||
|
||||
- name: Assert project
|
||||
assert:
|
||||
that:
|
||||
- project_info.openstack_projects | length == 1
|
||||
- project_info.openstack_projects[0]['name'] == 'ansible_project'
|
||||
- project_info.openstack_projects[0]['description'] == 'dummy description'
|
||||
- name: Assert return values of project module
|
||||
assert:
|
||||
that:
|
||||
- project is not changed
|
||||
# allow new fields to be introduced but prevent fields from being removed
|
||||
- expected_fields|difference(project.project.keys())|length == 0
|
||||
|
||||
- block:
|
||||
- name: Create identical project
|
||||
openstack.cloud.project:
|
||||
cloud: "{{ cloud }}"
|
||||
state: present
|
||||
name: ansible_project
|
||||
description: dummy description
|
||||
domain: default
|
||||
enabled: True
|
||||
register: project
|
||||
- name: Update project
|
||||
openstack.cloud.project:
|
||||
cloud: "{{ cloud }}"
|
||||
state: present
|
||||
name: ansible_project
|
||||
description: new description
|
||||
extra_specs:
|
||||
tags:
|
||||
- example_tag
|
||||
register: project
|
||||
|
||||
- name: Assert project not changed
|
||||
assert:
|
||||
that: project is not changed
|
||||
- name: Assert project changed
|
||||
assert:
|
||||
that:
|
||||
- project is changed
|
||||
- project.project.description == 'new description'
|
||||
|
||||
- name: Assert project fields
|
||||
assert:
|
||||
that: item in project['project']
|
||||
loop: "{{ project_fields }}"
|
||||
- name: Fetch all projects
|
||||
openstack.cloud.project_info:
|
||||
cloud: "{{ cloud }}"
|
||||
register: projects
|
||||
|
||||
- name: Assert return values of project_info module
|
||||
assert:
|
||||
that:
|
||||
- projects.projects | length > 0
|
||||
# allow new fields to be introduced but prevent fields from being removed
|
||||
- expected_fields|difference(projects.projects.0.keys())|length == 0
|
||||
|
||||
- block:
|
||||
- name: Update project
|
||||
openstack.cloud.project:
|
||||
cloud: "{{ cloud }}"
|
||||
state: present
|
||||
name: ansible_project
|
||||
description: new description
|
||||
properties:
|
||||
tags:
|
||||
- example_tag
|
||||
register: project
|
||||
- name: Fetch project by name
|
||||
openstack.cloud.project_info:
|
||||
cloud: "{{ cloud }}"
|
||||
name: 'ansible_project'
|
||||
register: projects
|
||||
|
||||
- name: Assert project changed
|
||||
assert:
|
||||
that: project is changed
|
||||
- name: Assert return values of project_info module
|
||||
assert:
|
||||
that:
|
||||
- projects.projects | length == 1
|
||||
- projects.projects.0.name == 'ansible_project'
|
||||
|
||||
- name: Assert project fields
|
||||
assert:
|
||||
that: item in project['project']
|
||||
loop: "{{ project_fields }}"
|
||||
- name: Fetch projects with filter
|
||||
openstack.cloud.project_info:
|
||||
cloud: "{{ cloud }}"
|
||||
filters:
|
||||
name: 'ansible_project'
|
||||
register: projects
|
||||
|
||||
- name: Get project
|
||||
openstack.cloud.project_info:
|
||||
cloud: "{{ cloud }}"
|
||||
name: ansible_project
|
||||
register: project_info
|
||||
- name: Assert return values of project_info module
|
||||
assert:
|
||||
that:
|
||||
- projects.projects | length == 1
|
||||
- projects.projects.0.name == 'ansible_project'
|
||||
|
||||
- name: Assert project
|
||||
assert:
|
||||
that:
|
||||
- project_info.openstack_projects | length == 1
|
||||
- project_info.openstack_projects[0]['description'] == 'new description'
|
||||
- name: Fetch project by name and domain
|
||||
openstack.cloud.project_info:
|
||||
cloud: "{{ cloud }}"
|
||||
name: 'ansible_project'
|
||||
domain: 'default'
|
||||
register: projects
|
||||
|
||||
- block:
|
||||
- name: Delete project
|
||||
openstack.cloud.project:
|
||||
cloud: "{{ cloud }}"
|
||||
state: absent
|
||||
name: ansible_project
|
||||
register: project
|
||||
- name: Assert return values of project_info module
|
||||
assert:
|
||||
that:
|
||||
- projects.projects | length == 1
|
||||
- projects.projects.0.name == 'ansible_project'
|
||||
|
||||
- name: Assert project changed
|
||||
assert:
|
||||
that: project is changed
|
||||
- name: Delete project
|
||||
openstack.cloud.project:
|
||||
cloud: "{{ cloud }}"
|
||||
state: absent
|
||||
name: ansible_project
|
||||
register: project
|
||||
|
||||
- name: Get project
|
||||
openstack.cloud.project_info:
|
||||
cloud: "{{ cloud }}"
|
||||
name: ansible_project
|
||||
register: project_info
|
||||
- name: Assert project changed
|
||||
assert:
|
||||
that: project is changed
|
||||
|
||||
- name: Assert project deleted
|
||||
assert:
|
||||
that:
|
||||
- project_info.openstack_projects | length == 0
|
||||
- name: Get project
|
||||
openstack.cloud.project_info:
|
||||
cloud: "{{ cloud }}"
|
||||
name: ansible_project
|
||||
register: project_info
|
||||
|
||||
- name: Assert project deleted
|
||||
assert:
|
||||
that:
|
||||
- project_info.projects | length == 0
|
||||
|
||||
- block:
|
||||
- name: Delete non existant project
|
||||
openstack.cloud.project:
|
||||
cloud: "{{ cloud }}"
|
||||
state: absent
|
||||
name: ansible_project
|
||||
register: project
|
||||
- name: Delete project again
|
||||
openstack.cloud.project:
|
||||
cloud: "{{ cloud }}"
|
||||
state: absent
|
||||
name: ansible_project
|
||||
register: project
|
||||
|
||||
- name: Assert project not changed
|
||||
assert:
|
||||
that: project is not changed
|
||||
- name: Assert project not changed
|
||||
assert:
|
||||
that: project is not changed
|
||||
|
||||
- block:
|
||||
- name: Create project with properties
|
||||
openstack.cloud.project:
|
||||
cloud: "{{ cloud }}"
|
||||
state: present
|
||||
name: ansible_project
|
||||
description: dummy description
|
||||
domain: default
|
||||
enabled: True
|
||||
properties:
|
||||
dummy_key: dummy_value
|
||||
register: project
|
||||
- name: Create project with extra_specs
|
||||
openstack.cloud.project:
|
||||
cloud: "{{ cloud }}"
|
||||
state: present
|
||||
name: ansible_project
|
||||
extra_specs:
|
||||
is_enabled: False
|
||||
register: project
|
||||
|
||||
- block:
|
||||
- name: Update project with properties
|
||||
openstack.cloud.project:
|
||||
cloud: "{{ cloud }}"
|
||||
state: present
|
||||
name: ansible_project
|
||||
description: dummy description
|
||||
domain: default
|
||||
enabled: True
|
||||
properties:
|
||||
dummy_key: other_dummy_value
|
||||
register: project
|
||||
- name: Assert return values of project module
|
||||
assert:
|
||||
that:
|
||||
- project.project.is_enabled == False
|
||||
|
||||
- name: Update project with extra_specs
|
||||
openstack.cloud.project:
|
||||
cloud: "{{ cloud }}"
|
||||
state: present
|
||||
name: ansible_project
|
||||
extra_specs:
|
||||
is_enabled: True
|
||||
register: project
|
||||
|
||||
- name: Assert return values of project module
|
||||
assert:
|
||||
that:
|
||||
- project.project.is_enabled == True
|
||||
|
||||
- name: Delete project
|
||||
openstack.cloud.project:
|
||||
cloud: "{{ cloud }}"
|
||||
state: absent
|
||||
name: ansible_project
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
---
|
||||
- name: List admin project
|
||||
openstack.cloud.project_info:
|
||||
cloud: "{{ cloud }}"
|
||||
name: 'admin'
|
||||
register: project_admin
|
||||
|
||||
- name: List admin project with filter
|
||||
openstack.cloud.project_info:
|
||||
cloud: "{{ cloud }}"
|
||||
filters:
|
||||
name: 'admin'
|
||||
|
||||
- name: Check output of list admin project
|
||||
assert:
|
||||
that:
|
||||
- project_admin.openstack_projects | length == 1
|
||||
|
||||
- name: List all projects
|
||||
openstack.cloud.project_info:
|
||||
cloud: "{{ cloud }}"
|
||||
register: all_projects
|
||||
|
||||
- name: Check output of list all projects
|
||||
assert:
|
||||
that:
|
||||
- all_projects.openstack_projects | length > 0
|
||||
|
||||
- name: List admin project with domain
|
||||
openstack.cloud.project_info:
|
||||
cloud: "{{ cloud }}"
|
||||
name: 'admin'
|
||||
domain: 'default'
|
||||
register: project_domain
|
||||
|
||||
- name: Check output of list admin project with admin domain
|
||||
assert:
|
||||
that:
|
||||
- project_domain.openstack_projects | length == 1
|
||||
|
||||
- name: Assert fields on SDK 1.*
|
||||
assert:
|
||||
that:
|
||||
- '["description", "domain_id", "is_domain", "is_enabled", "options",
|
||||
"parent_id", "id", "name", "tags"] |
|
||||
difference(project_admin.openstack_projects.0.keys()) | length == 0'
|
||||
@@ -5,9 +5,8 @@
|
||||
state: present
|
||||
name: ansible_project
|
||||
description: dummy description
|
||||
domain_id: default
|
||||
enabled: True
|
||||
register: project
|
||||
domain: default
|
||||
is_enabled: True
|
||||
|
||||
- name: Grant an admin role on the user admin in the project ansible_project
|
||||
openstack.cloud.role_assignment:
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
state: present
|
||||
name: "shared_net_test_1"
|
||||
description: "Project that contains the subnet to be shared"
|
||||
domain_id: default
|
||||
enabled: True
|
||||
domain: default
|
||||
is_enabled: True
|
||||
register: project_1
|
||||
|
||||
- name: Create the network to be shared
|
||||
@@ -37,8 +37,8 @@
|
||||
state: present
|
||||
name: "shared_net_test_2"
|
||||
description: "Project that contains the subnet to be shared"
|
||||
domain_id: default
|
||||
enabled: True
|
||||
domain: default
|
||||
is_enabled: True
|
||||
register: project_2
|
||||
|
||||
- name: Share the network with the second project
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
- name: Verify demo project
|
||||
assert:
|
||||
that:
|
||||
- projects.openstack_projects|length == 1
|
||||
- projects.openstack_projects.0.name == "demo"
|
||||
- projects.projects|length == 1
|
||||
- projects.projects.0.name == "demo"
|
||||
|
||||
- name: Grant access to volume type
|
||||
openstack.cloud.volume_type_access:
|
||||
@@ -49,7 +49,7 @@
|
||||
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
|
||||
- projects.projects.0.id in (volume_type.stdout | from_json).access_project_ids
|
||||
|
||||
- name: Grant access to volume type again
|
||||
openstack.cloud.volume_type_access:
|
||||
|
||||
@@ -42,7 +42,6 @@
|
||||
- { role: object_container, tags: object_container }
|
||||
- { role: port, tags: port }
|
||||
- { role: project, tags: project }
|
||||
- { role: project_info, tags: project_info }
|
||||
- { role: recordset, tags: recordset }
|
||||
- { role: role_assignment, tags: role_assignment }
|
||||
- { role: router, tags: router }
|
||||
|
||||
Reference in New Issue
Block a user