X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=NG-RO%2Fosm_ng_ro%2Fns.py;h=77b391cc3b4fbbfcf4b6b7b44d2682fc578ec886;hb=refs%2Fchanges%2F86%2F12586%2F5;hp=a7c1562861c26c891f40933513554423d265fdfb;hpb=6585ea3e5a2b68ed7ca3afb72ec816cb841f624d;p=osm%2FRO.git diff --git a/NG-RO/osm_ng_ro/ns.py b/NG-RO/osm_ng_ro/ns.py index a7c15628..77b391cc 100644 --- a/NG-RO/osm_ng_ro/ns.py +++ b/NG-RO/osm_ng_ro/ns.py @@ -31,6 +31,7 @@ from cryptography.hazmat.primitives import serialization as crypto_serialization from cryptography.hazmat.primitives.asymmetric import rsa from jinja2 import ( Environment, + select_autoescape, StrictUndefined, TemplateError, TemplateNotFound, @@ -77,8 +78,8 @@ def get_process_id(): if text_id: return text_id - except Exception: - pass + except Exception as error: + logging.exception(f"{error} occured while getting process id") # Return a random id return "".join(random_choice("0123456789abcdef") for _ in range(12)) @@ -380,7 +381,10 @@ class Ns(object): str: [description] """ try: - env = Environment(undefined=StrictUndefined) + env = Environment( + undefined=StrictUndefined, + autoescape=select_autoescape(default_for_string=True, default=True), + ) template = env.from_string(cloud_init_content) return template.render(params or {}) @@ -643,44 +647,57 @@ class Ns(object): Tuple[Dict[str, Any], bool]: [description] """ numa = {} + numa_list = [] epa_vcpu_set = False if guest_epa_quota.get("numa-node-policy"): numa_node_policy = guest_epa_quota.get("numa-node-policy") if numa_node_policy.get("node"): - numa_node = numa_node_policy["node"][0] - - if numa_node.get("num-cores"): - numa["cores"] = numa_node["num-cores"] - epa_vcpu_set = True - - paired_threads = numa_node.get("paired-threads", {}) - if paired_threads.get("num-paired-threads"): - numa["paired-threads"] = int( - numa_node["paired-threads"]["num-paired-threads"] - ) - epa_vcpu_set = True + for numa_node in numa_node_policy["node"]: + vcpu_list = [] + if numa_node.get("id"): + numa["id"] = int(numa_node["id"]) + + if numa_node.get("vcpu"): + for vcpu in numa_node.get("vcpu"): + vcpu_id = int(vcpu.get("id")) + vcpu_list.append(vcpu_id) + numa["vcpu"] = vcpu_list + + if numa_node.get("num-cores"): + numa["cores"] = numa_node["num-cores"] + epa_vcpu_set = True + + paired_threads = numa_node.get("paired-threads", {}) + if paired_threads.get("num-paired-threads"): + numa["paired_threads"] = int( + numa_node["paired-threads"]["num-paired-threads"] + ) + epa_vcpu_set = True - if paired_threads.get("paired-thread-ids"): - numa["paired-threads-id"] = [] + if paired_threads.get("paired-thread-ids"): + numa["paired-threads-id"] = [] - for pair in paired_threads["paired-thread-ids"]: - numa["paired-threads-id"].append( - ( - str(pair["thread-a"]), - str(pair["thread-b"]), + for pair in paired_threads["paired-thread-ids"]: + numa["paired-threads-id"].append( + ( + str(pair["thread-a"]), + str(pair["thread-b"]), + ) ) - ) - if numa_node.get("num-threads"): - numa["threads"] = int(numa_node["num-threads"]) - epa_vcpu_set = True + if numa_node.get("num-threads"): + numa["threads"] = int(numa_node["num-threads"]) + epa_vcpu_set = True - if numa_node.get("memory-mb"): - numa["memory"] = max(int(int(numa_node["memory-mb"]) / 1024), 1) + if numa_node.get("memory-mb"): + numa["memory"] = max(int(int(numa_node["memory-mb"]) / 1024), 1) - return numa, epa_vcpu_set + numa_list.append(numa) + numa = {} + + return numa_list, epa_vcpu_set @staticmethod def _process_guest_epa_cpu_pinning_params( @@ -728,23 +745,39 @@ class Ns(object): """ extended = {} numa = {} + numa_list = [] if target_flavor.get("guest-epa"): guest_epa = target_flavor["guest-epa"] - numa, epa_vcpu_set = Ns._process_guest_epa_numa_params( + numa_list, epa_vcpu_set = Ns._process_guest_epa_numa_params( guest_epa_quota=guest_epa ) if guest_epa.get("mempage-size"): extended["mempage-size"] = guest_epa.get("mempage-size") + if guest_epa.get("cpu-pinning-policy"): + extended["cpu-pinning-policy"] = guest_epa.get("cpu-pinning-policy") + + if guest_epa.get("cpu-thread-pinning-policy"): + extended["cpu-thread-pinning-policy"] = guest_epa.get( + "cpu-thread-pinning-policy" + ) + + if guest_epa.get("numa-node-policy"): + if guest_epa.get("numa-node-policy").get("mem-policy"): + extended["mem-policy"] = guest_epa.get("numa-node-policy").get( + "mem-policy" + ) + tmp_numa, epa_vcpu_set = Ns._process_guest_epa_cpu_pinning_params( guest_epa_quota=guest_epa, vcpu_count=int(target_flavor.get("vcpu-count", 1)), epa_vcpu_set=epa_vcpu_set, ) - numa.update(tmp_numa) + for numa in numa_list: + numa.update(tmp_numa) extended.update( Ns._process_guest_epa_quota_params( @@ -754,7 +787,7 @@ class Ns(object): ) if numa: - extended["numas"] = [numa] + extended["numas"] = numa_list return extended @@ -1649,7 +1682,7 @@ class Ns(object): target_record_id = "{}.{}".format(db_record, existing_item["id"]) item_ = item - if target_vim.startswith("sdn"): + if target_vim.startswith("sdn") or target_vim.startswith("wim"): # item must be sdn-net instead of net if target_vim is a sdn item_ = "sdn_net" target_record_id += ".sdn" @@ -1697,13 +1730,13 @@ class Ns(object): target_record_id = "{}.{}".format(db_record, target_item["id"]) item_ = item - if target_vim.startswith("sdn"): + if target_vim.startswith("sdn") or target_vim.startswith("wim"): # item must be sdn-net instead of net if target_vim is a sdn item_ = "sdn_net" target_record_id += ".sdn" kwargs = {} - self.logger.warning( + self.logger.debug( "ns.calculate_diff_items target_item={}".format(target_item) ) if process_params == Ns._process_flavor_params: @@ -1712,14 +1745,12 @@ class Ns(object): "db": self.db, } ) - self.logger.warning( + self.logger.debug( "calculate_diff_items for flavor kwargs={}".format(kwargs) ) if process_params == Ns._process_vdu_params: - self.logger.warning( - "calculate_diff_items self.fs={}".format(self.fs) - ) + self.logger.debug("calculate_diff_items self.fs={}".format(self.fs)) kwargs.update( { "vnfr_id": vnfr_id, @@ -1733,7 +1764,7 @@ class Ns(object): "ro_nsr_public_key": ro_nsr_public_key, } ) - self.logger.warning("calculate_diff_items kwargs={}".format(kwargs)) + self.logger.debug("calculate_diff_items kwargs={}".format(kwargs)) extra_dict = process_params( target_item, @@ -1871,7 +1902,7 @@ class Ns(object): extra_dict=change.get("extra_dict", None), ) - self.logger.warning("ns.define_all_tasks task={}".format(task)) + self.logger.debug("ns.define_all_tasks task={}".format(task)) tasks_by_target_record_id[change["target_record_id"]] = task db_new_tasks.append(task) @@ -1955,7 +1986,7 @@ class Ns(object): for db_task in db_new_tasks: target_id = db_task.pop("target_id") - self.logger.warning("target_id={} db_task={}".format(target_id, db_task)) + self.logger.debug("target_id={} db_task={}".format(target_id, db_task)) action = db_task.get("action", None) @@ -1976,7 +2007,7 @@ class Ns(object): db_ro_task["vim_info"]["vim_id"] = db_task.get("vim_id", None) nb_ro_tasks += 1 - self.logger.warning("upload_all_tasks db_ro_task={}".format(db_ro_task)) + self.logger.debug("upload_all_tasks db_ro_task={}".format(db_ro_task)) self.db.create("ro_tasks", db_ro_task) self.logger.debug(