]> git.apps.os.sepia.ceph.com Git - teuthology.git/commitdiff
task.install: use get_builder_project()
authorZack Cerza <zack@redhat.com>
Fri, 2 Sep 2016 23:08:22 +0000 (17:08 -0600)
committerZack Cerza <zack@redhat.com>
Tue, 4 Oct 2016 15:01:20 +0000 (09:01 -0600)
Signed-off-by: Zack Cerza <zack@redhat.com>
teuthology/task/install.py
teuthology/test/task/test_install.py

index b02fef838e2ba66bc9c2d077a7b744ccbc96d384..96f2522a339449b68bde404be20a9000faa8e80a 100644 (file)
@@ -21,8 +21,8 @@ log = logging.getLogger(__name__)
 RELEASE = "1-0"
 
 
-def _get_gitbuilder_project(ctx, remote, config):
-    return packaging.GitbuilderProject(
+def _get_builder_project(ctx, remote, config):
+    return packaging.get_builder_project()(
         config.get('project', 'ceph'),
         config,
         remote=remote,
@@ -77,19 +77,19 @@ def _update_deb_package_list_and_install(ctx, remote, debs, config):
             stdout=StringIO(),
         )
 
-    gitbuilder = _get_gitbuilder_project(ctx, remote, config)
+    builder = _get_builder_project(ctx, remote, config)
     log.info("Installing packages: {pkglist} on remote deb {arch}".format(
-        pkglist=", ".join(debs), arch=gitbuilder.arch)
+        pkglist=", ".join(debs), arch=builder.arch)
     )
     # get baseurl
-    log.info('Pulling from %s', gitbuilder.base_url)
+    log.info('Pulling from %s', builder.base_url)
 
