You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datalab.apache.org by lf...@apache.org on 2021/02/22 13:58:54 UTC

[incubator-datalab] 02/02: [DATALAB-2091]: removed \n from variables assigned from remote command output

This is an automated email from the ASF dual-hosted git repository.

lfrolov pushed a commit to branch DATALAB-2091
in repository https://gitbox.apache.org/repos/asf/incubator-datalab.git

commit 490e9ee387455bbc2b36f6890dc738db7f67fd5c
Author: leonidfrolov <fr...@gmail.com>
AuthorDate: Mon Feb 22 15:58:35 2021 +0200

    [DATALAB-2091]: removed \n from variables assigned from remote command output
---
 .../src/general/lib/aws/actions_lib.py                     | 10 +++++-----
 .../src/general/lib/azure/actions_lib.py                   |  8 ++++----
 .../src/general/lib/gcp/actions_lib.py                     | 14 +++++++-------
 .../src/general/lib/os/debian/common_lib.py                |  8 ++++----
 .../src/general/lib/os/debian/edge_lib.py                  |  4 ++--
 .../src/general/lib/os/debian/notebook_lib.py              | 10 +++++-----
 .../src/general/lib/os/debian/ssn_lib.py                   |  4 ++--
 infrastructure-provisioning/src/general/lib/os/fab.py      |  8 ++++----
 .../src/general/lib/os/redhat/common_lib.py                |  2 +-
 .../src/general/lib/os/redhat/edge_lib.py                  |  4 ++--
 .../src/general/lib/os/redhat/notebook_lib.py              |  2 +-
 .../src/general/lib/os/redhat/ssn_lib.py                   |  2 +-
 .../src/general/scripts/os/check_inactivity.py             |  2 +-
 .../src/jupyter/scripts/configure_jupyter_node.py          |  2 +-
 14 files changed, 40 insertions(+), 40 deletions(-)

diff --git a/infrastructure-provisioning/src/general/lib/aws/actions_lib.py b/infrastructure-provisioning/src/general/lib/aws/actions_lib.py
index 910120f..fb1bdee 100644
--- a/infrastructure-provisioning/src/general/lib/aws/actions_lib.py
+++ b/infrastructure-provisioning/src/general/lib/aws/actions_lib.py
@@ -1266,9 +1266,9 @@ def remove_kernels(emr_name, tag_name, nb_tag_value, ssh_user, key_path, emr_ver
                         try:
                             livy_port = conn.sudo("cat /opt/" + emr_version + "/" + emr_name +
                                              "/livy/conf/livy.conf | grep livy.server.port | tail -n 1 | "
-                                             "awk '{printf $3}'").stdout
+                                             "awk '{printf $3}'").stdout.replace('\n','')
                             process_number = conn.sudo("netstat -natp 2>/dev/null | grep ':" + livy_port +
-                                                  "' | awk '{print $7}' | sed 's|/.*||g'").stdout
+                                                  "' | awk '{print $7}' | sed 's|/.*||g'").stdout.replace('\n','')
                             conn.sudo('kill -9 ' + process_number)
                             conn.sudo('systemctl disable livy-server-' + livy_port)
                         except:
@@ -1878,9 +1878,9 @@ def remove_dataengine_kernels(tag_name, notebook_name, os_user, key_path, cluste
             if os.environ['notebook_multiple_clusters'] == 'true':
                 try:
                     livy_port = conn.sudo("cat /opt/" + cluster_name +
-                                     "/livy/conf/livy.conf | grep livy.server.port | tail -n 1 | awk '{printf $3}'").stdout
+                                     "/livy/conf/livy.conf | grep livy.server.port | tail -n 1 | awk '{printf $3}'").stdout.replace('\n','')
                     process_number = conn.sudo("netstat -natp 2>/dev/null | grep ':" + livy_port +
-                                          "' | awk '{print $7}' | sed 's|/.*||g'").stdout
+                                          "' | awk '{print $7}' | sed 's|/.*||g'").stdout.replace('\n','')
                     conn.sudo('kill -9 ' + process_number)
                     conn.sudo('systemctl disable livy-server-' + livy_port)
                 except:
