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