fix(configuration): juju related changes and configuration issues
[osm/NBI.git] / osm_nbi / descriptor_topics.py
index 7ea06c5..0ad3e83 100644 (file)
@@ -625,11 +625,16 @@ class VnfdTopic(DescriptorTopic):
         for df in indata["df"]:
             if "lcm-operations-configuration" in df and "operate-vnf-op-config" in df["lcm-operations-configuration"]:
                 configs = df["lcm-operations-configuration"]["operate-vnf-op-config"].get("day1-2", [])
         for df in indata["df"]:
             if "lcm-operations-configuration" in df and "operate-vnf-op-config" in df["lcm-operations-configuration"]:
                 configs = df["lcm-operations-configuration"]["operate-vnf-op-config"].get("day1-2", [])
-                for config in configs:
-                    if config.get("juju"):
-                        if not self._validate_package_folders(storage_params, 'charms'):
-                            raise EngineException("Charm defined in vnf[id={}] but not present in "
-                                                  "package".format(indata["id"]))
+                vdus = df["vdu-profile"]
+                for vdu in vdus:
+                    for config in configs:
+                        if config["id"] == vdu["id"] and utils.find_in_list(
+                            config.get("execution-environment-list", []),
+                            lambda ee: "juju" in ee
+                        ):
+                            if not self._validate_package_folders(storage_params, 'charms'):
+                                raise EngineException("Charm defined in vnf[id={}] but not present in "
+                                                      "package".format(indata["id"]))
 
     def _validate_vdu_cloud_init_in_package(self, storage_params, vdu, indata):
         if not vdu.get("cloud-init-file"):
 
     def _validate_vdu_cloud_init_in_package(self, storage_params, vdu, indata):
         if not vdu.get("cloud-init-file"):
@@ -647,8 +652,10 @@ class VnfdTopic(DescriptorTopic):
                 return
             for day_1_2_config in deployment_flavor["lcm-operations-configuration"]["operate-vnf-op-config"]["day1-2"]:
                 if day_1_2_config["id"] == indata["id"]:
                 return
             for day_1_2_config in deployment_flavor["lcm-operations-configuration"]["operate-vnf-op-config"]["day1-2"]:
                 if day_1_2_config["id"] == indata["id"]:
-                    vnf_configuration = day_1_2_config
-                    if vnf_configuration.get("juju"):
+                    if utils.find_in_list(
+                        day_1_2_config.get("execution-environment-list", []),
+                        lambda ee: "juju" in ee
+                    ):
                         if not self._validate_package_folders(storage_params, 'charms'):
                             raise EngineException("Charm defined in vnf[id={}] but not present in "
                                                   "package".format(indata["id"]))
                         if not self._validate_package_folders(storage_params, 'charms'):
                             raise EngineException("Charm defined in vnf[id={}] but not present in "
                                                   "package".format(indata["id"]))