| {%- from "neutron/map.jinja" import client with context %} |
| {%- if client.enabled %} |
| |
| {%- for identity_name, identity in client.get('resources', {}).get('v2', {}).iteritems() %} |
| |
| wait_for_neutron_agents_v2_{{ identity_name }}: |
| module.run: |
| - name: neutronv2.wait_for_api_ready |
| - retries: 90 |
| - retry_timeout: 1 |
| - cloud_name: {{ identity_name }} |
| |
| {%- if identity.network is defined %} |
| {%- for network_name, network in identity.network.iteritems() %} |
| |
| neutron_openstack_network_{{ network_name }}: |
| neutronv2.network_present: |
| - cloud_name: {{ identity_name }} |
| - name: {{ network_name }} |
| {%- if network.provider_network_type is defined %} |
| - provider:network_type: {{ network.provider_network_type }} |
| {%- endif %} |
| {%- if network.provider_physical_network is defined %} |
| - provider:physical_network: {{ network.provider_physical_network }} |
| {%- endif %} |
| {%- if network.provider_segmentation_id is defined %} |
| - provider:segmentation_id: {{ network.provider_segmentation_id }} |
| {%- endif %} |
| {%- if network.router_external is defined %} |
| - router:external: {{ network.router_external }} |
| {%- endif %} |
| {%- if network.admin_state_up is defined %} |
| - admin_state_up: {{ network.admin_state_up }} |
| {%- endif %} |
| {%- if network.shared is defined %} |
| - shared: {{ network.shared }} |
| {%- endif %} |
| {%- if network.dns_domain is defined %} |
| - dns_domain: {{ network.dns_domain }} |
| {%- endif %} |
| {%- if network.is_default is defined %} |
| - is_default: {{ network.is_default }} |
| {%- endif %} |
| {%- if network.port_security_enabled is defined %} |
| - port_security_enabled: {{ network.port_security_enabled }} |
| {%- endif %} |
| - require: |
| - wait_for_neutron_agents_v2_{{ identity_name }} |
| |
| {%- if network.subnet is defined %} |
| {%- for subnet_name, subnet in network.subnet.iteritems() %} |
| |
| neutron_openstack_subnet_{{ subnet_name }}: |
| neutronv2.subnet_present: |
| - cloud_name: {{ identity_name }} |
| - name: {{ subnet_name }} |
| - network_id: {{ network_name }} |
| |
| {%- if subnet.cidr is defined %} |
| - cidr: {{ subnet.cidr }} |
| {%- endif %} |
| {%- if subnet.ip_version is defined %} |
| - ip_version: {{ subnet.ip_version }} |
| {%- endif %} |
| {%- if subnet.enable_dhcp is defined %} |
| - enable_dhcp: {{ subnet.enable_dhcp }} |
| {%- endif %} |
| {%- if subnet.allocation_pools is defined %} |
| - allocation_pools: {{ subnet.allocation_pools }} |
| {%- endif %} |
| {%- if subnet.gateway_ip is defined %} |
| - gateway_ip: {{ subnet.gateway_ip }} |
| {%- endif %} |
| {%- if subnet.dns_nameservers is defined %} |
| - dns_nameservers: {{ subnet.dns_nameservers }} |
| {%- endif %} |
| {%- if subnet.host_routes is defined %} |
| - host_routes: {{ subnet.host_routes }} |
| {%- endif %} |
| - require: |
| - neutronv2: neutron_openstack_network_{{ network_name }} |
| |
| {%- endfor %} |
| {%- endif %} |
| |
| {%- endfor %} |
| {%- endif %} |
| |
| {%- if identity.subnetpool is defined %} |
| {%- for pool_name, pool in identity.subnetpool.iteritems() %} |
| |
| neutron_openstack_subnetpool_{{ pool_name }}: |
| neutronv2.subnetpool_present: |
| - cloud_name: {{ identity_name }} |
| - name: {{ pool_name }} |
| {%- if pool.default_quota is defined %} |
| - default_quota: {{ pool.default_quota }} |
| {%- endif %} |
| {%- if pool.min_prefixlen is defined %} |
| - min_prefixlen: {{ pool.min_prefixlen }} |
| {%- endif %} |
| {%- if pool.address_scope_id is defined %} |
| - address_scope_id: {{ pool.address_scope_id }} |
| {%- endif %} |
| {%- if pool.default_prefixlen is defined %} |
| - default_prefixlen: {{ pool.default_prefixlen }} |
| {%- endif %} |
| {%- if pool.is_default is defined %} |
| - is_default: {{ pool.is_default }} |
| {%- endif %} |
| {%- if pool.shared is defined %} |
| - shared: {{ pool.shared }} |
| {%- endif %} |
| {%- if pool.prefixes is defined %} |
| - prefixes: |
| {%- for prefix in pool.prefixes %} |
| - {{ prefix }} |
| {%- endfor %} |
| {%- endif %} |
| |
| {%- endfor %} |
| {%- endif %} |
| |
| {%- if identity.rbac is defined %} |
| {%- for rule_name, rule in identity.rbac.network.iteritems() %} |
| |
| {%- if rule.absent is defined and rule.absent %} |
| neutron_openstack_rbac_network_{{ rule_name }}: |
| neutronv2.rbac_absent: |
| - name: {{ rule_name }} |
| - cloud_name: {{ identity_name }} |
| - target_tenant: {{ rule.target_tenant }} |
| - action: {{ rule.action }} |
| - object_id: {{ rule.network }} |
| |
| {%- else %} |
| neutron_openstack_rbac_network_{{ rule_name }}: |
| neutronv2.rbac_present: |
| - name: {{ rule_name }} |
| - cloud_name: {{ identity_name }} |
| - target_tenant: {{ rule.target_tenant }} |
| - action: {{ rule.action }} |
| - object_id: {{ rule.network }} |
| |
| |
| {%- endif %} |
| |
| {%- endfor %} |
| {%- endif %} |
| |
| |
| {%- endfor %} |
| {%- endif %} |