@@ -1930,7 +1930,7 @@ def remove_dataengine_kernels(tag_name, notebook_name, os_user, key_path, cluste
 def prepare_disk(os_user):
     if not exists(conn,'/home/' + os_user + '/.ensure_dir/disk_ensured'):
         try:
-            disk_name = conn.sudo("lsblk | grep disk | awk '{print $1}' | sort | tail -n 1").stdout
+            disk_name = conn.sudo("lsblk | grep disk | awk '{print $1}' | sort | tail -n 1").stdout.replace('\n','')
             conn.sudo('''bash -c 'echo -e "o\nn\np\n1\n\n\nw" | fdisk /dev/{}' '''.format(disk_name))
             conn.sudo('mkfs.ext4 -F /dev/{}1'.format(disk_name))
             conn.sudo('mount /dev/{}1 /opt/'.format(disk_name))
diff --git a/infrastructure-provisioning/src/general/lib/azure/actions_lib.py b/infrastructure-provisioning/src/general/lib/azure/actions_lib.py
index 94a74b9..031535e 100644
--- a/infrastructure-provisioning/src/general/lib/azure/actions_lib.py
+++ b/infrastructure-provisioning/src/general/lib/azure/actions_lib.py
@@ -979,9 +979,9 @@ class AzureActions:
                 if os.environ['notebook_multiple_clusters'] == 'true':
                     try:
                         livy_port = conn.sudo("cat /opt/" + cluster_name +
-                                         "/livy/conf/livy.conf | grep livy.server.port | tail -n 1 | awk '{printf $3}'").stdout
+                                         "/livy/conf/livy.conf | grep livy.server.port | tail -n 1 | awk '{printf $3}'").stdout.replace('\n','')
                         process_number = conn.sudo("netstat -natp 2>/dev/null | grep ':" + livy_port +
-                                              "' | awk '{print $7}' | sed 's|/.*||g'").stdout
+                                              "' | awk '{print $7}' | sed 's|/.*||g'").stdout.replace('\n','')
                         conn.sudo('kill -9 ' + process_number)
                         conn.sudo('systemctl disable livy-server-' + livy_port)
                     except:
@@ -1064,7 +1064,7 @@ class AzureActions:
 def ensure_local_jars(os_user, jars_dir):
     if not exists(conn,'/home/{}/.ensure_dir/local_jars_ensured'.format(os_user)):
         try:
-            hadoop_version = conn.sudo("ls /opt/spark/jars/hadoop-common* | sed -n 's/.*\([0-9]\.[0-9]\.[0-9]\).*/\\1/p'").stdout
+            hadoop_version = conn.sudo("ls /opt/spark/jars/hadoop-common* | sed -n 's/.*\([0-9]\.[0-9]\.[0-9]\).*/\\1/p'").stdout.replace('\n','')
             print("Downloading local jars for Azure")
             conn.sudo('mkdir -p {}'.format(jars_dir))
             if os.environ['azure_datalake_enable'] == 'false':
@@ -1246,7 +1246,7 @@ def prepare_disk(os_user):
             allow = False
             counter = 0
             remount_azure_disk()
-            disk_name = conn.sudo("lsblk | grep disk | awk '{print $1}' | sort | tail -n 1").stdout
+            disk_name = conn.sudo("lsblk | grep disk | awk '{print $1}' | sort | tail -n 1").stdout.replace('\n','')
             with settings(warn_only=True):
                 conn.sudo('umount -l /dev/{}1'.format(disk_name))
             while not allow:
diff --git a/infrastructure-provisioning/src/general/lib/gcp/actions_lib.py b/infrastructure-provisioning/src/general/lib/gcp/actions_lib.py
index 39703cf..d7734b0 100644
--- a/infrastructure-provisioning/src/general/lib/gcp/actions_lib.py
+++ b/infrastructure-provisioning/src/general/lib/gcp/actions_lib.py
@@ -1151,9 +1151,9 @@ class GCPActions:
                 if os.environ['notebook_multiple_clusters'] == 'true':
                     try:
                         livy_port = conn.sudo("cat /opt/" + dataproc_version + "/" + dataproc_name
-                                         + "/livy/conf/livy.conf | grep livy.server.port | tail -n 1 | awk '{printf $3}'").stdout
+                                         + "/livy/conf/livy.conf | grep livy.server.port | tail -n 1 | awk '{printf $3}'").stdout.replace('\n','')
                         process_number = conn.sudo("netstat -natp 2>/dev/null | grep ':" + livy_port +
-                                              "' | awk '{print $7}' | sed 's|/.*||g'").stdout
+                                              "' | awk '{print $7}' | sed 's|/.*||g'").stdout.replace('\n','')
                         conn.sudo('kill -9 ' + process_number)
                         conn.sudo('systemctl disable livy-server-' + livy_port)
                     except:
