X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FN2VC.git;a=blobdiff_plain;f=n2vc%2Fk8s_juju_conn.py;h=53f215a5db2a355b3754766aedab4ce6c065009c;hp=d2d9e88ad59548bb87b63b17162c0fc792edf6ed;hb=refs%2Fchanges%2F46%2F8646%2F2;hpb=2ce889dd990cb4e20a1de19dc1a1f974be31d70d diff --git a/n2vc/k8s_juju_conn.py b/n2vc/k8s_juju_conn.py index d2d9e88..53f215a 100644 --- a/n2vc/k8s_juju_conn.py +++ b/n2vc/k8s_juju_conn.py @@ -248,6 +248,16 @@ class K8sJujuConnector(K8sConnector): ): raise NotImplemented() + async def synchronize_repos( + self, + cluster_uuid: str, + name: str + ): + """ + Returns None as currently add_repo is not implemented + """ + return None + """Reset""" async def reset( self, @@ -302,7 +312,8 @@ class K8sJujuConnector(K8sConnector): atomic: bool = True, timeout: float = 300, params: dict = None, - db_dict: dict = None + db_dict: dict = None, + kdu_name: str = None ) -> bool: """Install a bundle @@ -313,6 +324,7 @@ class K8sJujuConnector(K8sConnector): :param timeout int: The time, in seconds, to wait for the install to finish :param params dict: Key-value pairs of instantiation parameters + :param kdu_name: Name of the KDU instance to be installed :return: If successful, returns ? """ @@ -324,14 +336,17 @@ class K8sJujuConnector(K8sConnector): ## # Get or create the model, based on the NS # uuid. - model_name = db_dict["filter"]["_id"] + if kdu_name: + kdu_instance = "{}-{}".format(kdu_name, db_dict["filter"]["_id"]) + else: + kdu_instance = db_dict["filter"]["_id"] - self.log.debug("Checking for model named {}".format(model_name)) - model = await self.get_model(model_name, cluster_uuid=cluster_uuid) + self.log.debug("Checking for model named {}".format(kdu_instance)) + model = await self.get_model(kdu_instance, cluster_uuid=cluster_uuid) if not model: # Create the new model - self.log.debug("Adding model: {}".format(model_name)) - model = await self.add_model(model_name, cluster_uuid=cluster_uuid) + self.log.debug("Adding model: {}".format(kdu_instance)) + model = await self.add_model(kdu_instance, cluster_uuid=cluster_uuid) if model: # TODO: Instantiation parameters @@ -398,7 +413,7 @@ class K8sJujuConnector(K8sConnector): print("[install] Disconnecting model") await model.disconnect() - return True + return kdu_instance raise Exception("Unable to install") async def instances_list( @@ -511,35 +526,18 @@ class K8sJujuConnector(K8sConnector): async def uninstall( self, cluster_uuid: str, - kdu_instance: str, + kdu_instance: str ) -> bool: """Uninstall a KDU instance - :param cluster_uuid str: The UUID of the cluster to uninstall + :param cluster_uuid str: The UUID of the cluster :param kdu_instance str: The unique name of the KDU instance :return: Returns True if successful, or raises an exception """ - removed = False + await self.controller.destroy_models(kdu_instance) - # Remove an application from the model - model = await self.get_model(self.get_namespace(cluster_uuid), cluster_uuid=cluster_uuid) - - if model: - # Get the application - if kdu_instance not in model.applications: - # TODO: Raise a named exception - raise Exception("Application not found.") - - application = model.applications[kdu_instance] - - # Destroy the application - await application.destroy() - - # TODO: Verify removal - - removed = True - return removed + return True """Introspection""" async def inspect_kdu(