# check vnfrs using this vnfd
_filter["vnfd-id"] = _id
if self.db.get_list("vnfrs", _filter):
- raise EngineException("There is at least one VNF using this descriptor", http_code=HTTPStatus.CONFLICT)
+ raise EngineException("There is at least one VNF instance using this descriptor",
+ http_code=HTTPStatus.CONFLICT)
# check NSD referencing this VNFD
del _filter["vnfd-id"]
- _filter["constituent-vnfd.ANYINDEX.vnfd-id-ref"] = descriptor_id
+ _filter["vnfd-id"] = descriptor_id
if self.db.get_list("nsds", _filter):
- raise EngineException("There is at least one NSD referencing this descriptor",
+ raise EngineException("There is at least one NS package referencing this descriptor",
http_code=HTTPStatus.CONFLICT)
def _validate_input_new(self, indata, storage_params, force=False):
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.get("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"):
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"]))
_filter = self._get_project_filter(session)
_filter["nsd-id"] = _id
if self.db.get_list("nsrs", _filter):
- raise EngineException("There is at least one NS using this descriptor", http_code=HTTPStatus.CONFLICT)
+ raise EngineException("There is at least one NS instance using this descriptor",
+ http_code=HTTPStatus.CONFLICT)
# check NSD referenced by NST
del _filter["nsd-id"]
_filter = self._get_project_filter(session)
_filter["vdur.pdu-id"] = _id
if self.db.get_list("vnfrs", _filter):
- raise EngineException("There is at least one VNF using this PDU", http_code=HTTPStatus.CONFLICT)
+ raise EngineException("There is at least one VNF instance using this PDU", http_code=HTTPStatus.CONFLICT)
class VnfPkgOpTopic(BaseTopic):