Updates server_group for 2.0.0

Replaces the policies argument with policy. The policies attribute is
ancient and was superceded by policy a long time ago[0][1]. Since policy and
policies differ in type, we can't simply alias these and had to drop
policies to keep the implementation small.

[0] https://docs.openstack.org/nova/latest/reference/api-microversion-history.html#id59
[1] https://docs.openstack.org/api-ref/compute/#create-server-group

Change-Id: Icd658fb179ca0a96276b033130b9dddfedd84236
This commit is contained in:
Rafael Castillo
2022-11-10 21:30:33 -07:00
parent 961bdb5bd5
commit daf79de37e
5 changed files with 163 additions and 66 deletions

View File

@@ -0,0 +1,11 @@
expected_fields:
- id
- name
- policy
- policies
- member_ids
- metadata
- project_id
- rules
- user_id

View File

@@ -0,0 +1,72 @@
- name: Create server group
openstack.cloud.server_group:
cloud: "{{ cloud }}"
name: ansible_group
policy: affinity
register: server_group
- name: Assert changed
assert:
that: server_group is changed
- name: Assert return values
assert:
that: item in server_group.server_group
loop: "{{ expected_fields }}"
- name: Create server group again
openstack.cloud.server_group:
cloud: "{{ cloud }}"
name: ansible_group
policy: affinity
register: server_group
- name: Assert not changed
assert:
that: server_group is not changed
- name: Delete server group
openstack.cloud.server_group:
cloud: "{{ cloud }}"
name: ansible_group
state: absent
register: server_group
- name: Assert changed
assert:
that: server_group is changed
- name: Delete server group again
openstack.cloud.server_group:
cloud: "{{ cloud }}"
name: ansible_group
state: absent
register: server_group
- name: Assert not changed
assert:
that: server_group is not changed
- name: Create server group with rules
openstack.cloud.server_group:
cloud: "{{ cloud }}"
name: ansible_group
policy: anti-affinity
rules:
max_server_per_host: 2
register: server_group
- name: Assert changed
assert:
that: server_group is changed
- name: Assert return values
assert:
that: item in server_group.server_group
loop: "{{ expected_fields }}"
- name: Delete server group
openstack.cloud.server_group:
cloud: "{{ cloud }}"
name: ansible_group
state: absent

View File

@@ -57,6 +57,7 @@
- { role: security_group, tags: security_group }
- { role: security_group_rule, tags: security_group_rule }
- { role: server, tags: server }
- { role: server_group, tags: server_group }
- { role: server_metadata, tags: server_metadata }
- { role: server_volume, tags: server_volume }
- { role: stack, tags: stack }