From: Vasu Kulkarni Date: Thu, 30 Apr 2020 20:23:45 +0000 (-0700) Subject: Fixes to install task to handle extra system pkgs X-Git-Tag: 1.1.0~117^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F1463%2Fhead;p=teuthology.git Fixes to install task to handle extra system pkgs Signed-off-by: Vasu Kulkarni Fix unit test cases Signed-off-by: Vasu Kulkarni --- diff --git a/teuthology/task/install/redhat.py b/teuthology/task/install/redhat.py index 4da3ad32..08568bda 100644 --- a/teuthology/task/install/redhat.py +++ b/teuthology/task/install/redhat.py @@ -57,6 +57,10 @@ def install(ctx, config): log.info("using yaml path %s", yaml_path) downstream_config = yaml.safe_load(open(yaml_path)) rh_versions = downstream_config.get('versions', dict()).get('supported', []) + external_config = dict(extra_system_packages=config.get('extra_system_packages', {}), + extra_packages=config.get('extra_packages', {}), + ) + downstream_config.update(external_config) version = config['rhbuild'] if version in rh_versions: log.info("%s is a supported version", version) @@ -70,8 +74,7 @@ def install(ctx, config): else: log.info("Install on Ubuntu node: %s", remote.shortname) p.spawn(install_deb_pkgs, ctx, remote, version, - downstream_config, config['deb-repo'], - config['deb-gpg-key']) + downstream_config) try: yield finally: @@ -92,7 +95,9 @@ def install_pkgs(ctx, remote, version, downstream_config): :param downstream_config the dict object that has downstream pkg info """ rh_version_check = downstream_config.get('versions').get('rpm').get('mapped') - rh_rpm_pkgs = downstream_config.get('pkgs').get('rpm') + rh_rpm_pkgs = downstream_config.get('pkgs').get('rpm') + \ + downstream_config.get('extra_system_packages').get('rpm', []) + \ + downstream_config.get('extra_packages').get('rpm', []) pkgs = str.join(' ', rh_rpm_pkgs) log.info("Remove any epel packages installed on node %s", remote.shortname) # below packages can come from epel and still work, ensure we use cdn pkgs @@ -104,6 +109,7 @@ def install_pkgs(ctx, remote, version, downstream_config): run.Raw("leveldb xmlstarlet fcgi"), '-y'], check_status=False) + log.info("Installing redhat ceph packages") remote.run(args=['sudo', 'yum', '-y', 'install', run.Raw(pkgs)]) @@ -157,21 +163,18 @@ def install_deb_pkgs( ctx, remote, version, - downstream_config, - deb_repo, - deb_gpg_key): + downstream_config): """ 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_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') + rh_deb_pkgs = downstream_config.get('pkgs').get('deb') + \ + downstream_config.get('extra_system_packages').get('deb', []) + \ + downstream_config.get('extra_packages').get('deb', []) pkgs = str.join(' ', rh_deb_pkgs) log.info("Installing redhat ceph packages") remote.run(args=['sudo', 'apt-get', '-y', 'install', diff --git a/teuthology/test/task/test_install.py b/teuthology/test/task/test_install.py index 0334d685..15b9085e 100644 --- a/teuthology/test/task/test_install.py +++ b/teuthology/test/task/test_install.py @@ -306,14 +306,14 @@ class TestInstall(object): remote = Mock() version = '1.3.2' rh_ds_yaml = dict() - rh_ds_yaml = {'versions': {'deb': {'mapped': {'1.3.2': '0.94.5'}}}, - 'pkgs': { 'deb': ['pkg1', 'pkg2'] }} + rh_ds_yaml = { + 'versions': {'deb': {'mapped': {'1.3.2': '0.94.5'}}}, + 'pkgs': {'deb': ['pkg1', 'pkg2']}, + 'extra_system_packages': {'deb': ['es_pkg1', 'es_pkg2']}, + 'extra_packages': {'deb': ['e_pkg1', 'e_pkg2']}, + } m_get_pkg_version.return_value = "0.94.5" - deb_repo=Mock() - deb_gpg_key=Mock() - install.redhat.install_deb_pkgs(ctx, remote, version, rh_ds_yaml, - deb_repo, deb_gpg_key) - + install.redhat.install_deb_pkgs(ctx, remote, version, rh_ds_yaml) @patch("teuthology.task.install.packaging.get_package_version") def test_rh_install_pkgs(self, m_get_pkg_version): @@ -321,9 +321,14 @@ class TestInstall(object): remote = Mock() version = '1.3.2' rh_ds_yaml = dict() - rh_ds_yaml = {'versions': {'rpm': {'mapped': {'1.3.2': '0.94.5', - '1.3.1': '0.94.3'}}}, - 'pkgs': { 'rpm': ['pkg1', 'pkg2'] }} + rh_ds_yaml = { + 'versions': {'rpm': {'mapped': {'1.3.2': '0.94.5', + '1.3.1': '0.94.3'}}}, + 'pkgs': {'rpm': ['pkg1', 'pkg2']}, + 'extra_system_packages': {'rpm': ['es_pkg1', 'es_pkg2']}, + 'extra_packages': {'rpm': ['e_pkg1', 'e_pkg2']}, + } + m_get_pkg_version.return_value = "0.94.5" install.redhat.install_pkgs(ctx, remote, version, rh_ds_yaml) version = '1.3.1'