mirror of
https://opendev.org/openstack/ansible-collections-openstack.git
synced 2026-05-06 05:13:01 +00:00
This fixes two similar issues: 1. sub_ports weren't added when initially creating the trunk 2. sub_ports identified by ID instead of name weren't added Closes-Bug: #2089589 Change-Id: I1342e23aafdd44eaf16f236d6d07ace41ae1d247 Signed-off-by: Jan-Philipp Litza <janphilipp@litza.de>
186 lines
4.5 KiB
YAML
186 lines
4.5 KiB
YAML
---
|
|
- name: Create parent network
|
|
openstack.cloud.network:
|
|
cloud: "{{ cloud }}"
|
|
state: present
|
|
name: "{{ parent_network_name }}"
|
|
external: true
|
|
register: parent_network
|
|
|
|
- name: Create parent subnet
|
|
openstack.cloud.subnet:
|
|
cloud: "{{ cloud }}"
|
|
state: present
|
|
name: "{{ parent_subnet_name }}"
|
|
network_name: "{{ parent_network_name }}"
|
|
cidr: 10.5.5.0/24
|
|
register: parent_subnet
|
|
|
|
- name: Create parent port
|
|
openstack.cloud.port:
|
|
cloud: "{{ cloud }}"
|
|
state: present
|
|
name: "{{ parent_port_name }}"
|
|
network: "{{ parent_network_name }}"
|
|
fixed_ips:
|
|
- ip_address: 10.5.5.69
|
|
register: parent_port
|
|
|
|
- name: Create subport network
|
|
openstack.cloud.network:
|
|
cloud: "{{ cloud }}"
|
|
state: present
|
|
name: "{{ subport_network_name }}"
|
|
external: true
|
|
register: subport_network
|
|
|
|
- name: Create subport subnet
|
|
openstack.cloud.subnet:
|
|
cloud: "{{ cloud }}"
|
|
state: present
|
|
name: "{{ subport_subnet_name }}"
|
|
network_name: "{{ subport_network_name }}"
|
|
cidr: 10.5.6.0/24
|
|
register: subport_subnet
|
|
|
|
- name: Create subport
|
|
openstack.cloud.port:
|
|
cloud: "{{ cloud }}"
|
|
state: present
|
|
name: "{{ subport_name }}"
|
|
network: "{{ subport_network_name }}"
|
|
fixed_ips:
|
|
- ip_address: 10.5.6.55
|
|
register: subport
|
|
|
|
- name: Create trunk without subports
|
|
openstack.cloud.trunk:
|
|
cloud: "{{ cloud }}"
|
|
state: present
|
|
name: "{{ trunk_name }}"
|
|
port: "{{ parent_port_name }}"
|
|
register: trunk
|
|
|
|
- name: Display return values of trunk module
|
|
ansible.builtin.debug:
|
|
var: trunk
|
|
|
|
- name: Assert return values of trunk module
|
|
ansible.builtin.assert:
|
|
that:
|
|
# allow new fields to be introduced but prevent fields from being removed
|
|
- expected_fields|difference(trunk.trunk.keys())|length == 0
|
|
|
|
- name: Add subport to trunk by name
|
|
openstack.cloud.trunk:
|
|
cloud: "{{ cloud }}"
|
|
state: present
|
|
name: "{{ trunk_name }}"
|
|
port: "{{ parent_port_name }}"
|
|
sub_ports:
|
|
- port: "{{ subport_name }}"
|
|
segmentation_type: vlan
|
|
segmentation_id: 123
|
|
register: trunk_subport_by_name
|
|
|
|
- name: Assert the subport is part of the trunk
|
|
ansible.builtin.assert:
|
|
that:
|
|
- trunk_subport_by_name.trunk.sub_ports|length == 1
|
|
|
|
- name: Remove subport from trunk
|
|
openstack.cloud.trunk:
|
|
cloud: "{{ cloud }}"
|
|
state: present
|
|
name: "{{ trunk_name }}"
|
|
port: "{{ parent_port_name }}"
|
|
sub_ports: []
|
|
register: trunk_subport_removed
|
|
|
|
- name: Assert no subports are part of the trunk
|
|
ansible.builtin.assert:
|
|
that:
|
|
- trunk_subport_removed.trunk.sub_ports|length == 0
|
|
|
|
- name: Add subport to trunk by ID
|
|
openstack.cloud.trunk:
|
|
cloud: "{{ cloud }}"
|
|
state: present
|
|
name: "{{ trunk_name }}"
|
|
port: "{{ parent_port_name }}"
|
|
sub_ports:
|
|
- port: "{{ subport.port.id }}"
|
|
segmentation_type: vlan
|
|
segmentation_id: 123
|
|
register: trunk_subport_by_id
|
|
|
|
- name: Assert the subport is part of the trunk
|
|
ansible.builtin.assert:
|
|
that:
|
|
- trunk_subport_by_id.trunk.sub_ports|length == 1
|
|
|
|
- name: Delete trunk
|
|
openstack.cloud.trunk:
|
|
cloud: "{{ cloud }}"
|
|
state: absent
|
|
name: "{{ trunk_name }}"
|
|
|
|
- name: Create trunk without subports
|
|
openstack.cloud.trunk:
|
|
cloud: "{{ cloud }}"
|
|
state: present
|
|
name: "{{ trunk_name }}"
|
|
port: "{{ parent_port_name }}"
|
|
sub_ports:
|
|
- port: "{{ subport.port.id }}"
|
|
segmentation_type: vlan
|
|
segmentation_id: 123
|
|
register: trunk_with_subports
|
|
|
|
- name: Assert the subport is part of the trunk
|
|
ansible.builtin.assert:
|
|
that:
|
|
- trunk_with_subports.trunk.sub_ports|length == 1
|
|
|
|
- name: Delete trunk
|
|
openstack.cloud.trunk:
|
|
cloud: "{{ cloud }}"
|
|
state: absent
|
|
name: "{{ trunk_name }}"
|
|
|
|
- name: Delete subport
|
|
openstack.cloud.port:
|
|
cloud: "{{ cloud }}"
|
|
state: absent
|
|
name: "{{ subport_name }}"
|
|
|
|
- name: Delete subport subnet
|
|
openstack.cloud.subnet:
|
|
cloud: "{{ cloud }}"
|
|
state: absent
|
|
name: "{{ subport_subnet_name }}"
|
|
|
|
- name: Delete subport network
|
|
openstack.cloud.network:
|
|
cloud: "{{ cloud }}"
|
|
state: absent
|
|
name: "{{ subport_network_name }}"
|
|
|
|
- name: Delete parent port
|
|
openstack.cloud.port:
|
|
cloud: "{{ cloud }}"
|
|
state: absent
|
|
name: "{{ parent_port_name }}"
|
|
|
|
- name: Delete parent subnet
|
|
openstack.cloud.subnet:
|
|
cloud: "{{ cloud }}"
|
|
state: absent
|
|
name: "{{ parent_subnet_name }}"
|
|
|
|
- name: Delete parent network
|
|
openstack.cloud.network:
|
|
cloud: "{{ cloud }}"
|
|
state: absent
|
|
name: "{{ parent_network_name }}"
|