-    version = gitbuilder.version
+    version = builder.version
     log.info('Package version is %s', version)
 
     remote.run(
         args=[
-            'echo', 'deb', gitbuilder.base_url, gitbuilder.distro, 'main',
+            'echo', 'deb', builder.base_url, builder.distro, 'main',
             run.Raw('|'),
             'sudo', 'tee', '/etc/apt/sources.list.d/{proj}.list'.format(
                 proj=config.get('project', 'ceph')),
@@ -139,6 +139,10 @@ def _yum_fix_repo_host(remote, project):
     """
     Update the hostname to reflect the gitbuilder_host setting.
     """
+    # Skip this bit if we're not using gitbuilder
+    if not isinstance(packaging.get_builder_project(),
+                      packaging.GitbuilderProject):
+        return
     old_host = teuth_config._defaults['gitbuilder_host']
     new_host = teuth_config.gitbuilder_host
     if new_host == old_host:
@@ -217,14 +221,14 @@ def _update_rpm_package_list_and_install(ctx, remote, rpm, config):
     :param config: the config dict
     """
     rpm = _rpm_package_overrides(rpm, remote.os)
-    gitbuilder = _get_gitbuilder_project(ctx, remote, config)
-    log.info('Pulling from %s', gitbuilder.base_url)
-    log.info('Package version is %s', gitbuilder.version)
+    builder = _get_builder_project(ctx, remote, config)
+    log.info('Pulling from %s', builder.base_url)
+    log.info('Package version is %s', builder.version)
     log.info("Installing packages: {pkglist} on remote rpm {arch}".format(
-        pkglist=", ".join(rpm), arch=gitbuilder.arch))
-    dist_release = gitbuilder.dist_release
-    project = gitbuilder.project
-    start_of_url = gitbuilder.base_url
+        pkglist=", ".join(rpm), arch=builder.arch))
+    dist_release = builder.dist_release
+    project = builder.project
+    start_of_url = builder.base_url
     if dist_release == 'opensuse':
         proj_release = '{proj}-release-{release}.noarch'.format(
             proj=project, release=RELEASE)
@@ -242,7 +246,7 @@ def _update_rpm_package_list_and_install(ctx, remote, rpm, config):
         remote.run(args=['sudo', 'yum', '-y', 'install', base_url])
 
     if dist_release != 'opensuse':
-        uri = gitbuilder.uri_reference
+        uri = builder.uri_reference
         _yum_fix_repo_priority(remote, project, uri)
         _yum_fix_repo_host(remote, project)
         _yum_set_check_obsoletes(remote)
@@ -279,23 +283,23 @@ def _update_rpm_package_list_and_install(ctx, remote, rpm, config):
             remote.run(
                 args = ['if', 'test', '-e',
                         run.Raw(pkg), run.Raw(';'), 'then',
-                        'sudo', pkg_mng_cmd, pkg_mng_opts, 'remove', 
+                        'sudo', pkg_mng_cmd, pkg_mng_opts, 'remove',
                         pkg_mng_subcommand_opts, pkg, run.Raw(';'),
-                        'sudo', pkg_mng_cmd, pkg_mng_opts, 'install', 
+                        'sudo', pkg_mng_cmd, pkg_mng_opts, 'install',
                         pkg_mng_subcommand_opts, pkg, run.Raw(';'),
                         'fi']
             )
         if pkg is None:
             remote.run(args=[
-                'sudo', pkg_mng_cmd, pkg_mng_opts, 'install', 
+                'sudo', pkg_mng_cmd, pkg_mng_opts, 'install',
                 pkg_mng_subcommand_opts, cpack
             ])
         else:
             remote.run(
                 args = ['if', 'test', run.Raw('!'), '-e',
                         run.Raw(pkg), run.Raw(';'), 'then',
-                        'sudo', pkg_mng_cmd, pkg_mng_opts, 'install', 
-                        pkg_mng_subcommand_opts, cpack, run.Raw(';'), 
+                        'sudo', pkg_mng_cmd, pkg_mng_opts, 'install',
+                        pkg_mng_subcommand_opts, cpack, run.Raw(';'),
                         'fi'])
 
 
@@ -315,9 +319,9 @@ def verify_package_version(ctx, config, remote):
     if config.get("extras"):
         log.info("Skipping version verification...")
         return True
-    gitbuilder = _get_gitbuilder_project(ctx, remote, config)
-    version = gitbuilder.version
-    pkg_to_check = gitbuilder.project
+    builder = _get_builder_project(ctx, remote, config)
+    version = builder.version
+    pkg_to_check = builder.project
     installed_ver = packaging.get_package_version(remote, pkg_to_check)
     if installed_ver and version in installed_ver:
         msg = "The correct {pkg} version {ver} is installed.".format(
@@ -464,8 +468,8 @@ def _remove_rpm(ctx, config, remote, rpm):
     rpm = _rpm_package_overrides(rpm, remote.os)
     log.info("Removing packages: {pkglist} on rpm system.".format(
         pkglist=", ".join(rpm)))
-    gitbuilder = _get_gitbuilder_project(ctx, remote, config)
-    dist_release = gitbuilder.dist_release
+    builder = _get_builder_project(ctx, remote, config)
+    dist_release = builder.dist_release
 
     if dist_release == 'opensuse':
         pkg_mng_cmd = 'zypper'
@@ -482,7 +486,7 @@ def _remove_rpm(ctx, config, remote, rpm):
         ] + rpm + [
             run.Raw(';'),
             'do',
-            'sudo', 
+            'sudo',
             pkg_mng_cmd, pkg_mng_opts, 'remove', pkg_mng_subcommand_opts,
             run.Raw('$d'), run.Raw('||'), 'true', run.Raw(';'),
             'done',
@@ -720,13 +724,13 @@ def _upgrade_deb_packages(ctx, config, remote, debs):
             stdout=StringIO(),
         )
 
-    gitbuilder = _get_gitbuilder_project(ctx, remote, config)
+    builder = _get_builder_project(ctx, remote, config)
     # get distro name and arch
-    dist = gitbuilder.distro
-    base_url = gitbuilder.base_url
+    dist = builder.distro
+    base_url = builder.base_url
     log.info('Pulling from %s', base_url)
 
-    version = gitbuilder.version
+    version = builder.version
     log.info('Package version is %s', version)
 
     remote.run(
@@ -886,25 +890,25 @@ def _upgrade_rpm_packages(ctx, config, remote, pkgs):
     :param pkgs: the RPM packages to be installed
     :param branch: the branch of the project to be used
     """
-    gitbuilder = _get_gitbuilder_project(ctx, remote, config)
+    builder = _get_builder_project(ctx, remote, config)
     log.info(
         "Host {host} is: {distro} {ver} {arch}".format(
             host=remote.shortname,
-            distro=gitbuilder.os_type,
-            ver=gitbuilder.os_version,
-            arch=gitbuilder.arch,)
+            distro=builder.os_type,
+            ver=builder.os_version,
+            arch=builder.arch,)
     )
 
-    base_url = gitbuilder.base_url
+    base_url = builder.base_url
     log.info('Repo base URL: %s', base_url)
-    project = gitbuilder.project
+    project = builder.project
 
     # Remove the -release package before upgrading it
     args = ['sudo', 'rpm', '-ev', '%s-release' % project]
     remote.run(args=args)
 
     # Build the new -release package path
-    if (gitbuilder.dist_release == 'opensuse'):
+    if (builder.dist_release == 'opensuse'):
         release_rpm = "{base}/noarch/{proj}-release-{release}.noarch.rpm".format(
             base=base_url,
             proj=project,
@@ -915,20 +919,20 @@ def _upgrade_rpm_packages(ctx, config, remote, pkgs):
             base=base_url,
             proj=project,
             release=RELEASE,
-            dist_release=gitbuilder.dist_release,
+            dist_release=builder.dist_release,
         )
 
     # Upgrade the -release package
     args = ['sudo', 'rpm', '-Uv', release_rpm]
     remote.run(args=args)
 
-    if gitbuilder.dist_release != 'opensuse':
-        uri = gitbuilder.uri_reference
+    if builder.dist_release != 'opensuse':
+        uri = builder.uri_reference
         _yum_fix_repo_priority(remote, project, uri)
         _yum_fix_repo_host(remote, project)
         _yum_set_check_obsoletes(remote)
 
-    if gitbuilder.dist_release == 'opensuse':
+    if builder.dist_release == 'opensuse':
         pkg_mng_cmd = 'zypper'
         pkg_mng_opts = '-a'
     else:
@@ -941,7 +945,7 @@ def _upgrade_rpm_packages(ctx, config, remote, pkgs):
         ])
 
     # Actually upgrade the project packages
