[VVP] restricting ip index check to resources 63/84763/1
authorstark, steven <steven.stark@att.com>
Tue, 9 Apr 2019 23:51:43 +0000 (16:51 -0700)
committerstark, steven <steven.stark@att.com>
Tue, 9 Apr 2019 23:52:44 +0000 (16:52 -0700)
Restricting check for ip parameter indices to only those parameters
that are used in OS::Neutron::Port

Issue-ID: VVP-190
Change-Id: Ifaf1a40ee47bcaf83657fe58a33e229c4126b4e8
Signed-off-by: stark, steven <steven.stark@att.com>
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 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)