# parent class
Loggable.__init__(self, log=log, log_to_console=True, prefix='\nK8S')
- self.info('Initializing generic K8S connector')
+ # self.log.info('Initializing generic K8S connector')
# the database and update callback
self.db = db
self.on_update_db = on_update_db
- self.info('K8S generic connector initialized')
+ # self.log.info('K8S generic connector initialized')
@abc.abstractmethod
async def init_env(
:return: True if successful
"""
+ @abc.abstractmethod
+ async def synchronize_repos(
+ self,
+ cluster_uuid: str,
+ name: str
+ ):
+ """
+ Synchronizes the list of repositories created in the cluster with
+ the repositories added by the NBI
+
+ :param cluster_uuid: the cluster
+ :return: List of repositories deleted from the cluster and dictionary with repos added
+ """
+
@abc.abstractmethod
async def reset(
self,
atomic: bool = True,
timeout: float = 300,
params: dict = None,
- db_dict: dict = None
+ db_dict: dict = 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
:param dict db_dict: where to write into database when the status changes.
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
"""
:return: True if successful
"""
+ @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,
self.warning('No db_dict => No database write')
return False
- self.debug('status={}'.format(status))
+ self.log.debug('status={}'.format(status))
try:
return True
except Exception as e:
- self.info('Exception writing status to database: {}'.format(e))
+ self.log.info('Exception writing status to database: {}'.format(e))
return False