@@ -1179,7 +1179,7 @@ class GCPActions:
                 zeppelin_restarted = False
                 while not zeppelin_restarted:
                     conn.sudo('sleep 5')
-                    result = conn.sudo('nmap -p 8080 localhost | grep "closed" > /dev/null; echo $?').stdout
+                    result = conn.sudo('nmap -p 8080 localhost | grep "closed" > /dev/null; echo $?').stdout.replace('\n','')
                     result = result[:1]
                     if result == '1':
                         zeppelin_restarted = True
@@ -1371,7 +1371,7 @@ def installing_python(region, bucket, user_name, cluster_name, application='', p
 def prepare_disk(os_user):
     if not exists(conn,'/home/' + os_user + '/.ensure_dir/disk_ensured'):
         try:
-            disk_name = conn.sudo("lsblk | grep disk | awk '{print $1}' | sort | tail -n 1").stdout
+            disk_name = conn.sudo("lsblk | grep disk | awk '{print $1}' | sort | tail -n 1").stdout.replace('\n','')
             conn.sudo('''bash -c 'echo -e "o\nn\np\n1\n\n\nw" | fdisk /dev/{}' '''.format(disk_name))
             conn.sudo('mkfs.ext4 -F /dev/{}1'.format(disk_name))
             conn.sudo('mount /dev/{}1 /opt/'.format(disk_name))
@@ -1400,7 +1400,7 @@ def configure_local_spark(jars_dir, templates_dir, memory_type='driver'):
         spark_jars_paths = None
         if exists('/opt/spark/conf/spark-defaults.conf'):
             try:
-                spark_jars_paths = conn.sudo('cat /opt/spark/conf/spark-defaults.conf | grep -e "^spark.jars " ').stdout
+                spark_jars_paths = conn.sudo('cat /opt/spark/conf/spark-defaults.conf | grep -e "^spark.jars " ').stdout.replace('\n','')
             except:
                 spark_jars_paths = None
         conn.put(templates_dir + 'notebook_spark-defaults_local.conf', '/tmp/notebook_spark-defaults_local.conf')
@@ -1458,9 +1458,9 @@ def remove_dataengine_kernels(notebook_name, os_user, key_path, cluster_name):
             if os.environ['notebook_multiple_clusters'] == 'true':
                 try:
                     livy_port = conn.sudo("cat /opt/" + cluster_name +
-                                     "/livy/conf/livy.conf | grep livy.server.port | tail -n 1 | awk '{printf $3}'").stdout
+                                     "/livy/conf/livy.conf | grep livy.server.port | tail -n 1 | awk '{printf $3}'").stdout.replace('\n','')
                     process_number = conn.sudo("netstat -natp 2>/dev/null | grep ':" + livy_port +
-                                          "' | awk '{print $7}' | sed 's|/.*||g'").stdout
+                                          "' | awk '{print $7}' | sed 's|/.*||g'").stdout.replace('\n','')
                     conn.sudo('kill -9 ' + process_number)
                     conn.sudo('systemctl disable livy-server-' + livy_port)
                 except:
diff --git a/infrastructure-provisioning/src/general/lib/os/debian/common_lib.py b/infrastructure-provisioning/src/general/lib/os/debian/common_lib.py
index 1711520..c49e131 100644
--- a/infrastructure-provisioning/src/general/lib/os/debian/common_lib.py
+++ b/infrastructure-provisioning/src/general/lib/os/debian/common_lib.py
@@ -48,14 +48,14 @@ def manage_pkg(command, environment, requisites):
                             error_parser = "frontend is locked|locked"
                             datalab.fab.conn.sudo('dpkg --configure -a 2>&1 | tee /tmp/tee.tmp; if ! grep -w -E "({0})" /tmp/tee.tmp > '
                                                   '/tmp/dpkg.log; then echo "no_error" > /tmp/dpkg.log;fi'.format(error_parser))
