diff options
7 files changed, 73 insertions, 204 deletions
diff --git a/ice_validator/tests/fixtures/test_ip_parameters_start_at_0/fail/fail.yaml b/ice_validator/tests/fixtures/test_ip_parameters_start_at_0/fail/fail.yaml index 773faac..7cbe54b 100644 --- a/ice_validator/tests/fixtures/test_ip_parameters_start_at_0/fail/fail.yaml +++ b/ice_validator/tests/fixtures/test_ip_parameters_start_at_0/fail/fail.yaml @@ -59,3 +59,31 @@ parameters: type: string label: Key Name description: Name of key-pair to be used for compute instance + +resources: + + myport: + type: OS::Neutron::Port + properties: + fixed_ips: + - ip_address: { get_param: vm1_nr1_v6_ip_2} + + myport1: + type: OS::Neutron::Port + properties: + fixed_ips: + - ip_address: { get_param: vm1_nr1_v6_ip_0} + + myport2: + type: OS::Neutron::Port + properties: + fixed_ips: + - ip_address: { get_param: vm1_nr1_ip_2} + + myport3: + type: OS::Neutron::Port + properties: + fixed_ips: + - ip_address: { get_param: vm1_nr1_ip_1} + + diff --git a/ice_validator/tests/fixtures/test_ip_parameters_start_at_0/fail/fail2.yaml b/ice_validator/tests/fixtures/test_ip_parameters_start_at_0/fail/fail2.yaml deleted file mode 100644 index 582aa5d..0000000 --- a/ice_validator/tests/fixtures/test_ip_parameters_start_at_0/fail/fail2.yaml +++ /dev/null @@ -1,55 +0,0 @@ -# -*- coding: utf8 -*- -# ============LICENSE_START======================================================= -# org.onap.vvp/validation-scripts -# =================================================================== -# Copyright © 2018 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: Simple template to deploy a single compute instance - -parameters: - vm1_nr1_ip_1: - type: string - label: Key Name - description: Name of key-pair to be used for compute instance - - vm1_nr1_v6_ip_3: - type: string - label: Key Name - description: Name of key-pair to be used for compute instance - -resources: - vm1_server_0: - type: nested.yaml diff --git a/ice_validator/tests/fixtures/test_ip_parameters_start_at_0/fail/nested.yaml b/ice_validator/tests/fixtures/test_ip_parameters_start_at_0/fail/nested.yaml deleted file mode 100644 index 9283663..0000000 --- a/ice_validator/tests/fixtures/test_ip_parameters_start_at_0/fail/nested.yaml +++ /dev/null @@ -1,46 +0,0 @@ -# -*- coding: utf8 -*- -# ============LICENSE_START======================================================= -# org.onap.vvp/validation-scripts -# =================================================================== -# Copyright © 2018 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: Simple template to deploy a single compute instance - -parameters: - vm1_nr1_ip_4: - type: string - label: Key Name - description: Name of key-pair to be used for compute instance diff --git a/ice_validator/tests/fixtures/test_ip_parameters_start_at_0/pass/nested.yaml b/ice_validator/tests/fixtures/test_ip_parameters_start_at_0/pass/nested.yaml deleted file mode 100644 index d033d0a..0000000 --- a/ice_validator/tests/fixtures/test_ip_parameters_start_at_0/pass/nested.yaml +++ /dev/null @@ -1,46 +0,0 @@ -# -*- coding: utf8 -*- -# ============LICENSE_START======================================================= -# org.onap.vvp/validation-scripts -# =================================================================== -# Copyright © 2018 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: Simple template to deploy a single compute instance - -parameters: - vm1_nr1_ip_0: - type: string - label: Key Name - description: Name of key-pair to be used for compute instance diff --git a/ice_validator/tests/fixtures/test_ip_parameters_start_at_0/pass/pass.yaml b/ice_validator/tests/fixtures/test_ip_parameters_start_at_0/pass/pass.yaml index 22936aa..1de0ddb 100644 --- a/ice_validator/tests/fixtures/test_ip_parameters_start_at_0/pass/pass.yaml +++ b/ice_validator/tests/fixtures/test_ip_parameters_start_at_0/pass/pass.yaml @@ -59,3 +59,32 @@ parameters: type: string label: Key Name description: Name of key-pair to be used for compute instance + +resources: + + myport: + type: OS::Neutron::Port + properties: + fixed_ips: + - ip_address: { get_param: vm1_nr1_ip_0} + + myport1: + type: OS::Neutron::Port + properties: + fixed_ips: + - ip_address: { get_param: vm1_nr1_ip_1} + + myport2: + type: OS::Neutron::Port + properties: + fixed_ips: + - ip_address: { get_param: vm1_nr1_v6_ip_0} + + myport3: + type: OS::Neutron::Port + properties: + fixed_ips: + - ip_address: { get_param: vm1_nr1_v6_ip_1} + + + diff --git a/ice_validator/tests/fixtures/test_ip_parameters_start_at_0/pass/pass2.yaml b/ice_validator/tests/fixtures/test_ip_parameters_start_at_0/pass/pass2.yaml deleted file mode 100644 index fdeeb7b..0000000 --- a/ice_validator/tests/fixtures/test_ip_parameters_start_at_0/pass/pass2.yaml +++ /dev/null @@ -1,55 +0,0 @@ -# -*- coding: utf8 -*- -# ============LICENSE_START======================================================= -# org.onap.vvp/validation-scripts -# =================================================================== -# Copyright © 2018 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: Simple template to deploy a single compute instance - -parameters: - vm1_nr1_ip_0: - type: string - label: Key Name - description: Name of key-pair to be used for compute instance - - vm1_nr1_v6_ip_0: - type: string - label: Key Name - description: Name of key-pair to be used for compute instance - -resources: - vm1_server_0: - type: nested.yaml diff --git a/ice_validator/tests/test_ip_parameters_start_at_0.py b/ice_validator/tests/test_ip_parameters_start_at_0.py index e163b09..c295d69 100644 --- a/ice_validator/tests/test_ip_parameters_start_at_0.py +++ b/ice_validator/tests/test_ip_parameters_start_at_0.py @@ -38,6 +38,7 @@ import re from tests.helpers import validates, check_indices from tests.structures import Heat +from tests.utils import nested_dict IP_PARAM_PATTERN = re.compile(r"^(.*_ip_)(\d+)$") @@ -45,6 +46,19 @@ IP_PARAM_PATTERN = re.compile(r"^(.*_ip_)(\d+)$") @validates("R-71577", "R-40971") def test_ips_start_at_0(yaml_file): - params = Heat(yaml_file).parameters - invalid_params = check_indices(IP_PARAM_PATTERN, params, "IP Parameters") + heat = Heat(filepath=yaml_file) + ports = heat.get_resource_by_type("OS::Neutron::Port") + ip_parameters = [] + + for rid, resource in ports.items(): + fips = nested_dict.get(resource, "properties", "fixed_ips", default={}) + for fip in fips: + ip_address = fip.get("ip_address", {}) + param = ip_address.get("get_param") + if isinstance(param, list): + param = param[0] + if isinstance(param, str): + ip_parameters.append(param) + + invalid_params = check_indices(IP_PARAM_PATTERN, ip_parameters, "IP Parameters") assert not invalid_params, ". ".join(invalid_params) |