Merge "[VVP] updating v6 regex for fip/ip and fip/subnet"
authorSteven Wright <sw3588@att.com>
Fri, 12 Apr 2019 16:37:20 +0000 (16:37 +0000)
committerGerrit Code Review <gerrit@onap.org>
Fri, 12 Apr 2019 16:37:20 +0000 (16:37 +0000)
ice_validator/tests/conftest.py
ice_validator/tests/fixtures/test_ip_parameters_start_at_0/fail/fail.yaml
ice_validator/tests/fixtures/test_ip_parameters_start_at_0/fail/fail2.yaml [deleted file]
ice_validator/tests/fixtures/test_ip_parameters_start_at_0/fail/nested.yaml [deleted file]
ice_validator/tests/fixtures/test_ip_parameters_start_at_0/pass/nested.yaml [deleted file]
ice_validator/tests/fixtures/test_ip_parameters_start_at_0/pass/pass.yaml
ice_validator/tests/fixtures/test_ip_parameters_start_at_0/pass/pass2.yaml [deleted file]
ice_validator/tests/test_ip_parameters_start_at_0.py

index abb6f3a..88dc6b3 100644 (file)
@@ -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():
     """
index 773faac..7cbe54b 100644 (file)
@@ -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 (file)
index 582aa5d..0000000
+++ /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 (file)
index 9283663..0000000
+++ /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 (file)
index d033d0a..0000000
+++ /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
index 22936aa..1de0ddb 100644 (file)
@@ -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 (file)
index fdeeb7b..0000000
+++ /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
index e163b09..c295d69 100644 (file)
@@ -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)