--- - name: Delete subnet {{ subnet_name }} before test openstack.cloud.subnet: cloud: "{{ cloud }}" name: "{{ subnet_name }}" state: absent - name: Delete network {{ network_name }} before test openstack.cloud.network: cloud: "{{ cloud }}" name: "{{ network_name }}" state: absent - name: Create network {{ network_name }} openstack.cloud.network: cloud: "{{ cloud }}" name: "{{ network_name }}" state: present - name: Create network segment {{ segment_name }} openstack.cloud.network_segment: cloud: "{{ cloud }}" name: "{{ segment_name }}" network: "{{ network_name }}" network_type: "vxlan" segmentation_id: 1000 state: present - name: Create subnet {{ subnet_name }} on network {{ network_name }} openstack.cloud.subnet: cloud: "{{ cloud }}" network_name: "{{ network_name }}" network_segment: "{{ segment_name }}" name: "{{ subnet_name }}" state: present enable_dhcp: "{{ enable_subnet_dhcp }}" dns_nameservers: - 8.8.8.7 - 8.8.8.8 cidr: 192.168.0.0/24 gateway_ip: 192.168.0.1 allocation_pool_start: 192.168.0.2 allocation_pool_end: 192.168.0.254 register: subnet - name: Assert changed assert: that: subnet is changed - name: assert subnet fields assert: that: item in subnet.subnet loop: "{{ expected_fields }}" - name: Create subnet {{ subnet_name }} on network {{ network_name }} again openstack.cloud.subnet: cloud: "{{ cloud }}" network_name: "{{ network_name }}" name: "{{ subnet_name }}" state: present enable_dhcp: "{{ enable_subnet_dhcp }}" dns_nameservers: - 8.8.8.7 - 8.8.8.8 cidr: 192.168.0.0/24 gateway_ip: 192.168.0.1 allocation_pool_start: 192.168.0.2 allocation_pool_end: 192.168.0.254 register: subnet - name: Assert not changed assert: that: subnet is not changed - name: Get Subnet Info with name openstack.cloud.subnets_info: cloud: "{{ cloud }}" name: "{{ subnet_name }}" register: subnet - name: assert subnet fields assert: that: item in subnet.subnets[0] loop: "{{ expected_fields }}" - name: Get Subnet Info with filters openstack.cloud.subnets_info: cloud: "{{ cloud }}" filters: enable_dhcp: "{{ enable_subnet_dhcp }}" gateway_ip: 192.168.0.1 cidr: 192.168.0.0/24 register: subnet - name: Verify Subnet info result assert: that: - subnet is not changed - subnet.subnets is defined - subnet.subnets | length > 0 - name: Get Subnet Info with name and improper filter values openstack.cloud.subnets_info: cloud: "{{ cloud }}" name: "{{ subnet_name }}" filters: gateway_ip: 192.168.16.1 cidr: 192.168.16.0/24 register: subnet - name: Verify Subnet info result assert: that: - subnet is not changed - subnet.subnets is defined - subnet.subnets | length == 0 - name: Update subnet openstack.cloud.subnet: cloud: "{{ cloud }}" network_name: "{{ network_name }}" name: "{{ subnet_name }}" state: present dns_nameservers: - 8.8.8.7 cidr: 192.168.0.0/24 register: subnet - name: Assert changed assert: that: subnet is changed - name: Delete subnet {{ subnet_name }} openstack.cloud.subnet: cloud: "{{ cloud }}" name: "{{ subnet_name }}" state: absent register: subnet - name: Assert changed assert: that: subnet is changed - name: Delete subnet {{ subnet_name }} again openstack.cloud.subnet: cloud: "{{ cloud }}" name: "{{ subnet_name }}" state: absent register: subnet - name: Assert not changed assert: that: subnet is not changed - name: Create subnet {{ subnet_name }} on network {{ network_name }} without gateway IP openstack.cloud.subnet: cloud: "{{ cloud }}" network_name: "{{ network_name }}" name: "{{ subnet_name }}" state: present cidr: 192.168.0.0/24 disable_gateway_ip: true register: subnet - name: Assert changed assert: that: subnet is changed - name: Create subnet {{ subnet_name }} on network {{ network_name }} without gateway IP openstack.cloud.subnet: cloud: "{{ cloud }}" network_name: "{{ network_name }}" name: "{{ subnet_name }}" state: present cidr: 192.168.0.0/24 disable_gateway_ip: true register: subnet - name: Assert not changed assert: that: subnet is not changed - name: Delete subnet {{ subnet_name }} again openstack.cloud.subnet: cloud: "{{ cloud }}" name: "{{ subnet_name }}" state: absent register: subnet - name: Delete network segment {{ segment_name }} openstack.cloud.network_segment: cloud: "{{ cloud }}" name: "{{ segment_name }}" network: "{{ network_name }}" state: absent - name: Delete network {{ network_name }} openstack.cloud.network: cloud: "{{ cloud }}" name: "{{ network_name }}" state: absent - name: Subnet Allocation include_tasks: subnet-allocation.yml - name: Subnet Allocations from Subnet Pool include_tasks: subnet-pool.yaml