mirror of
https://opendev.org/openstack/ansible-collections-openstack.git
synced 2026-07-28 10:44:29 +00:00
Add support for managing network segments
Adds a module to manage Neutron network segments where the segmentation plugin is enabled. Segments are relatively simple and do not support modification beyond the name/description, so most attributes are used for initial segment creation, or filtering results in order to perform updates. Depends-On: https://review.opendev.org/c/openstack/ansible-collections-openstack/+/955752 Change-Id: I4647fd96aaa15460d82765365f98a18ddf2693db
This commit is contained in:
17
ci/roles/network_segment/defaults/main.yml
Normal file
17
ci/roles/network_segment/defaults/main.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
expected_fields:
|
||||
- description
|
||||
- id
|
||||
- name
|
||||
- network_id
|
||||
- network_type
|
||||
- physical_network
|
||||
- segmentation_id
|
||||
|
||||
network_name: segment_network
|
||||
segment_name: example_segment
|
||||
network_type: vlan
|
||||
segmentation_id: 999
|
||||
physical_network: public
|
||||
initial_description: "example segment description"
|
||||
updated_description: "updated segment description"
|
||||
72
ci/roles/network_segment/tasks/main.yml
Normal file
72
ci/roles/network_segment/tasks/main.yml
Normal file
@@ -0,0 +1,72 @@
|
||||
---
|
||||
- name: Create network {{ network_name }}
|
||||
openstack.cloud.network:
|
||||
cloud: "{{ cloud }}"
|
||||
name: "{{ network_name }}"
|
||||
state: present
|
||||
|
||||
- name: Create segment {{ segment_name }}
|
||||
openstack.cloud.network_segment:
|
||||
cloud: "{{ cloud }}"
|
||||
name: "{{ segment_name }}"
|
||||
description: "{{ initial_description }}"
|
||||
network: "{{ network_name }}"
|
||||
network_type: "{{ network_type }}"
|
||||
segmentation_id: "{{ segmentation_id }}"
|
||||
physical_network: "{{ physical_network }}"
|
||||
state: present
|
||||
register: segment
|
||||
|
||||
- name: Assert changed
|
||||
assert:
|
||||
that: segment is changed
|
||||
|
||||
- name: Assert segment fields
|
||||
assert:
|
||||
that: item in segment.network_segment
|
||||
loop: "{{ expected_fields }}"
|
||||
|
||||
- name: Update segment {{ segment_name }} by name - no changes
|
||||
openstack.cloud.network_segment:
|
||||
cloud: "{{ cloud }}"
|
||||
name: "{{ segment_name }}"
|
||||
description: "{{ initial_description }}"
|
||||
state: present
|
||||
register: segment
|
||||
|
||||
- name: Assert not changed
|
||||
assert:
|
||||
that: segment is not changed
|
||||
|
||||
- name: Update segment {{ segment_name }} by all fields - changes
|
||||
openstack.cloud.network_segment:
|
||||
cloud: "{{ cloud }}"
|
||||
name: "{{ segment_name }}"
|
||||
description: "{{ updated_description }}"
|
||||
network: "{{ network_name }}"
|
||||
network_type: "{{ network_type }}"
|
||||
segmentation_id: "{{ segmentation_id }}"
|
||||
physical_network: "{{ physical_network }}"
|
||||
state: present
|
||||
register: segment
|
||||
|
||||
- name: Assert changed
|
||||
assert:
|
||||
that: segment is changed
|
||||
|
||||
- name: Delete segment {{ segment_name }}
|
||||
openstack.cloud.network_segment:
|
||||
cloud: "{{ cloud }}"
|
||||
name: "{{ segment_name }}"
|
||||
state: absent
|
||||
register: segment
|
||||
|
||||
- name: Assert changed
|
||||
assert:
|
||||
that: segment is changed
|
||||
|
||||
- name: Delete network {{ network_name }}
|
||||
openstack.cloud.network:
|
||||
cloud: "{{ cloud }}"
|
||||
name: "{{ network_name }}"
|
||||
state: absent
|
||||
Reference in New Issue
Block a user