From: Steven Wright Date: Fri, 12 Apr 2019 16:37:20 +0000 (+0000) Subject: Merge "[VVP] updating v6 regex for fip/ip and fip/subnet" X-Git-Tag: 5.0.0~48 X-Git-Url: https://gerrit.onap.org/r/gitweb?p=vvp%2Fvalidation-scripts.git;a=commitdiff_plain;h=d0cb7757c638cbc60b80c4b645cfb7319ee2ba81;hp=96f1a57785ffb99b523bb370a08c93f0ac395393 Merge "[VVP] updating v6 regex for fip/ip and fip/subnet" --- diff --git a/ice_validator/tests/conftest.py b/ice_validator/tests/conftest.py index abb6f3a..88dc6b3 100644 --- a/ice_validator/tests/conftest.py +++ b/ice_validator/tests/conftest.py @@ -312,7 +312,6 @@ def pytest_runtest_makereport(item, call): if outcome.get_result().when != "call": return # only capture results of test cases themselves result = TestResult(item, outcome) - ALL_RESULTS.append(result) if ( not item.config.option.continue_on_failure and result.is_base_test @@ -321,8 +320,12 @@ def pytest_runtest_makereport(item, call): msg = "!!Base Test Failure!! Halting test suite execution...\n{}".format( result.error_message ) + result.error_message = msg + ALL_RESULTS.append(result) pytest.exit("{}\n{}\n{}".format(msg, result.files, result.test_case)) + ALL_RESULTS.append(result) + def make_timestamp(): """ 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)