-    if gitbuilder.dist_release == 'opensuse':
+    if builder.dist_release == 'opensuse':
         pkg_mng_opts = '-n'
         pkg_mng_subcommand_opts = '--capability'
     else:
@@ -1193,12 +1197,6 @@ def ship_utilities(ctx, config):
 def get_flavor(config):
     """
     Determine the flavor to use.
-
-    Flavor tells us what gitbuilder to fetch the prebuilt software
-    from. It's a combination of possible keywords, in a specific
-    order, joined by dashes. It is used as a URL path name. If a
-    match is not found, the teuthology run fails. This is ugly,
-    and should be cleaned up at some point.
     """
     config = config or dict()
     flavor = config.get('flavor', 'basic')
index 7e4a5b435b3cb735c890576feff7cd07057525c5..be08868d6d84eb69c4f86d53f3aa143eb1ce34d2 100644 (file)
@@ -46,7 +46,7 @@ class TestInstall(object):
         assert result['rpm'] == ['rpm1', 'rpm2']
         assert result['deb'] == default_pkgs['deb']
 
-    @patch("teuthology.task.install._get_gitbuilder_project")
+    @patch("teuthology.task.install._get_builder_project")
     @patch("teuthology.task.install.packaging.get_package_version")
     def test_verify_ceph_version_success(self, m_get_package_version,
                                          m_gitbuilder_project):
@@ -57,7 +57,7 @@ class TestInstall(object):
         m_get_package_version.return_value = "0.89.0"
         install.verify_package_version(Mock(), Mock(), Mock())
 
-    @patch("teuthology.task.install._get_gitbuilder_project")
+    @patch("teuthology.task.install._get_builder_project")
     @patch("teuthology.task.install.packaging.get_package_version")
     def test_verify_ceph_version_failed(self, m_get_package_version,
                                         m_gitbuilder_project):
@@ -72,7 +72,7 @@ class TestInstall(object):
         with pytest.raises(RuntimeError):
             install.verify_package_version(Mock(), config, Mock())
 
-    @patch("teuthology.task.install._get_gitbuilder_project")
+    @patch("teuthology.task.install._get_builder_project")
     @patch("teuthology.task.install.packaging.get_package_version")
     def test_skip_when_using_ceph_deploy(self, m_get_package_version,
                                          m_gitbuilder_project):