X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=n2vc%2Fk8s_conn.py;h=3a1a5efe48d55bbc14438d4ed09000a690258e0e;hb=afde3be17b3f596a3d7996b1ebaf50c027bf624e;hp=ef4f5f2a8635cd853a97f4ac83c7bc315b174134;hpb=a8980cc3f6508f2659dc4ba4fcbeed65ba3c8e95;p=osm%2FN2VC.git diff --git a/n2vc/k8s_conn.py b/n2vc/k8s_conn.py index ef4f5f2..3a1a5ef 100644 --- a/n2vc/k8s_conn.py +++ b/n2vc/k8s_conn.py @@ -194,6 +194,7 @@ class K8sConnector(abc.ABC, Loggable): timeout: float = 300, params: dict = None, db_dict: dict = None, + force: bool = False, ): """ Upgrades an existing KDU instance. It would implicitly use the `upgrade` call @@ -213,6 +214,7 @@ class K8sConnector(abc.ABC, Loggable): path: }, e.g. {collection: "nsrs", filter: {_id: , path: "_admin.deployed.K8S.3"} + :param force: force recreation of resources if necessary :return: reference to the new revision number of the KDU instance """ @@ -329,6 +331,28 @@ class K8sConnector(abc.ABC, Loggable): :return: Returns the output of the action """ + @abc.abstractmethod + async def upgrade_charm( + self, + ee_id: str = None, + path: str = None, + charm_id: str = None, + charm_type: str = None, + timeout: float = None, + ) -> str: + """This method upgrade charms in VNFs + + Args: + ee_id: Execution environment id + path: Local path to the charm + charm_id: charm-id + charm_type: Charm type can be lxc-proxy-charm, native-charm or k8s-proxy-charm + timeout: (Float) Timeout for the ns update operation + + Returns: + The output of the update operation if status equals to "completed" + """ + @abc.abstractmethod async def inspect_kdu(self, kdu_model: str, repo_url: str = None) -> str: """ @@ -436,6 +460,18 @@ class K8sConnector(abc.ABC, Loggable): async def write_app_status_to_db( self, db_dict: dict, status: str, detailed_status: str, operation: str ) -> bool: + """ + This method will write the status of the application to the database. + + :param db_dict: A dictionary with the database necessary information. It shall contain the values for the keys: + - "collection": The Mongo DB collection to write to + - "filter": The query filter to use in the update process + - "path": The dot separated keys which targets the object to be updated + :param status: Status of the application + :param detailed_status: Detailed status of the application + :param operation: Operation that is being performed on the application + :return: True if successful + """ if not self.db: self.warning("No db => No database write") @@ -448,7 +484,6 @@ class K8sConnector(abc.ABC, Loggable): self.log.debug("status={}".format(status)) try: - the_table = db_dict["collection"] the_filter = db_dict["filter"] the_path = db_dict["path"]