in infrastructure-provisioning/src/general/lib/os/fab.py [0:0]
def remove_rstudio_dataengines_kernel(cluster_name, os_user):
try:
cluster_re = ['-{}"'.format(cluster_name),
'-{}-'.format(cluster_name),
'-{}/'.format(cluster_name)]
conn.get('/home/{}/.Rprofile'.format(os_user), 'Rprofile')
data = open('Rprofile').read()
conf = filter(None, data.split('\n'))
# Filter config from any math of cluster_name in line,
# separated by defined symbols to avoid partly matches
conf = [i for i in conf if not any(x in i for x in cluster_re)]
comment_all = lambda x: x if x.startswith('#master') else '#{}'.format(x)
uncomment = lambda x: x[1:] if not x.startswith('#master') else x
conf = [comment_all(i) for i in conf]
conf = [uncomment(i) for i in conf]
last_spark = max([conf.index(i) for i in conf if 'master=' in i] or [0])
active_cluster = conf[last_spark].split('"')[-2] if last_spark != 0 else None
conf = conf[:last_spark] + [conf[l][1:] for l in range(last_spark, len(conf)) if conf[l].startswith("#")] \
+ [conf[l] for l in range(last_spark, len(conf)) if not conf[l].startswith('#')]
with open('.Rprofile', 'w') as f:
for line in conf:
f.write('{}\n'.format(line))
conn.put('.Rprofile', '/home/{}/.Rprofile'.format(os_user))
conn.get('/home/{}/.Renviron'.format(os_user), 'Renviron')
data = open('Renviron').read()
conf = filter(None, data.split('\n'))
comment_all = lambda x: x if x.startswith('#') else '#{}'.format(x)
conf = [comment_all(i) for i in conf]
# Filter config from any math of cluster_name in line,
# separated by defined symbols to avoid partly matches
conf = [i for i in conf if not any(x in i for x in cluster_re)]
if active_cluster:
activate_cluster = lambda x: x[1:] if active_cluster in x else x
conf = [activate_cluster(i) for i in conf]
else:
last_spark = max([conf.index(i) for i in conf if 'SPARK_HOME' in i])
conf = conf[:last_spark] + [conf[l][1:] for l in range(last_spark, len(conf)) if conf[l].startswith("#")]
with open('.Renviron', 'w') as f:
for line in conf:
f.write('{}\n'.format(line))
conn.put('.Renviron', '/home/{}/.Renviron'.format(os_user))
if len(conf) == 1:
conn.sudo('rm -f /home/{}/.ensure_dir/rstudio_dataengine_ensured'.format(os_user))
conn.sudo('rm -f /home/{}/.ensure_dir/rstudio_dataengine-service_ensured'.format(os_user))
conn.sudo('''R -e "source('/home/{}/.Rprofile')"'''.format(os_user))
except Exception as err:
logging.error('Function remove_rstudio_dataengines_kernel error:', str(err))
traceback.print_exc()
sys.exit(1)