From 9c7ab065e6477c035ffc6addf384abcef2e9588a Mon Sep 17 00:00:00 2001 From: "stark, steven" Date: Tue, 12 Nov 2019 17:18:22 -0800 Subject: [VVP] updating ports.py to check str_replace params allowed_address_pairs/ip_address can use CIDR format, and is often done by using the intrinsic function str_replace. This update will naively go through each param in a str_replace to check if one is a valid allowed_address_pair/ip_address parameter. Issue-ID: VVP-341 Signed-off-by: stark, steven Change-Id: I24e7ad6b74e5795b577d99468517287be46cd2b7 --- .../pass/contrail/pass.yaml | 65 ----- .../pass/contrail/vmi_pass.yaml | 61 ----- .../pass/contrail/vmi_pass_exemption.yaml | 83 ------- .../pass/neutron/valid_template.yaml | 258 ------------------- .../pass/pass.yaml | 273 +++++++++++++++++++++ 5 files changed, 273 insertions(+), 467 deletions(-) delete mode 100644 ice_validator/tests/fixtures/test_allowed_address_pairs_include_vm_type_network_role/pass/contrail/pass.yaml delete mode 100644 ice_validator/tests/fixtures/test_allowed_address_pairs_include_vm_type_network_role/pass/contrail/vmi_pass.yaml delete mode 100644 ice_validator/tests/fixtures/test_allowed_address_pairs_include_vm_type_network_role/pass/contrail/vmi_pass_exemption.yaml delete mode 100644 ice_validator/tests/fixtures/test_allowed_address_pairs_include_vm_type_network_role/pass/neutron/valid_template.yaml create mode 100644 ice_validator/tests/fixtures/test_allowed_address_pairs_include_vm_type_network_role/pass/pass.yaml (limited to 'ice_validator/tests/fixtures/test_allowed_address_pairs_include_vm_type_network_role/pass') diff --git a/ice_validator/tests/fixtures/test_allowed_address_pairs_include_vm_type_network_role/pass/contrail/pass.yaml b/ice_validator/tests/fixtures/test_allowed_address_pairs_include_vm_type_network_role/pass/contrail/pass.yaml deleted file mode 100644 index df4ca00..0000000 --- a/ice_validator/tests/fixtures/test_allowed_address_pairs_include_vm_type_network_role/pass/contrail/pass.yaml +++ /dev/null @@ -1,65 +0,0 @@ -heat_template_version: 2015-04-30 - -description: fdsafsfsa - -parameters: - - TESTDB_priv_floating_ip: - type: string - description: asnfjl - - TESTDB_int_private_floating_ips: - type: comma_delimited_list - description: asnfjl - -resources: - - TESTDB_0_priv_vmi_0: - type: OS::ContrailV2::VirtualMachineInterface - properties: - virtual_machine_interface_properties: - virtual_machine_interface_properties_service_interface_type: { - "priv_interface_type" - } - virtual_network_refs: - - get_param: priv_net_fqdn - virtual_machine_interface_allowed_address_pairs: - { - virtual_machine_interface_allowed_address_pairs_allowed_address_pair: - [{ - virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip: - { - virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: TESTDB_priv_floating_ip }, - virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: "dsafasdF", - }, - virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: "sdnfjkas", - virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: "sadfnjasdfknj", - }], - } - - - TESTDB_0_int_private_vmi_0: - type: OS::ContrailV2::VirtualMachineInterface - properties: - virtual_machine_interface_properties: - virtual_machine_interface_properties_service_interface_type: { - "priv_interface_type" - } - virtual_network_refs: - - get_param: priv_net_fqdn - virtual_machine_interface_allowed_address_pairs: - { - virtual_machine_interface_allowed_address_pairs_allowed_address_pair: - [{ - virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip: - { - virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: [TESTDB_int_private_floating_ips, 0] }, - virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len: "dsafasdF", - }, - virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac: "sdnfjkas", - virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode: "sadfnjasdfknj", - }], - } - - #testnlksadf: - # type: http://www.google.com diff --git a/ice_validator/tests/fixtures/test_allowed_address_pairs_include_vm_type_network_role/pass/contrail/vmi_pass.yaml b/ice_validator/tests/fixtures/test_allowed_address_pairs_include_vm_type_network_role/pass/contrail/vmi_pass.yaml deleted file mode 100644 index 959c846..0000000 --- a/ice_validator/tests/fixtures/test_allowed_address_pairs_include_vm_type_network_role/pass/contrail/vmi_pass.yaml +++ /dev/null @@ -1,61 +0,0 @@ -# -*- coding: utf8 -*- -# ============LICENSE_START======================================================= -# org.onap.vvp/validation-scripts -# =================================================================== -# Copyright © 2019 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the "License"); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the "License"); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# - -heat_template_version: 2015-04-30 - -description: fdsafsfsa - -parameters: - - fw_oam_floating_ip: - type: string - -resources: - - fw_0_oam_vmi_0: - type: OS::ContrailV2::VirtualMachineInterface - properties: - virtual_machine_interface_allowed_address_pairs: - virtual_machine_interface_allowed_address_pairs_allowed_address_pair: - [{ - virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip: - { - virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: fw_oam_floating_ip }, - }, - }] diff --git a/ice_validator/tests/fixtures/test_allowed_address_pairs_include_vm_type_network_role/pass/contrail/vmi_pass_exemption.yaml b/ice_validator/tests/fixtures/test_allowed_address_pairs_include_vm_type_network_role/pass/contrail/vmi_pass_exemption.yaml deleted file mode 100644 index 2d9ca4a..0000000 --- a/ice_validator/tests/fixtures/test_allowed_address_pairs_include_vm_type_network_role/pass/contrail/vmi_pass_exemption.yaml +++ /dev/null @@ -1,83 +0,0 @@ -# -*- coding: utf8 -*- -# ============LICENSE_START======================================================= -# org.onap.vvp/validation-scripts -# =================================================================== -# Copyright © 2019 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the "License"); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the "License"); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# - -heat_template_version: 2015-04-30 - -description: fdsafsfsa - -parameters: - - other_format: - type: string - - other_ips: - type: comma_delimited_list - -resources: - - fw_0_oam_vmi_0: - type: OS::ContrailV2::VirtualMachineInterface - metadata: - aap_exempt: - - other_format - properties: - virtual_machine_interface_allowed_address_pairs: - virtual_machine_interface_allowed_address_pairs_allowed_address_pair: - [{ - virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip: - { - virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: other_format }, - }, - }] - - fw_0_oam_vmi_1: - type: OS::ContrailV2::VirtualMachineInterface - metadata: - aap_exempt: - - other_format - - other_ips - properties: - virtual_machine_interface_allowed_address_pairs: - virtual_machine_interface_allowed_address_pairs_allowed_address_pair: - [{ - virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip: - { - virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix: { get_param: [other_ips, 1] }, - }, - }] \ No newline at end of file diff --git a/ice_validator/tests/fixtures/test_allowed_address_pairs_include_vm_type_network_role/pass/neutron/valid_template.yaml b/ice_validator/tests/fixtures/test_allowed_address_pairs_include_vm_type_network_role/pass/neutron/valid_template.yaml deleted file mode 100644 index 58444b3..0000000 --- a/ice_validator/tests/fixtures/test_allowed_address_pairs_include_vm_type_network_role/pass/neutron/valid_template.yaml +++ /dev/null @@ -1,258 +0,0 @@ -# -*- coding: utf8 -*- -# ============LICENSE_START======================================================= -# org.onap.vvp/validation-scripts -# =================================================================== -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# =================================================================== -# -# Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the "License"); -# you may not use this software except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# -# -# Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the "License"); -# you may not use this documentation except in compliance with the License. -# You may obtain a copy of the License at -# -# https://creativecommons.org/licenses/by/4.0/ -# -# Unless required by applicable law or agreed to in writing, documentation -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ============LICENSE_END============================================ -# -# ---- -heat_template_version: 2015-04-30 - -description: Heat template description - -parameters: - - vnf_id: - type: string - description: Unique ID for this VNF instance - - vf_module_id: - type: string - description: Unique ID for this VF module - - vnf_name: - type: string - description: Unique name for this VNF instance - - db_names: - type: comma_delimited_list - description: Names attribute for the VMs - - lb_names: - type: comma_delimited_list - description: Names attribute for the VMs - - lb_flavor_name: - type: string - description: flavor to be used to create this vm must be one of the following flavors - - db_flavor_name: - type: string - description: flavor to be used to create this vm must be one of the following flavors - - availability_zone_0: - type: string - description: availability zone to be used - - exnet_net_name: - type: string - description: network name for the external network extnet - - exnet_net_id: - type: string - description: network id for the external network extnet - - int_intranet_net_id: - type: string - description: network id for the internal network intranet - - db_int_intranet_ip_0: - type: string - description: db_int_intranet_ip_0 - - db_int_intranet_v6_ip_0: - type: string - description: db_int_intranet_v6_ip_0 - - db_int_intranet_ips: - type: comma_delimited_list - description: db_int_intranet_ips - - db_int_intranet_v6_ips: - type: comma_delimited_list - description: db_int_intranet_v6_ips - - db_int_intranet_floating_ip: - type: string - description: db_int_intranet_floating_ip - - db_int_intranet_floating_v6_ip: - type: string - description: db_int_intranet_floating_v6_ip - - lb_extnet_ip_0: - type: string - description: lb_extnet_ip_0 - - lb_extnet_v6_ip_0: - type: string - description: lb_extnet_v6_ip_0 - - lb_extnet_ips: - type: comma_delimited_list - description: lb_extnet_ips - - lb_extnet_v6_ips: - type: comma_delimited_list - description: lb_extnet_v6_ips - - lb_extnet_floating_ip: - type: string - description: lb_extnet_floating_ip - - lb_extnet_floating_v6_ip: - type: string - description: lb_extnet_floating_v6_ip - -resources: - - lb_server_0: - type: OS::Nova::Server - properties: - availability_zone: { get_param: availability_zone_0 } - name: { get_param: [lb_names, 0] } - flavor: { get_param: lb_flavor_name} - networks: - - port: { get_resource: lb_0_extnet_0_port } - - port: { get_resource: lb_1_extnet_0_port } - - port: { get_resource: lb_2_extnet_0_port } - - port: { get_resource: lb_3_extnet_0_port } - - port: { get_resource: lb_4_extnet_0_port } - - port: { get_resource: lb_5_extnet_0_port } - metadata: - vnf_name: { get_param: vnf_name } - vnf_id: { get_param: vnf_id } - vf_module_id: { get_param: vf_module_id } - - db_server_0: - type: OS::Nova::Server - properties: - availability_zone: { get_param: availability_zone_0 } - name: { get_param: [db_names, 1] } - flavor: { get_param: db_flavor_name} - networks: - - port: { get_resource: db_0_int_intranet_0_port } - - port: { get_resource: db_1_int_intranet_0_port } - - port: { get_resource: db_2_int_intranet_0_port } - - port: { get_resource: db_3_int_intranet_0_port } - - port: { get_resource: db_4_int_intranet_0_port } - - port: { get_resource: db_5_int_intranet_0_port } - metadata: - vnf_name: { get_param: vnf_name } - vnf_id: { get_param: vnf_id } - vf_module_id: { get_param: vf_module_id } - - db_0_int_intranet_0_port: - type: OS::Neutron::Port - properties: - network: { get_param: int_intranet_net_id } - allowed_address_pairs: - - ip_address: { get_param: db_int_intranet_ip_0 } - - db_1_int_intranet_0_port: - type: OS::Neutron::Port - properties: - network: { get_param: int_intranet_net_id } - allowed_address_pairs: - - ip_address: { get_param: db_int_intranet_v6_ip_0 } - - db_2_int_intranet_0_port: - type: OS::Neutron::Port - properties: - network: { get_param: int_intranet_net_id } - allowed_address_pairs: - - ip_address: { get_param: [db_int_intranet_ips, 0] } - - db_3_int_intranet_0_port: - type: OS::Neutron::Port - properties: - network: { get_param: int_intranet_net_id } - allowed_address_pairs: - - ip_address: { get_param: [db_int_intranet_v6_ips, 0] } - - db_4_int_intranet_0_port: - type: OS::Neutron::Port - properties: - network: { get_param: int_intranet_net_id } - allowed_address_pairs: - - ip_address: { get_param: db_int_intranet_floating_ip } - - db_5_int_intranet_0_port: - type: OS::Neutron::Port - properties: - network: { get_param: int_intranet_net_id } - allowed_address_pairs: - - ip_address: { get_param: db_int_intranet_floating_v6_ip } - - lb_0_extnet_0_port: - type: OS::Neutron::Port - properties: - network: { get_param: extnet_net_name } - allowed_address_pairs: - - ip_address: { get_param: lb_extnet_ip_0 } - - lb_1_extnet_0_port: - type: OS::Neutron::Port - properties: - network: { get_param: extnet_net_id } - allowed_address_pairs: - - ip_address: { get_param: lb_extnet_v6_ip_0 } - - lb_2_extnet_0_port: - type: OS::Neutron::Port - properties: - network: { get_param: extnet_net_name } - allowed_address_pairs: - - ip_address: { get_param: [lb_extnet_ips, 0] } - - lb_3_extnet_0_port: - type: OS::Neutron::Port - properties: - network: { get_param: extnet_net_id } - allowed_address_pairs: - - ip_address: { get_param: [lb_extnet_v6_ips, 0] } - - lb_4_extnet_0_port: - type: OS::Neutron::Port - properties: - network: { get_param: extnet_net_name } - allowed_address_pairs: - - ip_address: { get_param: lb_extnet_floating_ip } - - lb_5_extnet_0_port: - type: OS::Neutron::Port - properties: - network: { get_param: extnet_net_id } - allowed_address_pairs: - - ip_address: { get_param: lb_extnet_floating_v6_ip } diff --git a/ice_validator/tests/fixtures/test_allowed_address_pairs_include_vm_type_network_role/pass/pass.yaml b/ice_validator/tests/fixtures/test_allowed_address_pairs_include_vm_type_network_role/pass/pass.yaml new file mode 100644 index 0000000..d7cbd54 --- /dev/null +++ b/ice_validator/tests/fixtures/test_allowed_address_pairs_include_vm_type_network_role/pass/pass.yaml @@ -0,0 +1,273 @@ +# -*- coding: utf8 -*- +# ============LICENSE_START======================================================= +# org.onap.vvp/validation-scripts +# =================================================================== +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# =================================================================== +# +# Unless otherwise specified, all software contained herein is licensed +# under the Apache License, Version 2.0 (the "License"); +# you may not use this software except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# +# +# Unless otherwise specified, all documentation contained herein is licensed +# under the Creative Commons License, Attribution 4.0 Intl. (the "License"); +# you may not use this documentation except in compliance with the License. +# You may obtain a copy of the License at +# +# https://creativecommons.org/licenses/by/4.0/ +# +# Unless required by applicable law or agreed to in writing, documentation +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# ============LICENSE_END============================================ +# +# +--- +heat_template_version: 2015-04-30 + +description: Heat template description + +parameters: + + vnf_id: + type: string + description: Unique ID for this VNF instance + + vf_module_id: + type: string + description: Unique ID for this VF module + + vnf_name: + type: string + description: Unique name for this VNF instance + + db_names: + type: comma_delimited_list + description: Names attribute for the VMs + + lb_names: + type: comma_delimited_list + description: Names attribute for the VMs + + lb_flavor_name: + type: string + description: flavor to be used to create this vm must be one of the following flavors + + db_flavor_name: + type: string + description: flavor to be used to create this vm must be one of the following flavors + + availability_zone_0: + type: string + description: availability zone to be used + + exnet_net_name: + type: string + description: network name for the external network extnet + + exnet_net_id: + type: string + description: network id for the external network extnet + + int_intranet_net_id: + type: string + description: network id for the internal network intranet + + db_int_intranet_floating_ip: + type: string + description: db_int_intranet_floating_ip + + db_int_intranet_floating_v6_ip: + type: string + description: db_int_intranet_floating_v6_ip + + db_int_intranet_floating_ips: + type: comma_delimited_list + description: db_int_intranet_floating_ips + + db_int_intranet_floating_v6_ips: + type: comma_delimited_list + description: db_int_intranet_floating_v6_ips + + db_int_intranet_floating_ip: + type: string + description: db_int_intranet_floating_ip + + lb_extnet_floating_ip: + type: string + description: lb_extnet_floating_ip + + lb_extnet_floating_v6_ip: + type: string + description: lb_extnet_floating_v6_ip + + lb_extnet_ips: + type: comma_delimited_list + description: lb_extnet_ips + + lb_extnet_v6_ips: + type: comma_delimited_list + description: lb_extnet_v6_ips + + lb_extnet_floating_ip: + type: string + description: lb_extnet_floating_ip + + cidr: + type: string + description: nafskldnaklsdf + +resources: + + lb_server_0: + type: OS::Nova::Server + properties: + availability_zone: { get_param: availability_zone_0 } + name: { get_param: [lb_names, 0] } + flavor: { get_param: lb_flavor_name} + networks: + - port: { get_resource: lb_0_extnet_0_port } + - port: { get_resource: lb_1_extnet_0_port } + - port: { get_resource: lb_2_extnet_0_port } + - port: { get_resource: lb_3_extnet_0_port } + - port: { get_resource: lb_4_extnet_0_port } + - port: { get_resource: lb_5_extnet_0_port } + - port: { get_resource: lb_6_extnet_0_port } + metadata: + vnf_name: { get_param: vnf_name } + vnf_id: { get_param: vnf_id } + vf_module_id: { get_param: vf_module_id } + + db_server_0: + type: OS::Nova::Server + properties: + availability_zone: { get_param: availability_zone_0 } + name: { get_param: [db_names, 1] } + flavor: { get_param: db_flavor_name} + networks: + - port: { get_resource: db_0_int_intranet_0_port } + - port: { get_resource: db_1_int_intranet_0_port } + - port: { get_resource: db_2_int_intranet_0_port } + - port: { get_resource: db_3_int_intranet_0_port } + - port: { get_resource: db_4_int_intranet_0_port } + - port: { get_resource: db_5_int_intranet_0_port } + metadata: + vnf_name: { get_param: vnf_name } + vnf_id: { get_param: vnf_id } + vf_module_id: { get_param: vf_module_id } + + db_0_int_intranet_port_0: + type: OS::Neutron::Port + properties: + network: { get_param: int_intranet_net_id } + allowed_address_pairs: + - ip_address: { get_param: db_int_intranet_floating_ip } + + db_0_int_intranet_port_1: + type: OS::Neutron::Port + properties: + network: { get_param: int_intranet_net_id } + allowed_address_pairs: + - ip_address: { get_param: db_int_intranet_floating_v6_ip } + + db_0_int_intranet_port_2: + type: OS::Neutron::Port + properties: + network: { get_param: int_intranet_net_id } + allowed_address_pairs: + - ip_address: { get_param: [db_int_intranet_floating_ips, 0] } + + db_0_int_intranet_port_3: + type: OS::Neutron::Port + properties: + network: { get_param: int_intranet_net_id } + allowed_address_pairs: + - ip_address: { get_param: [db_int_intranet_floating_v6_ips, 0] } + + db_0_int_intranet_port_4: + type: OS::Neutron::Port + properties: + network: { get_param: int_intranet_net_id } + allowed_address_pairs: + - ip_address: { get_param: db_int_intranet_floating_ip } + + db_0_int_intranet_port_5: + type: OS::Neutron::Port + properties: + network: { get_param: int_intranet_net_id } + allowed_address_pairs: + - ip_address: { get_param: db_int_intranet_floating_v6_ip } + + lb_0_extnet_port_0: + type: OS::Neutron::Port + properties: + network: { get_param: extnet_net_name } + allowed_address_pairs: + - ip_address: { get_param: lb_extnet_floating_ip } + + lb_0_extnet_port_1: + type: OS::Neutron::Port + properties: + network: { get_param: extnet_net_id } + allowed_address_pairs: + - ip_address: { get_param: lb_extnet_floating_v6_ip } + + lb_0_extnet_port_2: + type: OS::Neutron::Port + properties: + network: { get_param: extnet_net_name } + allowed_address_pairs: + - ip_address: { get_param: [lb_extnet_ips, 0] } + metadata: + aap_exempt: + - lb_extnet_ips + + lb_0_extnet_port_3: + type: OS::Neutron::Port + properties: + network: { get_param: extnet_net_id } + allowed_address_pairs: + - ip_address: { get_param: [lb_extnet_v6_ips, 0] } + metadata: + aap_exempt: + - lb_extnet_v6_ips + + lb_0_extnet_port_4: + type: OS::Neutron::Port + properties: + network: { get_param: extnet_net_name } + allowed_address_pairs: + - ip_address: { get_param: lb_extnet_floating_ip } + + lb_0_extnet_port_5: + type: OS::Neutron::Port + properties: + network: { get_param: extnet_net_id } + allowed_address_pairs: + - ip_address: { get_param: lb_extnet_floating_v6_ip } + + lb_0_extnet_port_6: + type: OS::Neutron::Port + properties: + network: { get_param: extnet_net_id } + allowed_address_pairs: + ip_address: + str_replace: + template: $IPADDR$CIDR + params: + $CIDR: { get_param: cidr } + $IPADDR: { get_param: lb_extnet_floating_v6_ip } -- cgit 1.2.3-korg