X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FIM.git;a=blobdiff_plain;f=osm_im%2Fim_translation.py;fp=osm_im%2Fim_translation.py;h=466026c29c7c0e3012de50d647b6d4df69557f65;hp=78a293100fdc9ee39e05c8bfc21c0af8201de25c;hb=7f410e9c22072883e207b9a8f9832ffdd7e80834;hpb=c9d9482a0d747bfe72d9f0c18ca6495056efad91 diff --git a/osm_im/im_translation.py b/osm_im/im_translation.py index 78a2931..466026c 100644 --- a/osm_im/im_translation.py +++ b/osm_im/im_translation.py @@ -61,6 +61,7 @@ def translate_im_vnfd_to_sol006(im_vnfd): _add_im_kdus_to_sol006_vnfd(im_vnfd, sol006_vnfd) _add_im_k8s_clusters_to_sol006_vnfd(im_vnfd, sol006_vnfd) _add_im_placement_groups_to_sol006_vnfd(im_vnfd, sol006_vnfd) + _cleanup_juju_in_configurations(sol006_vnfd) return {"vnfd": sol006_vnfd} @@ -417,6 +418,35 @@ def _prepare_dict_entries_for_configurations(sol006_vnfd): } } +def _cleanup_juju_in_configurations(sol006_vnfd): + configs = sol006_vnfd["df"][0].get("lcm-operations-configuration") + if configs: + for day12_config in configs["operate-vnf-op-config"]["day1-2"]: + if "juju" in day12_config: + ee_name = _create_execution_environment_for_juju(day12_config, day12_config["juju"]["charm"]) + for primitive in day12_config.get("config-primitive", []): + primitive["execution-environment-ref"] = ee_name + for primitive in day12_config.get("initial-config-primitive", []): + primitive["execution-environment-ref"] = ee_name + for primitive in day12_config.get("terminate-config-primitive", []): + primitive["execution-environment-ref"] = ee_name + day12_config.pop("juju", None) + +def _create_execution_environment_for_juju(day12_config, charm_name): + if not "execution-environment-list" in day12_config: + day12_config["execution-environment-list"] = [] + + day12_config["execution-environment-list"].append( + { + "id": charm_name + "-ee", + "juju": { + "charm": charm_name + } + } + ) + + return charm_name + "-ee" + def _add_im_vnf_configuration_to_sol006_vnfd(im_vnfd, sol006_vnfd): vnf_configuration = im_vnfd.get("vnf-configuration") if not vnf_configuration: