X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FN2VC.git;a=blobdiff_plain;f=n2vc%2Fk8s_helm_conn.py;h=9ce992f9163f1dca0f9134e62fb7422e7651a835;hp=01b448b7e97350823f4c7cae81bb0a4874495bea;hb=1ac78b3b0c1440f4c69834387c7ceafdff27ac28;hpb=54771fa2e857c92aa8454e80389ee7461e4a9773 diff --git a/n2vc/k8s_helm_conn.py b/n2vc/k8s_helm_conn.py index 01b448b..9ce992f 100644 --- a/n2vc/k8s_helm_conn.py +++ b/n2vc/k8s_helm_conn.py @@ -20,7 +20,6 @@ # contact with: nfvlabs@tid.es ## -import paramiko import subprocess import os import shutil @@ -327,7 +326,8 @@ class K8sHelmConnector(K8sConnector): atomic: bool = True, timeout: float = 300, params: dict = None, - db_dict: dict = None + db_dict: dict = None, + kdu_name: str = None ): self.debug('installing {} in cluster {}'.format(kdu_model, cluster_uuid)) @@ -370,8 +370,8 @@ class K8sHelmConnector(K8sConnector): if result is not None: # instance already exists: generate a new one kdu_instance = None - except Exception as e: - kdu_instance = None + except K8sException: + pass # helm repo install command = '{} install {} --output yaml --kubeconfig={} --home={} {} {} --name={} {} {}'\ @@ -1113,7 +1113,7 @@ class K8sHelmConnector(K8sConnector): self.debug('Return code: {}'.format(return_code)) if raise_exception_on_error and return_code != 0: - raise Exception(output) + raise K8sException(output) if encode_utf8: output = output.encode('utf-8').strip() @@ -1121,43 +1121,18 @@ class K8sHelmConnector(K8sConnector): return output, return_code + except asyncio.CancelledError: + raise + except K8sException: + raise except Exception as e: msg = 'Exception executing command: {} -> {}'.format(command, e) - if show_error_log: - self.error(msg) + self.error(msg) if raise_exception_on_error: - raise e + raise K8sException(e) from e else: return '', -1 - def _remote_exec( - self, - hostname: str, - username: str, - password: str, - command: str, - timeout: int = 10 - ) -> (str, int): - - command = K8sHelmConnector._remove_multiple_spaces(command) - self.debug('Executing sync remote ssh command: {}'.format(command)) - - ssh = paramiko.SSHClient() - ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) - ssh.connect(hostname=hostname, username=username, password=password) - ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command(command=command, timeout=timeout) - output = ssh_stdout.read().decode('utf-8') - error = ssh_stderr.read().decode('utf-8') - if error: - self.error('ERROR: {}'.format(error)) - return_code = 1 - else: - return_code = 0 - output = output.replace('\\n', '\n') - self.debug('OUTPUT: {}'.format(output)) - - return output, return_code - def _check_file_exists(self, filename: str, exception_if_not_exists: bool = False): self.debug('Checking if file {} exists...'.format(filename)) if os.path.exists(filename):