Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Unified Diff: client/tests/kvm/tests/build.py

Issue 4823005: Merge remote branch 'cros/upstream' into tempbranch (Closed) Base URL: http://git.chromium.org/git/autotest.git@master
Patch Set: patch Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « client/tests/kvm/scripts/unattended.py ('k') | client/tests/kvm/tests/ethtool.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: client/tests/kvm/tests/build.py
diff --git a/client/tests/kvm/tests/build.py b/client/tests/kvm/tests/build.py
index f39371a709fafacf0081e1c8b5cad57d1a2a4359..c4f0b1896496571ca430934ecc7b3bd1d1213c0a 100644
--- a/client/tests/kvm/tests/build.py
+++ b/client/tests/kvm/tests/build.py
@@ -1,10 +1,5 @@
import time, os, sys, urllib, re, signal, logging, datetime, glob, ConfigParser
import shutil
-try:
- import koji
- KOJI_INSTALLED = True
-except ImportError:
- KOJI_INSTALLED = False
from autotest_lib.client.bin import utils, test, os_dep
from autotest_lib.client.common_lib import error
import kvm_utils
@@ -268,96 +263,27 @@ class KojiInstaller(YumInstaller):
"""
def __init__(self, test, params):
"""
- Initialize koji/brew session.
+ Gets parameters and initializes the package downloader.
@param test: kvm test object
@param params: Dictionary with test arguments
"""
super(KojiInstaller, self).__init__(test, params)
-
default_koji_cmd = '/usr/bin/koji'
default_src_pkg = 'qemu'
-
- self.koji_cmd = params.get("koji_cmd", default_koji_cmd)
self.src_pkg = params.get("src_pkg", default_src_pkg)
-
- # Checking if all required dependencies are available
- os_dep.command(self.koji_cmd)
-
- config_map = {'/usr/bin/koji': '/etc/koji.conf',
- '/usr/bin/brew': '/etc/brewkoji.conf'}
- config_file = config_map[self.koji_cmd]
- base_name = os.path.basename(self.koji_cmd)
- if os.access(config_file, os.F_OK):
- f = open(config_file)
- config = ConfigParser.ConfigParser()
- config.readfp(f)
- f.close()
- else:
- raise error.TestError('Configuration file %s missing or with wrong '
- 'permissions' % config_file)
-
- if config.has_section(base_name):
- self.koji_options = {}
- session_options = {}
- server = None
- for name, value in config.items(base_name):
- if name in ('user', 'password', 'debug_xmlrpc', 'debug'):
- session_options[name] = value
- self.koji_options[name] = value
- self.session = koji.ClientSession(self.koji_options['server'],
- session_options)
- else:
- raise error.TestError('Koji config file %s does not have a %s '
- 'session' % (config_file, base_name))
-
self.tag = params.get("koji_tag", None)
self.build = params.get("koji_build", None)
- if self.build and self.build.isdigit():
- self.build = int(self.build)
- if self.tag and self.build:
- logging.info("Both tag and build parameters provided, ignoring tag "
- "parameter...")
- if not self.tag and not self.build:
- raise error.TestError("Koji install selected but neither koji_tag "
- "nor koji_build parameters provided. Please "
- "provide an appropriate tag or build name.")
+ koji_cmd = params.get("koji_cmd", default_koji_cmd)
+ self.downloader = kvm_utils.KojiDownloader(cmd=koji_cmd)
def _get_packages(self):
"""
Downloads the specific arch RPMs for the specific build name.
"""
- if self.build is None:
- try:
- builds = self.session.listTagged(self.tag, latest=True,
- package=self.src_pkg)
- except koji.GenericError, e:
- raise error.TestError("Error finding latest build for tag %s: "
- "%s" % (self.tag, e))
- if not builds:
- raise error.TestError("Tag %s has no builds of %s" %
- (self.tag, self.src_pkg))
- info = builds[0]
- else:
- info = self.session.getBuild(self.build)
-
- if info is None:
- raise error.TestError('No such brew/koji build: %s' %
- self.build)
- rpms = self.session.listRPMs(buildID=info['id'],
- arches=utils.get_arch())
- if not rpms:
- raise error.TestError("No %s packages available for %s" %
- utils.get_arch(), koji.buildLabel(info))
- for rpm in rpms:
- rpm_name = koji.pathinfo.rpm(rpm)
- url = ("%s/%s/%s/%s/%s" % (self.koji_options['pkgurl'],
- info['package_name'],
- info['version'], info['release'],
- rpm_name))
- utils.get_file(url,
- os.path.join(self.srcdir, os.path.basename(url)))
+ self.downloader.get(src_package=self.src_pkg, tag=self.tag,
+ build=self.build, dst_dir=self.srcdir)
def install(self):
@@ -680,11 +606,7 @@ def run_build(test, params, env):
elif install_mode == 'yum':
installer = YumInstaller(test, params)
elif install_mode == 'koji':
- if KOJI_INSTALLED:
- installer = KojiInstaller(test, params)
- else:
- raise error.TestError('Koji install selected but koji/brew are not '
- 'installed')
+ installer = KojiInstaller(test, params)
else:
raise error.TestError('Invalid or unsupported'
' install mode: %s' % install_mode)
« no previous file with comments | « client/tests/kvm/scripts/unattended.py ('k') | client/tests/kvm/tests/ethtool.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698