K8s action support
[osm/N2VC.git] / n2vc / k8s_conn.py
index a82919a..b1f3230 100644 (file)
@@ -162,7 +162,8 @@ class K8sConnector(abc.ABC, Loggable):
             timeout: float = 300,
             params: dict = None,
             db_dict: dict = None,
-            kdu_name: str = None
+            kdu_name: str = None,
+            namespace: str = None
     ):
         """
         Deploys of a new KDU instance. It would implicitly rely on the `install` call to deploy the Chart/Bundle
@@ -183,6 +184,7 @@ class K8sConnector(abc.ABC, Loggable):
                         It contains a dict with {collection: <str>, filter: {},  path: <str>},
                             e.g. {collection: "nsrs", filter: {_id: <nsd-id>, path: "_admin.deployed.K8S.3"}
         :param kdu_name: Name of the KDU instance to be installed
+        :param namespace: K8s namespace to use for the KDU instance
         :return: True if successful
         """
 
@@ -252,6 +254,28 @@ class K8sConnector(abc.ABC, Loggable):
         """
 
     @abc.abstractmethod
+    async def exec_primitive(
+        self,
+        cluster_uuid: str = None,
+        kdu_instance: str = None,
+        primitive_name: str = None,
+        timeout: float = 300,
+        params: dict = None,
+        db_dict: dict = None,
+    ) -> str:
+        """Exec primitive (Juju action)
+
+        :param cluster_uuid str: The UUID of the cluster
+        :param kdu_instance str: The unique name of the KDU instance
+        :param primitive_name: Name of action that will be executed
+        :param timeout: Timeout for action execution
+        :param params: Dictionary of all the parameters needed for the action
+        :db_dict: Dictionary for any additional data
+
+        :return: Returns the output of the action
+        """
+
+    @abc.abstractmethod
     async def inspect_kdu(
             self,
             kdu_model: str,