X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FN2VC.git;a=blobdiff_plain;f=n2vc%2Fk8s_conn.py;h=f82e032b23adc61d82a25764036e426a10dede6d;hp=5bdc8acb2c6e804205d50510d612dafae9116be3;hb=2962f3e7aba84b4584d2deac30d1c163f6441a03;hpb=d99f3f2f67d693c30494be7ad19b97f3f5528961 diff --git a/n2vc/k8s_conn.py b/n2vc/k8s_conn.py index 5bdc8ac..f82e032 100644 --- a/n2vc/k8s_conn.py +++ b/n2vc/k8s_conn.py @@ -33,6 +33,9 @@ class K8sConnector(abc.ABC, Loggable): ################################### P U B L I C #################################### #################################################################################### """ + @staticmethod + def generate_kdu_instance_name(**kwargs): + raise NotImplementedError("Method not implemented") def __init__(self, db: object, log: object = None, on_update_db=None): """ @@ -136,6 +139,7 @@ class K8sConnector(abc.ABC, Loggable): self, cluster_uuid: str, kdu_model: str, + kdu_instance: str, atomic: bool = True, timeout: float = 300, params: dict = None, @@ -154,6 +158,7 @@ class K8sConnector(abc.ABC, Loggable): - a name of chart/bundle available via the repos known by OSM - a path to a packaged chart/bundle - a path to an unpacked chart/bundle directory or a URL + :param kdu_instance: Kdu instance name :param atomic: If set, installation process purges chart/bundle on fail, also will wait until all the K8s objects are active :param timeout: Time in seconds to wait for the install of the chart/bundle @@ -202,6 +207,44 @@ class K8sConnector(abc.ABC, Loggable): :return: reference to the new revision number of the KDU instance """ + @abc.abstractmethod + async def scale( + self, kdu_instance: str, + scale: int, + resource_name: str, + total_timeout: float = 1800, + **kwargs, + ) -> bool: + """ + Scales an application in KDU instance. + + :param: kdu_instance str: KDU instance name + :param: scale int: Scale to which to set this application + :param: resource_name str: Resource name (Application name) + :param: timeout float: The time, in seconds, to wait for the install + to finish + :param kwargs: Additional parameters + + :return: If successful, returns True + """ + + @abc.abstractmethod + async def get_scale_count( + self, + resource_name: str, + kdu_instance: str, + **kwargs, + ) -> int: + """ + Get an application scale count. + + :param: resource_name str: Resource name (Application name) + :param: kdu_instance str: KDU instance name + :param kwargs: Additional parameters + + :return: Return application instance count + """ + @abc.abstractmethod async def rollback( self, cluster_uuid: str, kdu_instance: str, revision=0, db_dict: dict = None