Add more distro support when preparing environment 03/23403/2
authorzshi <zshi@redhat.com>
Thu, 20 Oct 2016 05:02:38 +0000 (13:02 +0800)
committerzshi <zshi@redhat.com>
Wed, 26 Oct 2016 09:48:41 +0000 (17:48 +0800)
Change-Id: I3ff4419e38872bc28e59699a11080777ea596dc3
Signed-off-by: zshi <zshi@redhat.com>
dovetail/prepare_env.py

index 785d5c3..3e4d696 100644 (file)
@@ -7,13 +7,51 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 #
 
+import platform
 import utils.dovetail_logger as dt_logger
 import utils.dovetail_utils as dt_utils
 
 
+def get_os():
+    """Get distro name.
+
+    :returns: return distro name as a string
+    """
+    return platform.dist()[0]
+
+
+def get_install_bin(os):
+    """Get install command binary.
+
+    :returns: return install command according to distro
+    """
+    if os in ['centos', 'redhat']:
+        return 'yum'
+    elif os == 'fedora':
+        return 'dnf'
+    elif os == 'ubuntu':
+        return 'apt-get'
+    else:
+        return None
+
+
+def get_docker_pkgname(os):
+    """Get docker package name.
+
+    :returns: return docker package name according to distro
+    """
+    if os in ['centos', 'fedora', 'redhat']:
+        return 'docker'
+    elif os == 'ubuntu':
+        return 'docker.io'
+    else:
+        return None
+
 logger = dt_logger.Logger('prepare_env.py').getLogger()
 
-cmd = "sudo apt-get -y install docker.io python-pip"
+os_name = get_os()
+cmd = "sudo %s -y install %s python-pip" \
+      % (get_install_bin(os_name), get_docker_pkgname(os_name))
 dt_utils.exec_cmd(cmd, logger)
 
 cmd = "sudo pip install click pyyaml jinja2"