]> git-server-git.apps.pok.os.sepia.ceph.com Git - teuthology.git/commitdiff
function to install debian downstream packages
authorVasu Kulkarni <vasu@redhat.com>
Tue, 15 Nov 2016 22:18:17 +0000 (14:18 -0800)
committerVasu Kulkarni <vasu@redhat.com>
Wed, 16 Nov 2016 04:27:11 +0000 (20:27 -0800)
Install debian downstream packages based on packages
defined in rh/downstream.yaml defined in suites dir

Signed-off-by: Vasu Kulkarni <vasu@redhat.com>
teuthology/task/install/redhat.py

index 067d5a28d5351de21a895e91d6f6c74a78f9386e..9d7c14d66543a10e2079c84f2192307df59a3538 100644 (file)
@@ -71,8 +71,10 @@ def install(ctx, config):
                 log.info("Installing on RHEL node: %s", remote.shortname)
                 p.spawn(rh_install_pkgs, ctx, remote, version, downstream_config)
             else:
-                log.info("Node %s is not RHEL", remote.shortname)
-                raise RuntimeError("Test requires RHEL nodes")
+                log.info("Install on Ubuntu node: %s", remote.shortname)
+                p.spawn(rh_install_deb_pkgs, ctx, remote, version,
+                        downstream_config, config['deb-repo'],
+                        config['deb-gpg-key'])
     try:
         yield
     finally:
@@ -164,6 +166,42 @@ def set_rh_deb_repo(remote, deb_repo, deb_gpg_key=None):
     remote.run(args=['sudo', 'apt-get', 'update'])
 
 
+def rh_install_deb_pkgs(
+        ctx,
+        remote,
+        version,
+        downstream_config,
+        deb_repo,
+        deb_gpg_key):
+    """
+    Setup debian repo, Install gpg key
+    and Install on debian packages
+    : param ctx
+    : param remote
+    : param downstream_config the dict object that has downstream pkg info
+    : deb_repo - http path of downstream ubuntu repo
+    : deb_gpg_key - gpg key for the ubuntu pkg
+    """
+    set_rh_deb_repo(remote, deb_repo, deb_gpg_key)
+    rh_version_check = downstream_config.get('versions').get('deb').get('mapped')
+    rh_deb_pkgs = downstream_config.get('pkgs').get('deb')
+    pkgs = str.join(' ', rh_deb_pkgs)
+    log.info("Installing redhat ceph packages")
+    remote.run(args=['sudo', 'apt-get', '-y', 'install',
+                     run.Raw(pkgs)])
+    # check package version
+    installed_version = packaging.get_package_version(remote, 'ceph-common')
+    log.info(
+        "Node: {n} Ceph version installed is {v}".format(
+            n=remote.shortname,
+            v=version))
+    req_ver = rh_version_check[version]
+    if installed_version.startswith(req_ver):
+        log.info("Installed version matches on %s", remote.shortname)
+    else:
+        raise RuntimeError("Version check failed on node %s", remote.shortname)
+
+
 def uninstall_pkgs(ctx, remote):
     """
     Removes Ceph from all RH hosts