Add osmclient commands for cluster deregistration 35/14735/6
authorgarciadeblas <gerardo.garciadeblas@telefonica.com>
Tue, 12 Nov 2024 11:07:30 +0000 (12:07 +0100)
committergarciadeblas <gerardo.garciadeblas@telefonica.com>
Mon, 25 Nov 2024 09:54:13 +0000 (10:54 +0100)
Change-Id: I8e230910f25c0f9359bae9501a26702795631f7c
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
osmclient/cli_commands/cluster.py
osmclient/scripts/osm.py
osmclient/sol005/cluster.py

index 45f8eb3..8fce6ac 100755 (executable)
@@ -271,3 +271,18 @@ def cluster_register(
         cluster["description"] = description
     cluster["bootstrap"] = bootstrap
     ctx.obj.cluster.register(name, cluster)
+
+
+@click.command(name="cluster-deregister", short_help="deregisters a K8s cluster")
+@click.argument("name")
+@click.option(
+    "--force", is_flag=True, help="forces the deletion from the DB (not recommended)"
+)
+@click.pass_context
+def cluster_deregister(ctx, name, force):
+    """deregisters a K8s cluster
+
+    NAME: name or ID of the K8s cluster to be deregistered
+    """
+    logger.debug("")
+    ctx.obj.cluster.deregister(name, force=force)
index 85bf3ce..0aff0a5 100755 (executable)
@@ -198,6 +198,7 @@ def cli():
         cli_osm.add_command(cluster.cluster_get_credentials)
         cli_osm.add_command(cluster.cluster_get_kubeconfig)
         cli_osm.add_command(cluster.cluster_register)
+        cli_osm.add_command(cluster.cluster_deregister)
 
         cli_osm.add_command(netslice_instance.nsi_create1)
         cli_osm.add_command(netslice_instance.nsi_create2)
index 897fd66..2bbc157 100644 (file)
@@ -98,6 +98,15 @@ class Cluster(GenericOSMAPIObject):
         endpoint = f"{self._apiBase}/register"
         self.create(name, cluster, None, endpoint=endpoint)
 
+    def deregister(self, name, force):
+        """
+        Deregisters a K8s cluster
+        """
+        self._logger.debug("")
+        item = self.get(name)
+        endpoint = f"{self._apiBase}/{item['_id']}/deregister"
+        self.create(name, {}, None, endpoint=endpoint)
+
     def upgrade(self, name, cluster_changes):
         """
         Upgrades a K8s cluster