diff options
author | Stamatis Katsaounis <mokats@intracom-telecom.com> | 2019-03-04 16:12:10 +0200 |
---|---|---|
committer | Dan Xu <xudan16@huawei.com> | 2019-03-18 02:29:02 +0000 |
commit | ef2d5282306a277e591aa3c355277c6f158d8e76 (patch) | |
tree | 9f2bdf2bf77e1cfd08a058eaa696b0ed673b67fe /dovetail/utils/dovetail_utils.py | |
parent | 1540d41ec9291d61c1cd5b5d2f347d1d8f9c3dbe (diff) |
Replace subprocess commands with Docker SDK
JIRA: DOVETAIL-752
This patch replaces all python subprocess commands with the
Docker SDK relevant commands.
Change-Id: Iac7caffd80a863a8a022247d735b2a7f2792e49d
Signed-off-by: Stamatis Katsaounis <mokats@intracom-telecom.com>
Diffstat (limited to 'dovetail/utils/dovetail_utils.py')
-rw-r--r-- | dovetail/utils/dovetail_utils.py | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/dovetail/utils/dovetail_utils.py b/dovetail/utils/dovetail_utils.py index 0f26eb26..a3d07824 100644 --- a/dovetail/utils/dovetail_utils.py +++ b/dovetail/utils/dovetail_utils.py @@ -19,6 +19,7 @@ from datetime import datetime from distutils.version import LooseVersion import yaml import python_hosts +import docker from dovetail import constants from dovetail_config import DovetailConfig as dt_cfg @@ -157,20 +158,17 @@ def show_progress_bar(length): def check_docker_version(logger=None): - server_ret, server_ver = \ - exec_cmd("sudo docker version -f'{{.Server.Version}}'", logger=logger) - client_ret, client_ver = \ - exec_cmd("sudo docker version -f'{{.Client.Version}}'", logger=logger) - if server_ret == 0: - logger.debug('docker server version: {}'.format(server_ver)) - if server_ret != 0 or (LooseVersion(server_ver) < LooseVersion('1.12.3')): + client = docker.from_env() + server_ver = None + try: + server_ver = client.version()['Version'] + except Exception: + logger.error('Failed to get Docker server version') + if server_ver and (LooseVersion(server_ver) >= LooseVersion('1.12.3')): + logger.debug('Docker server version: {}'.format(server_ver)) + else: logger.error("Don't support this Docker server version. " "Docker server should be updated to at least 1.12.3.") - if client_ret == 0: - logger.debug('docker client version: {}'.format(client_ver)) - if client_ret != 0 or (LooseVersion(client_ver) < LooseVersion('1.12.3')): - logger.error("Don't support this Docker client version. " - "Docker client should be updated to at least 1.12.3.") def add_hosts_info(ip, hostnames): @@ -316,7 +314,7 @@ def check_cacert_file(cacert, logger=None): def get_hosts_info(logger=None): - hosts_config = '' + hosts_config = {} hosts_config_file = os.path.join(dt_cfg.dovetail_config['config_dir'], 'hosts.yaml') if not os.path.isfile(hosts_config_file): @@ -341,7 +339,7 @@ def get_hosts_info(logger=None): if hostname) if not names_str: continue - hosts_config += ' --add-host=\'{}\':{} '.format(names_str, ip) + hosts_config[names_str] = ip logger.debug('Get hosts info {}:{}.'.format(ip, names_str)) return hosts_config |