[DATALAB-2448]: changed how devtools is ensured for dataengine-service
diff --git a/infrastructure-provisioning/src/general/lib/os/fab.py b/infrastructure-provisioning/src/general/lib/os/fab.py
index 5682832..7aa582e 100644
--- a/infrastructure-provisioning/src/general/lib/os/fab.py
+++ b/infrastructure-provisioning/src/general/lib/os/fab.py
@@ -528,19 +528,31 @@
print('Failed to ensure ciphers: ', str(err))
sys.exit(1)
+def ensure_dataengine_service_devtools():
+ try:
+ if not exists(conn, '/home/{}/dataengine-service-devtools-ensured'.format(os.environ['conf_os_user'])):
+ if os.environ['conf_cloud_provider'] in 'aws':
+ manage_pkg('-y install', 'remote', 'libcurl libcurl-devel')
+ elif (os.environ['conf_cloud_provider'] in 'gcp') and (
+ '-w-' in conn.sudo('hostname').stdout.replace('\n', '')):
+ # manage_pkg('-y build-dep', 'remote', 'libcurl4-gnutls-dev libxml2-dev')
+ manage_pkg('-y install', 'remote', 'libxml2-dev libcurl4-openssl-dev pkg-config')
+ conn.sudo('R -e "install.packages(\'devtools\', repos = \'cloud.r-project.org\')"')
+ if (os.environ['conf_cloud_provider'] in 'gcp') and (
+ "R_LIBS_SITE" not in conn.sudo('cat /opt/conda/miniconda3/lib/R/etc/Renviron').stdout):
+ conn.sudo(
+ '''bash -l -c 'echo "R_LIBS_SITE=${R_LIBS_SITE-'/usr/local/lib/R/site-library:/usr/lib/R/site-library:/usr/lib/R/library'}" >> /opt/conda/miniconda3/lib/R/etc/Renviron' ''')
+ conn.sudo('touch /home/{}/dataengine-service-devtools-ensured'.format(os.environ['conf_os_user']))
+ except Exception as err:
+ print('Failed to ensure devtools for dataproc with err: {}'.format(err))
+ sys.exit(1)
def install_r_pkg(requisites):
status = list()
error_parser = "ERROR:|error:|Cannot|failed|Please run|requires|Error|Skipping|couldn't find"
+ if os.environ['conf_resource'] in 'dataengine-service':
+ ensure_dataengine_service_devtools()
try:
- if os.environ['conf_resource'] in ('dataengine-service'):
- if os.environ['conf_cloud_provider'] in ('aws'):
- manage_pkg('-y install', 'remote', 'libcurl libcurl-devel')
- elif (os.environ['conf_cloud_provider'] in 'gcp') and ('-w-' in conn.sudo('hostname').stdout.replace('\n', '')):
- #manage_pkg('-y build-dep', 'remote', 'libcurl4-gnutls-dev libxml2-dev')
- manage_pkg('-y install', 'remote', 'libxml2-dev libcurl4-openssl-dev pkg-config')
- conn.sudo('R -e ".libPaths(\'/usr/lib/R/site-library\')"')
- conn.sudo('R -e "install.packages(\'devtools\', repos = \'cloud.r-project.org\'"')
for r_pkg in requisites:
name, vers = r_pkg
version = vers