This is an automated email from the ASF dual-hosted git repository. lfrolov pushed a commit to branch DLAB-1961 in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
commit ef0a28a44b8ae63be2b359d02817bbe009b637d5 Author: leonidfrolov <frolovl...@gmail.com> AuthorDate: Wed Jul 22 18:12:29 2020 +0300 [DLAB-1594]: fixed for apt packages --- .../src/general/lib/os/debian/notebook_lib.py | 37 ++++++++++------------ 1 file changed, 16 insertions(+), 21 deletions(-) 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 18d7f59..224e59c 100644 --- a/infrastructure-provisioning/src/general/lib/os/debian/notebook_lib.py +++ b/infrastructure-provisioning/src/general/lib/os/debian/notebook_lib.py @@ -375,44 +375,39 @@ def install_os_pkg(requisites): os_pkg = "{}={}".format(os_pkg[0], os_pkg[1]) else: os_pkg = os_pkg[0] - sudo('DEBIAN_FRONTEND=noninteractive apt-get -y install {0} 2>&1 | tee /tmp/tee.tmp; if ! grep -w -E "({1})" /tmp/tee.tmp > ' + 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_{0}.log; then echo "" > /tmp/os_install_{0}.log;fi'.format(os_pkg, error_parser)) err = sudo('cat /tmp/os_install_{}.log'.format(os_pkg)).replace('"', "'") sudo('cat /tmp/tee.tmp | if ! grep -w -E -A 20 "({1})" /tmp/tee.tmp > ' '/tmp/os_install_{0}.log; then echo "" > /tmp/os_install_{0}.log;fi'.format(os_pkg, new_pkgs_parser)) dep = sudo('cat /tmp/os_install_{}.log'.format(os_pkg)) - if err == '': - dep = dep[len(new_pkgs_parser): dep.find(" upgraded, ") - 1].replace('\r', '') \ - .replace('\n', '').replace(' ', ' ').replace(' {} '.format(os_pkg.split("=")[0]), ' ').strip().split(' ') - if dep == '' or dep == os_pkg.split("=")[0]: - dep = [] - else: - for n, i in enumerate(dep): - pkg = sudo('apt list --installed 2>&1 | grep {}'.format(i)) - if pkg == '': - pkg = sudo('apt list --installed 2>&1 | grep {}'.format(i.lower())) - if i == os_pkg.split("=")[0]: - dep[n] = '' - elif "/" in pkg: - dep[n] = '{} v.{}'.format(pkg.split('/')[0], pkg.split(' ')[1]) - dep = [i for i in dep if i] - else: + if dep == '': dep = [] + else: + dep = dep[len(new_pkgs_parser): dep.find(" upgraded, ") - 1].replace('\r', '') \ + .replace('\n', '').replace(' ', ' ').replace(' {} '.format(os_pkg.split("=")[0]), + ' ').strip().split(' ') + for n, i in enumerate(dep): + dep[n] = sudo('apt show {} 2>&1 | grep Version:'.format(i)).replace('Version: ', '{} v.'.format(i)) + dep = [i for i in dep if i] if 'E: Version' in err and 'was not found' in err: versions = sudo ('apt-cache policy {} | grep 500 | grep -v Packages'.format(os_pkg.split("=")[0])).replace('\r\n', '').replace(' 500', '').replace(' ', ' ').strip().split(' ') - status_msg = 'invalid version' + if versions != '': + status_msg = 'invalid version' else: versions = [] status_msg = 'failed' sudo('apt list --installed | if ! grep {0}/ > /tmp/os_install_{1}.list; then echo "" > /tmp/os_install_{1}.list;fi'.format(os_pkg.split("=")[0], os_pkg)) res = sudo('cat /tmp/os_install_{}.list'.format(os_pkg)) + version = os_pkg.split("=")[1] if res: ansi_escape = re.compile(r'\x1b[^m]*m') ver = ansi_escape.sub('', res).split("\r\n") version = [i for i in ver if os_pkg.split("=")[0] in i][0].split(' ')[1] - status.append({"group": "os_pkg", "name": os_pkg.split("=")[0], "version": version, "status": "installed", "add_pkgs": dep}) - else: - status.append({"group": "os_pkg", "name": os_pkg.split("=")[0], "status": status_msg, "error_message": err, "available_versions": versions}) + if os_pkg.split("=")[1] == '' or os_pkg.split("=")[1] == version: + status_msg = "installed" + status.append({"group": "os_pkg", "name": os_pkg.split("=")[0], "version": version, "status": status_msg, + "error_message": err, "add_pkgs": dep, "available_versions": versions}) sudo('unattended-upgrades -v') sudo('export LC_ALL=C') return status --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@dlab.apache.org For additional commands, e-mail: commits-h...@dlab.apache.org