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

lfrolov pushed a commit to branch DLAB-1748
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git

commit c80707169bf21f3a47d2aefa6a0bb7bed2a6eae4
Author: leonidfrolov <frolovl...@gmail.com>
AuthorDate: Thu Jul 16 14:25:14 2020 +0300

    [DLAB-1748]: added versions for pip dependencies
---
 infrastructure-provisioning/src/general/lib/os/fab.py | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/infrastructure-provisioning/src/general/lib/os/fab.py 
b/infrastructure-provisioning/src/general/lib/os/fab.py
index ba59eca..35073c7 100644
--- a/infrastructure-provisioning/src/general/lib/os/fab.py
+++ b/infrastructure-provisioning/src/general/lib/os/fab.py
@@ -87,21 +87,30 @@ def install_pip_pkg(requisites, pip_version, lib_group):
                     version = \
                     [i for i in ver if pip_pkg.split("==")[0].lower() in 
i][0].split(
                         '==')[1]
-                sudo('if grep -w -i -E  "Installing collected packages:" 
/tmp/tee.tmp > /tmp/{0}install_{1}.log; then  echo "" > 
/tmp/{0}install_{1}.log;fi'.format(pip_version, pip_pkg))
-                dep = sudo('cat /tmp/{0}install_{1}.list'.format(pip_version, 
pip_pkg)).replace('\r\n', '').strip()[31:]
+                sudo('if ! grep -w -i -E  "Installing collected packages:" 
/tmp/tee.tmp > /tmp/{0}install_{1}.log; then  echo "" > 
/tmp/{0}install_{1}.log;fi'.format(pip_version, pip_pkg))
+                dep = sudo('cat /tmp/{0}install_{1}.log'.format(pip_version, 
pip_pkg)).replace('\r\n', '').strip()[31:]
                 if dep == '' or dep == pip_pkg.split("==")[0]:
                     dep = []
                 else:
                     dep = dep.split(', ')
+                    for n, i in enumerate(dep):
+                        if i == pip_pkg.split("==")[0]:
+                            dep[n] = ''
+                        else:
+                            dep[n] = sudo('{} freeze 2>&1 | grep -w -i -E 
{}'.format(pip_version , i)).replace('==', ' v.')
+                    dep = [i for i in dep if i]
+
                 status.append({"group": "{}".format(lib_group), "name": 
pip_pkg.split("==")[0], "version": version, "status": "installed", "add_pkgs": 
dep})
             else:
                 err_status = 'failed'
-                versions = err[err.find("(from versions: ") + 16: 
err.find(")\r\n")]
+                versions = ''
+                if 'Could not find a version that satisfies the requirement' 
in err:
+                    versions = err[err.find("(from versions: ") + 16: 
err.find(")\r\n")]
+                    err_status = 'invalid version'
                 if versions == '':
                     versions = []
                 else:
                     versions = versions.split(', ')
-                    err_status = 'invalid version'
                 status.append({"group": "{}".format(lib_group), "name": 
pip_pkg.split("==")[0], "status": err_status,
                                    "error_message": err, "available_versions": 
versions})
         return status


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@dlab.apache.org
For additional commands, e-mail: commits-h...@dlab.apache.org

Reply via email to