-                            err = datalab.fab.conn.sudo('cat /tmp/dpkg.log').stdout
+                            err = datalab.fab.conn.sudo('cat /tmp/dpkg.log').stdout.replace('\n','')
                             count = 0
                             while 'no_error' not in err and count < 10:
-                                pid = datalab.fab.conn.sudo('lsof /var/lib/dpkg/lock-frontend | grep dpkg | awk \'{print $2}\'').stdout
+                                pid = datalab.fab.conn.sudo('lsof /var/lib/dpkg/lock-frontend | grep dpkg | awk \'{print $2}\'').stdout.replace('\n','')
                                 if pid != '':
                                     datalab.fab.conn.sudo('kill -9 {}'.format(pid))
                                     datalab.fab.conn.sudo('rm -f /var/lib/dpkg/lock-frontend')
-                                    pid = datalab.fab.conn.sudo('lsof /var/lib/dpkg/lock | grep dpkg | awk \'{print $2}\'').stdout
+                                    pid = datalab.fab.conn.sudo('lsof /var/lib/dpkg/lock | grep dpkg | awk \'{print $2}\'').stdout.replace('\n','')
                                 elif pid != '':
                                     datalab.fab.conn.sudo('kill -9 {}'.format(pid))
                                     datalab.fab.conn.sudo('rm -f /var/lib/dpkg/lock')
@@ -149,7 +149,7 @@ def change_pkg_repos():
 
 
 def find_java_path_remote():
-    java_path = datalab.fab.conn.sudo("sh -c \"update-alternatives --query java | grep 'Value: ' | grep -o '/.*/jre'\"").stdout
+    java_path = datalab.fab.conn.sudo("sh -c \"update-alternatives --query java | grep 'Value: ' | grep -o '/.*/jre'\"").stdout.replace('\n','')
     return java_path
 
 
