X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FN2VC.git;a=blobdiff_plain;f=n2vc%2Fk8s_helm_conn.py;h=d3fbed667d4abafce9429b8ad34cf1a22e91abb3;hp=ff1f33112c1629fa2294853b9c3be92c01b52de5;hb=fc796cc98009d16e124dd47c0596c5541dc10f4d;hpb=f9bed35a0acf26a93eb2f6d0f146fa71579af74a;ds=sidebyside diff --git a/n2vc/k8s_helm_conn.py b/n2vc/k8s_helm_conn.py index ff1f331..d3fbed6 100644 --- a/n2vc/k8s_helm_conn.py +++ b/n2vc/k8s_helm_conn.py @@ -327,7 +327,8 @@ class K8sHelmConnector(K8sConnector): timeout: float = 300, params: dict = None, db_dict: dict = None, - kdu_name: str = None + kdu_name: str = None, + namespace: str = None ): self.log.debug('installing {} in cluster {}'.format(kdu_model, cluster_uuid)) @@ -348,6 +349,10 @@ class K8sHelmConnector(K8sConnector): atomic_str = '' if atomic: atomic_str = '--atomic' + # namespace + namespace_str = '' + if namespace: + namespace_str = "--namespace {}".format(namespace) # version version_str = '' @@ -374,9 +379,11 @@ class K8sHelmConnector(K8sConnector): pass # helm repo install - command = '{} install {} --output yaml --kubeconfig={} --home={} {} {} --name={} {} {}'\ - .format(self._helm_command, atomic_str, config_filename, helm_dir, - params_str, timeout_str, kdu_instance, kdu_model, version_str) + command = '{helm} install {atomic} --output yaml --kubeconfig={config} --home={dir} {params} {timeout} ' \ + '--name={name} {ns} {model} {ver}'.format(helm=self._helm_command, atomic=atomic_str, + config=config_filename, dir=helm_dir, params=params_str, + timeout=timeout_str, name=kdu_instance, ns=namespace_str, + model=kdu_model, ver=version_str) self.log.debug('installing: {}'.format(command)) if atomic: @@ -649,6 +656,29 @@ class K8sHelmConnector(K8sConnector): return self._output_to_table(output) + 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 + """ + raise K8sException("KDUs deployed with Helm don't support actions " + "different from rollback, upgrade and status") + async def inspect_kdu( self, kdu_model: str, @@ -1200,13 +1230,13 @@ class K8sHelmConnector(K8sConnector): return '', -1 def _check_file_exists(self, filename: str, exception_if_not_exists: bool = False): - self.log.debug('Checking if file {} exists...'.format(filename)) + # self.log.debug('Checking if file {} exists...'.format(filename)) if os.path.exists(filename): return True else: msg = 'File {} does not exist'.format(filename) if exception_if_not_exists: - self.log.error(msg) + # self.log.error(msg) raise K8sException(msg)