aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorstark, steven <steven.stark@att.com>2019-04-09 16:51:43 -0700
committerstark, steven <steven.stark@att.com>2019-04-09 16:52:44 -0700
commit2282c6dcfd84f1176c7edb29b2d75537fb6fdd77 (patch)
tree0caeb8a7c40d855e995b16786cef7f9608dd34df
parent0e1794537b96149737abf4e6373665eee3579ffe (diff)
[VVP] restricting ip index check to resources
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>
-rw-r--r--ice_validator/tests/fixtures/test_ip_parameters_start_at_0/fail/fail.yaml28
-rw-r--r--ice_validator/tests/fixtures/test_ip_parameters_start_at_0/fail/fail2.yaml55
-rw-r--r--ice_validator/tests/fixtures/test_ip_parameters_start_at_0/fail/nested.yaml46
-rw-r--r--ice_validator/tests/fixtures/test_ip_parameters_start_at_0/pass/nested.yaml46
-rw-r--r--ice_validator/tests/fixtures/test_ip_parameters_start_at_0/pass/pass.yaml29
-rw-r--r--ice_validator/tests/fixtures/test_ip_parameters_start_at_0/pass/pass2.yaml55
-rw-r--r--ice_validator/tests/test_ip_parameters_start_at_0.py18
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)