diff --git a/infrastructure-provisioning/src/general/lib/os/debian/edge_lib.py b/infrastructure-provisioning/src/general/lib/os/debian/edge_lib.py
index 709c431..fa63547 100644
--- a/infrastructure-provisioning/src/general/lib/os/debian/edge_lib.py
+++ b/infrastructure-provisioning/src/general/lib/os/debian/edge_lib.py
@@ -75,7 +75,7 @@ def install_nginx_lua(edge_ip, nginx_version, keycloak_auth_server_url, keycloak
                 datalab.fab.conn.sudo('mkdir -p /home/{0}/keys'.format(user))
                 datalab.fab.conn.sudo('''bash -c 'echo "{0}" | base64 --decode > /etc/ssl/certs/root_ca.crt' '''.format(
                      os.environ['conf_stepcerts_root_ca']))
-                fingerprint = datalab.fab.conn.sudo('step certificate fingerprint /etc/ssl/certs/root_ca.crt')
+                fingerprint = datalab.fab.conn.sudo('step certificate fingerprint /etc/ssl/certs/root_ca.crt').stdout.replace('\n','')
                 datalab.fab.conn.sudo('step ca bootstrap --fingerprint {0} --ca-url "{1}"'.format(fingerprint,
                                                                                  os.environ['conf_stepcerts_ca_url']))
                 datalab.fab.conn.sudo('echo "{0}" > /home/{1}/keys/provisioner_password'.format(
@@ -85,7 +85,7 @@ def install_nginx_lua(edge_ip, nginx_version, keycloak_auth_server_url, keycloak
                 datalab.fab.conn.sudo('step ca token {3} --kid {0} --ca-url "{1}" --root /etc/ssl/certs/root_ca.crt '
                      '--password-file /home/{2}/keys/provisioner_password {4} --output-file /tmp/step_token'.format(
                     os.environ['conf_stepcerts_kid'], os.environ['conf_stepcerts_ca_url'], user, cn, sans))
-                token = datalab.fab.conn.sudo('cat /tmp/step_token')
+                token = datalab.fab.conn.sudo('cat /tmp/step_token').stdout.replace('\n','')
                 datalab.fab.conn.sudo('step ca certificate "{0}" /etc/ssl/certs/datalab.crt /etc/ssl/certs/datalab.key '
                      '--token "{1}" --kty=RSA --size 2048 --provisioner {2} '.format(cn, token,
                                                                                      os.environ['conf_stepcerts_kid']))
diff --git a/infrastructure-provisioning/src/general/lib/os/debian/notebook_lib.py b/infrastructure-provisioning/src/general/lib/os/debian/notebook_lib.py
index 196166c..8ad3451 100644
--- a/infrastructure-provisioning/src/general/lib/os/debian/notebook_lib.py
+++ b/infrastructure-provisioning/src/general/lib/os/debian/notebook_lib.py
@@ -56,7 +56,7 @@ def ensure_r_local_kernel(spark_version, os_user, templates_dir, kernels_dir):
     if not exists(datalab.fab.conn,'/home/' + os_user + '/.ensure_dir/r_local_kernel_ensured'):
         try:
             datalab.fab.conn.sudo('R -e "IRkernel::installspec()"')
-            r_version = datalab.fab.conn.sudo("R --version | awk '/version / {print $3}'")
+            r_version = datalab.fab.conn.sudo("R --version | awk '/version / {print $3}'").stdout.replace('\n','')
             datalab.fab.conn.put(templates_dir + 'r_template.json', '/tmp/r_template.json')
             datalab.fab.conn.sudo('sed -i "s|R_VER|' + r_version + '|g" /tmp/r_template.json')
             datalab.fab.conn.sudo('sed -i "s|SP_VER|' + spark_version + '|g" /tmp/r_template.json')
@@ -390,10 +390,10 @@ def install_os_pkg(requisites):
                 os_pkg = os_pkg[0]
             datalab.fab.conn.sudo('DEBIAN_FRONTEND=noninteractive apt-get -y install --allow-downgrades {0} 2>&1 | tee /tmp/tee.tmp; if ! grep -w -E "({1})" /tmp/tee.tmp > '
                  '/tmp/os_install_{2}.log; then echo "" > /tmp/os_install_{2}.log;fi'.format(os_pkg, error_parser, name))
-            err = datalab.fab.conn.sudo('cat /tmp/os_install_{}.log'.format(name)).replace('"', "'")
+            err = datalab.fab.conn.sudo('cat /tmp/os_install_{}.log'.format(name)).stdout.replace('"', "'")
             datalab.fab.conn.sudo('cat /tmp/tee.tmp | if ! grep -w -E -A 30 "({1})" /tmp/tee.tmp > '
                  '/tmp/os_install_{0}.log; then echo "" > /tmp/os_install_{0}.log;fi'.format(name, new_pkgs_parser))
-            dep = datalab.fab.conn.sudo('cat /tmp/os_install_{}.log'.format(name))
+            dep = datalab.fab.conn.sudo('cat /tmp/os_install_{}.log'.format(name)).stdout
             if dep == '':
                 dep = []
             else:
@@ -420,7 +420,7 @@ def install_os_pkg(requisites):
                 version = [i for i in ver if os_pkg.split("=")[0] in i][0].split(' ')[1]
                 status_msg = "installed"
             if 'E: Version' in err and 'was not found' in err:
-                versions = sudo ('apt-cache policy {} | grep 500 | grep -v Packages'.format(name))\
+                versions = datalab.fab.conn.sudo('apt-cache policy {} | grep 500 | grep -v Packages'.format(name)).stdout\
                     .replace('\r\n', '').replace(' 500', '').replace('     ', ' ').replace('***', '').strip().split(' ')
                 if versions != '':
                     status_msg = 'invalid_version'
@@ -451,7 +451,7 @@ def get_available_os_pkgs():
         os_pkgs = dict()
         ansi_escape = re.compile(r'\x1b[^m]*m')
         manage_pkg('update', 'remote', '')
-        apt_raw = datalab.fab.conn.sudo("apt list")
+        apt_raw = datalab.fab.conn.sudo("apt list").stdout
         apt_list = ansi_escape.sub('', apt_raw).split("\r\n")
         for pkg in apt_list:
             if "/" in pkg:
diff --git a/infrastructure-provisioning/src/general/lib/os/debian/ssn_lib.py b/infrastructure-provisioning/src/general/lib/os/debian/ssn_lib.py
index 806a655..9595802 100644
--- a/infrastructure-provisioning/src/general/lib/os/debian/ssn_lib.py
+++ b/infrastructure-provisioning/src/general/lib/os/debian/ssn_lib.py
@@ -189,7 +189,7 @@ def start_ss(keyfile, host_string, datalab_conf_dir, web_path,
              keycloak_client_secret, keycloak_auth_server_url, report_path=''):
     try:
         if not exists(datalab.fab.conn,os.environ['ssn_datalab_path'] + 'tmp/ss_started'):
-            java_path = datalab.fab.conn.sudo("update-alternatives --query java | grep 'Value: ' | grep -o '/.*/jre'")
+            java_path = datalab.fab.conn.sudo("update-alternatives --query java | grep 'Value: ' | grep -o '/.*/jre'").stdout.replace('\n','')
             supervisor_conf = '/etc/supervisor/conf.d/supervisor_svc.conf'
             datalab.fab.conn.local('sed -i "s|MONGO_PASSWORD|{}|g" /root/templates/ssn.yml'.format(mongo_passwd))
             datalab.fab.conn.local('sed -i "s|KEYSTORE_PASSWORD|{}|g" /root/templates/ssn.yml'.format(keystore_passwd))
@@ -227,7 +227,7 @@ def start_ss(keyfile, host_string, datalab_conf_dir, web_path,
                 datalab.fab.conn.sudo('mkdir -p /var/log/application')
                 datalab.fab.conn.run('mkdir -p /tmp/yml_tmp/')
                 for service in ['self-service', 'provisioning-service', 'billing']:
-                    jar = datalab.fab.conn.sudo('cd {0}{1}/lib/; find {1}*.jar -type f'.format(web_path, service))
+                    jar = datalab.fab.conn.sudo('cd {0}{1}/lib/; find {1}*.jar -type f'.format(web_path, service)).stdout.replace('\n','')
                     datalab.fab.conn.sudo('ln -s {0}{2}/lib/{1} {0}{2}/{2}.jar '.format(web_path, jar, service))
                     datalab.fab.conn.sudo('cp {0}/webapp/{1}/conf/*.yml /tmp/yml_tmp/'.format(datalab_path, service))
                 # Replacing Keycloak and cloud parameters
diff --git a/infrastructure-provisioning/src/general/lib/os/fab.py b/infrastructure-provisioning/src/general/lib/os/fab.py
index 7b35010..aa35270 100644
--- a/infrastructure-provisioning/src/general/lib/os/fab.py
+++ b/infrastructure-provisioning/src/general/lib/os/fab.py
@@ -528,10 +528,10 @@ def install_java_pkg(requisites):
     ivy_settings = 'ivysettings.xml'
     dest_dir = '/opt/jars/java'
     try:
-        ivy_jar = conn.sudo('find /opt /usr -name "*ivy-{0}.jar" | head -n 1'.format(os.environ['notebook_ivy_version'])).stdout
+        ivy_jar = conn.sudo('find /opt /usr -name "*ivy-{0}.jar" | head -n 1'.format(os.environ['notebook_ivy_version'])).stdout.replace('\n','')
         conn.sudo('mkdir -p {0} {1}'.format(ivy_dir, dest_dir))
         conn.put('{0}{1}'.format(templates_dir, ivy_settings), '{0}/{1}'.format(ivy_dir, ivy_settings), use_sudo=True)
-        proxy_string = conn.sudo('cat /etc/profile | grep http_proxy | cut -f2 -d"="').stdout
+        proxy_string = conn.sudo('cat /etc/profile | grep http_proxy | cut -f2 -d"="').stdout.replace('\n','')
         proxy_re = '(?P<proto>http.*)://(?P<host>[^:/ ]+):(?P<port>[0-9]*)'
         proxy_find = re.search(proxy_re, proxy_string)
         java_proxy = "export _JAVA_OPTIONS='-Dhttp.proxyHost={0} -Dhttp.proxyPort={1} \
@@ -805,10 +805,10 @@ def restart_zeppelin(creds=False, os_user='', hostname='', keyfile=''):
 def get_spark_memory(creds=False, os_user='', hostname='', keyfile=''):
     if creds:
         with settings(host_string='{}@{}'.format(os_user, hostname)):
-            mem = conn.sudo('free -m | grep Mem | tr -s " " ":" | cut -f 2 -d ":"').stdout
+            mem = conn.sudo('free -m | grep Mem | tr -s " " ":" | cut -f 2 -d ":"').stdout.replace('\n','')
             instance_memory = int(mem)
     else:
-        mem = conn.sudo('free -m | grep Mem | tr -s " " ":" | cut -f 2 -d ":"').stdout
+        mem = conn.sudo('free -m | grep Mem | tr -s " " ":" | cut -f 2 -d ":"').stdout.replace('\n','')
         instance_memory = int(mem)
     try:
         if instance_memory > int(os.environ['dataengine_expl_instance_memory']):
diff --git a/infrastructure-provisioning/src/general/lib/os/redhat/common_lib.py b/infrastructure-provisioning/src/general/lib/os/redhat/common_lib.py
index f303c0c..fff9b6c 100644
--- a/infrastructure-provisioning/src/general/lib/os/redhat/common_lib.py
+++ b/infrastructure-provisioning/src/general/lib/os/redhat/common_lib.py
@@ -96,7 +96,7 @@ def change_pkg_repos():
 
 
 def find_java_path_remote():
-    java_path = conn.sudo("alternatives --display java | grep 'slave jre: ' | awk '{print $3}'").stdout
+    java_path = conn.sudo("alternatives --display java | grep 'slave jre: ' | awk '{print $3}'").stdout.replace('\n','')
     return java_path
 
 
diff --git a/infrastructure-provisioning/src/general/lib/os/redhat/edge_lib.py b/infrastructure-provisioning/src/general/lib/os/redhat/edge_lib.py
index cee47fa..26152d6 100644
--- a/infrastructure-provisioning/src/general/lib/os/redhat/edge_lib.py
+++ b/infrastructure-provisioning/src/general/lib/os/redhat/edge_lib.py
@@ -74,7 +74,7 @@ def install_nginx_lua(edge_ip, nginx_version, keycloak_auth_server_url, keycloak
                 conn.sudo('mkdir -p /home/{0}/keys'.format(user))
                 conn.sudo('''bash -c 'echo "{0}" | base64 --decode > /etc/ssl/certs/root_ca.crt' '''.format(
                      os.environ['conf_stepcerts_root_ca']))
-                fingerprint = conn.sudo('step certificate fingerprint /etc/ssl/certs/root_ca.crt').stdout
+                fingerprint = conn.sudo('step certificate fingerprint /etc/ssl/certs/root_ca.crt').stdout.replace('\n','')
                 conn.sudo('step ca bootstrap --fingerprint {0} --ca-url "{1}"'.format(fingerprint,
                                                                                  os.environ['conf_stepcerts_ca_url']))
                 conn.sudo('echo "{0}" > /home/{1}/keys/provisioner_password'.format(
@@ -84,7 +84,7 @@ def install_nginx_lua(edge_ip, nginx_version, keycloak_auth_server_url, keycloak
                 conn.sudo('step ca token {3} --kid {0} --ca-url "{1}" --root /etc/ssl/certs/root_ca.crt '
                      '--password-file /home/{2}/keys/provisioner_password {4} --output-file /tmp/step_token'.format(
                     os.environ['conf_stepcerts_kid'], os.environ['conf_stepcerts_ca_url'], user, cn, sans))
-                token = conn.sudo('cat /tmp/step_token').stdout
+                token = conn.sudo('cat /tmp/step_token').stdout.replace('\n','')
                 conn.sudo('step ca certificate "{0}" /etc/ssl/certs/datalab.crt /etc/ssl/certs/datalab.key '
                      '--token "{1}" --kty=RSA --size 2048 --provisioner {2} '.format(cn, token,
                                                                                      os.environ['conf_stepcerts_kid']))
diff --git a/infrastructure-provisioning/src/general/lib/os/redhat/notebook_lib.py b/infrastructure-provisioning/src/general/lib/os/redhat/notebook_lib.py
index 7c7453e..65ee42a 100644
--- a/infrastructure-provisioning/src/general/lib/os/redhat/notebook_lib.py
+++ b/infrastructure-provisioning/src/general/lib/os/redhat/notebook_lib.py
@@ -67,7 +67,7 @@ def ensure_r_local_kernel(spark_version, os_user, templates_dir, kernels_dir):
             except:
                 pass
             conn.sudo('cd /usr/local/spark/R/lib/SparkR; R -e "devtools::install(\'.\')"')
-            r_version = conn.sudo("R --version | awk '/version / {print $3}'").stdout
+            r_version = conn.sudo("R --version | awk '/version / {print $3}'").stdout.replace('\n','')
             conn.put(templates_dir + 'r_template.json', '/tmp/r_template.json')
             conn.sudo('sed -i "s|R_VER|' + r_version + '|g" /tmp/r_template.json')
             conn.sudo('sed -i "s|SP_VER|' + spark_version + '|g" /tmp/r_template.json')
diff --git a/infrastructure-provisioning/src/general/lib/os/redhat/ssn_lib.py b/infrastructure-provisioning/src/general/lib/os/redhat/ssn_lib.py
index 03b5d2d..3f8f93c 100644
--- a/infrastructure-provisioning/src/general/lib/os/redhat/ssn_lib.py
+++ b/infrastructure-provisioning/src/general/lib/os/redhat/ssn_lib.py
@@ -210,7 +210,7 @@ def start_ss(keyfile, host_string, datalab_conf_dir, web_path,
              keycloak_client_secret, keycloak_auth_server_url, report_path=''):
     try:
         if not exists(conn,'{}tmp/ss_started'.format(os.environ['ssn_datalab_path'])):
-            java_path = conn.sudo("alternatives --display java | grep 'slave jre: ' | awk '{print $3}'").stdout
+            java_path = conn.sudo("alternatives --display java | grep 'slave jre: ' | awk '{print $3}'").stdout.replace('\n','')
             supervisor_conf = '/etc/supervisord.d/supervisor_svc.ini'
             conn.local('sed -i "s|MONGO_PASSWORD|{}|g" /root/templates/ssn.yml'.format(mongo_passwd))
             conn.local('sed -i "s|KEYSTORE_PASSWORD|{}|g" /root/templates/ssn.yml'.format(keystore_passwd))
diff --git a/infrastructure-provisioning/src/general/scripts/os/check_inactivity.py b/infrastructure-provisioning/src/general/scripts/os/check_inactivity.py
index 5cfa436..1d54b08 100644
--- a/infrastructure-provisioning/src/general/scripts/os/check_inactivity.py
+++ b/infrastructure-provisioning/src/general/scripts/os/check_inactivity.py
@@ -49,7 +49,7 @@ if __name__ == "__main__":
         inactivity_file = 'local_inactivity'
 
     if exists('{}{}'.format(inactivity_dir, inactivity_file)):
-        timestamp = conn.sudo('cat {}{}'.format(inactivity_dir, inactivity_file)).stdout
+        timestamp = conn.sudo('cat {}{}'.format(inactivity_dir, inactivity_file)).stdout.replace('\n','')
     else:
         timestamp = '0000000000'
 
diff --git a/infrastructure-provisioning/src/jupyter/scripts/configure_jupyter_node.py b/infrastructure-provisioning/src/jupyter/scripts/configure_jupyter_node.py
index 4f8cebb..5ad1b41 100644
--- a/infrastructure-provisioning/src/jupyter/scripts/configure_jupyter_node.py
+++ b/infrastructure-provisioning/src/jupyter/scripts/configure_jupyter_node.py
@@ -103,7 +103,7 @@ if __name__ == "__main__":
     # INSTALL SPARK AND CLOUD STORAGE JARS FOR SPARK
     print("Install local Spark")
     ensure_local_spark(args.os_user, spark_link, spark_version, hadoop_version, local_spark_path)
-    local_spark_scala_version = conn.sudo('spark-submit --version 2>&1 | grep -o -P "Scala version \K.{0,7}"').stdout
+    local_spark_scala_version = conn.sudo('spark-submit --version 2>&1 | grep -o -P "Scala version \K.{0,7}"').stdout.replace('\n','')
     print("Install storage jars")
     ensure_local_jars(args.os_user, jars_dir)
     print("Configure local Spark")


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datalab.apache.org
For additional commands, e-mail: commits-help@datalab.apache.org