- for application_name, deploy_info in nsr_lcm["VCA"].items():
- if deploy_info: # TODO it would be desirable having a and deploy_info.get("deployed"):
- task = asyncio.ensure_future(
- self.n2vc.RemoveCharms(
- deploy_info['model'],
- application_name,
- # self.n2vc_callback,
- # db_nsr,
- # db_nslcmop,
- )
- )
- vca_task_list.append(task)
- vca_task_dict[application_name] = task
- # task.add_done_callback(functools.partial(self.n2vc_callback, deploy_info['model'],
- # deploy_info['application'], None, db_nsr,
- # db_nslcmop, vnf_index))
- self.lcm_tasks.register("ns", nsr_id, nslcmop_id, "delete_charm:" + application_name, task)
+ # for backward compatibility
+ if isinstance(nsr_deployed["VCA"], dict):
+ nsr_deployed["VCA"] = list(nsr_deployed["VCA"].values())
+ db_nsr_update["_admin.deployed.VCA"] = nsr_deployed["VCA"]
+ self.update_db_2("nsrs", nsr_id, db_nsr_update)
+
+ for vca_index, vca_deployed in enumerate(nsr_deployed["VCA"]):
+ if vca_deployed:
+ if await self._destroy_charm(vca_deployed['model'], vca_deployed["application"]):
+ vca_deployed.clear()
+ db_nsr["_admin.deployed.VCA.{}".format(vca_index)] = None
+ else:
+ vca_time_destroy = time()