return {"find_params": find_params}
+ @staticmethod
+ def _get_resource_allocation_params(
+ quota_descriptor: Dict[str, Any],
+ ) -> Dict[str, Any]:
+ """Read the quota_descriptor from vnfd and fetch the resource allocation properties from the
+ descriptor object.
+
+ Args:
+ quota_descriptor (Dict[str, Any]): cpu/mem/vif/disk-io quota descriptor
+
+ Returns:
+ Dict[str, Any]: quota params for limit, reserve, shares from the descriptor object
+ """
+ quota = {}
+
+ if quota_descriptor.get("limit"):
+ quota["limit"] = int(quota_descriptor["limit"])
+
+ if quota_descriptor.get("reserve"):
+ quota["reserve"] = int(quota_descriptor["reserve"])
+
+ if quota_descriptor.get("shares"):
+ quota["shares"] = int(quota_descriptor["shares"])
+
+ return quota
+
def deploy(self, session, indata, version, nsr_id, *args, **kwargs):
self.logger.debug("ns.deploy nsr_id={} indata={}".format(nsr_id, indata))
validate_input(indata, deploy_schema)
index += 1
def _process_flavor_params(target_flavor, vim_info, target_record_id):
- def _get_resource_allocation_params(quota_descriptor):
- """
- read the quota_descriptor from vnfd and fetch the resource allocation properties from the
- descriptor object
- :param quota_descriptor: cpu/mem/vif/disk-io quota descriptor
- :return: quota params for limit, reserve, shares from the descriptor object
- """
- quota = {}
-
- if quota_descriptor.get("limit"):
- quota["limit"] = int(quota_descriptor["limit"])
-
- if quota_descriptor.get("reserve"):
- quota["reserve"] = int(quota_descriptor["reserve"])
-
- if quota_descriptor.get("shares"):
- quota["shares"] = int(quota_descriptor["shares"])
-
- return quota
-
nonlocal indata
flavor_data = {
epa_vcpu_set = True
if target_flavor["guest-epa"].get("cpu-quota") and not epa_vcpu_set:
- cpuquota = _get_resource_allocation_params(
+ cpuquota = Ns._get_resource_allocation_params(
target_flavor["guest-epa"].get("cpu-quota")
)
extended["cpu-quota"] = cpuquota
if target_flavor["guest-epa"].get("mem-quota"):
- vduquota = _get_resource_allocation_params(
+ vduquota = Ns._get_resource_allocation_params(
target_flavor["guest-epa"].get("mem-quota")
)
extended["mem-quota"] = vduquota
if target_flavor["guest-epa"].get("disk-io-quota"):
- diskioquota = _get_resource_allocation_params(
+ diskioquota = Ns._get_resource_allocation_params(
target_flavor["guest-epa"].get("disk-io-quota")
)
extended["disk-io-quota"] = diskioquota
if target_flavor["guest-epa"].get("vif-quota"):
- vifquota = _get_resource_allocation_params(
+ vifquota = Ns._get_resource_allocation_params(
target_flavor["guest-epa"].get("vif-quota")
)
expected_result = {
"find_params": {},
}
- target_image = {"no_image": "to_see_here"}
+ target_image = {
+ "no_image": "to_see_here",
+ }
result = Ns._process_image_params(
target_image=target_image,
},
},
}
- target_image = {"image": "cirros"}
+ target_image = {
+ "image": "cirros",
+ }
result = Ns._process_image_params(
target_image=target_image,
},
},
}
- target_image = {"vim_image_id": "123456"}
+ target_image = {
+ "vim_image_id": "123456",
+ }
result = Ns._process_image_params(
target_image=target_image,
},
},
}
- target_image = {"image_checksum": "e3fc50a88d0a364313df4b21ef20c29e"}
+ target_image = {
+ "image_checksum": "e3fc50a88d0a364313df4b21ef20c29e",
+ }
result = Ns._process_image_params(
target_image=target_image,
)
self.assertDictEqual(expected_result, result)
+
+ def test__get_resource_allocation_params_with_empty_target_image(self):
+ expected_result = {}
+ quota_descriptor = {}
+
+ result = Ns._get_resource_allocation_params(
+ quota_descriptor=quota_descriptor,
+ )
+
+ self.assertDictEqual(expected_result, result)
+
+ def test__get_resource_allocation_params_with_wrong_target_image(self):
+ expected_result = {}
+ quota_descriptor = {
+ "no_quota": "present_here",
+ }
+
+ result = Ns._get_resource_allocation_params(
+ quota_descriptor=quota_descriptor,
+ )
+
+ self.assertDictEqual(expected_result, result)
+
+ def test__get_resource_allocation_params_with_limit(self):
+ expected_result = {
+ "limit": 10,
+ }
+ quota_descriptor = {
+ "limit": "10",
+ }
+
+ result = Ns._get_resource_allocation_params(
+ quota_descriptor=quota_descriptor,
+ )
+
+ self.assertDictEqual(expected_result, result)
+
+ def test__get_resource_allocation_params_with_reserve(self):
+ expected_result = {
+ "reserve": 20,
+ }
+ quota_descriptor = {
+ "reserve": "20",
+ }
+
+ result = Ns._get_resource_allocation_params(
+ quota_descriptor=quota_descriptor,
+ )
+
+ self.assertDictEqual(expected_result, result)
+
+ def test__get_resource_allocation_params_with_shares(self):
+ expected_result = {
+ "shares": 30,
+ }
+ quota_descriptor = {
+ "shares": "30",
+ }
+
+ result = Ns._get_resource_allocation_params(
+ quota_descriptor=quota_descriptor,
+ )
+
+ self.assertDictEqual(expected_result, result)
+
+ def test__get_resource_allocation_params(self):
+ expected_result = {
+ "limit": 10,
+ "reserve": 20,
+ "shares": 30,
+ }
+ quota_descriptor = {
+ "limit": "10",
+ "reserve": "20",
+ "shares": "30",
+ }
+
+ result = Ns._get_resource_allocation_params(
+ quota_descriptor=quota_descriptor,
+ )
+
+ self.assertDictEqual(expected_result, result)
--- /dev/null
+#######################################################################################
+# Copyright ETSI Contributors and Others.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file 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.
+#######################################################################################
+---
+other:
+ - |
+ Extraction of _get_resource_allocation_params() from being a nested function inside Ns.deploy().
+ The _get_resource_allocation_params() function is now a static method inside the Ns class. This
+ eases the testability of _get_resource_allocation_params().
+ With this extraction a unit test was introduced to cover the extracted function.