Files
Jakob Meng eaa26c6b9c Refactored project{,_info} modules
Change-Id: I863d08c42b4c708444b74e3d47f0ca70a8ff94fd
2023-01-11 07:39:17 +01:00

182 lines
4.3 KiB
YAML

---
- name: Create project
openstack.cloud.project:
cloud: "{{ cloud }}"
state: present
name: ansible_project
description: dummy description
domain: default
is_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: Fetch project
openstack.cloud.project_info:
cloud: "{{ cloud }}"
name: ansible_project
register: project
- name: Assert project
assert:
that:
- project.projects | length == 1
- project.projects.0.name == 'ansible_project'
- project.projects.0.description == 'dummy description'
- 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 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
- 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 changed
assert:
that:
- project is changed
- project.project.description == 'new description'
- 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
- name: Fetch project by name
openstack.cloud.project_info:
cloud: "{{ cloud }}"
name: 'ansible_project'
register: projects
- name: Assert return values of project_info module
assert:
that:
- projects.projects | length == 1
- projects.projects.0.name == 'ansible_project'
- name: Fetch projects with filter
openstack.cloud.project_info:
cloud: "{{ cloud }}"
filters:
name: 'ansible_project'
register: projects
- name: Assert return values of project_info module
assert:
that:
- projects.projects | length == 1
- projects.projects.0.name == 'ansible_project'
- name: Fetch project by name and domain
openstack.cloud.project_info:
cloud: "{{ cloud }}"
name: 'ansible_project'
domain: 'default'
register: projects
- name: Assert return values of project_info module
assert:
that:
- projects.projects | length == 1
- projects.projects.0.name == 'ansible_project'
- name: Delete project
openstack.cloud.project:
cloud: "{{ cloud }}"
state: absent
name: ansible_project
register: project
- name: Assert project changed
assert:
that: project is changed
- 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
- 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: Create project with extra_specs
openstack.cloud.project:
cloud: "{{ cloud }}"
state: present
name: ansible_project
extra_specs:
is_enabled: False
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