From: Kyr Shatskyy Date: Mon, 15 Oct 2018 20:00:15 +0000 (+0200) Subject: Add optional priority for --test-repo X-Git-Tag: 1.1.0~264^2~3 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=4bdc553d25770370356eeee0cc0ed862fb5410a6;p=teuthology.git Add optional priority for --test-repo Priority can be set adding optional '!' symbol with a number between name and url. Internally there will be a 'priority' field added next to 'name' and 'url' fields to the yaml definition. Usage examples: --test-repo 'first-repo:http://hostname.domain/no-priority/repo' --test-repo 'second-repo!99:http://hostname.domain/default-priority/repo' --test-repo 'third-repo!1:http://hostname.domain/highest-priority/repo' --test-repo 'fourth-repo!2:http://hostname.domain/next-priority/repo' --test-repo 'fifth-repo!0:http://hostname.domain/zero-priority/repo' Notes for zypper: The higher the number, the lower the priority. No priority is equivalent to 99 or 0 priorities. Signed-off-by: Kyr Shatskyy --- diff --git a/teuthology/openstack/__init__.py b/teuthology/openstack/__init__.py index 31ee4cb232..3cf15f4285 100644 --- a/teuthology/openstack/__init__.py +++ b/teuthology/openstack/__init__.py @@ -638,9 +638,15 @@ class TeuthologyOpenStack(OpenStack): else: argv.append(original_argv.pop(0)) if self.args.test_repo: - repos = [{'name':k, 'url': v} - for k, v in [x.split(':', 1) - for x in self.args.test_repo]] + def repo(name, url): + if '!' in name: + n, p = name.split('!', 1) + return {'name': n, 'priority': int(p), 'url': url} + else: + return {'name': name, 'url': url} + repos = [repo(k, v) + for k, v in [x.split(':', 1) + for x in self.args.test_repo]] log.info("Using repos: %s" % self.args.test_repo) overrides = { diff --git a/teuthology/task/install/rpm.py b/teuthology/task/install/rpm.py index 5be0659e08..2ac418c7df 100644 --- a/teuthology/task/install/rpm.py +++ b/teuthology/task/install/rpm.py @@ -83,10 +83,16 @@ def _zypper_addrepo(remote, repo_list): :return: """ for repo in repo_list: - remote.run(args=[ - 'sudo', 'zypper', '-n', 'addrepo', '--refresh', '--no-gpgcheck', - '-p', '1', repo['url'], repo['name'], - ]) + if 'priority' in repo: + remote.run(args=[ + 'sudo', 'zypper', '-n', 'addrepo', '--refresh', '--no-gpgcheck', + '-p', str(repo['priority']), repo['url'], repo['name'], + ]) + else: + remote.run(args=[ + 'sudo', 'zypper', '-n', 'addrepo', '--refresh', '--no-gpgcheck', + repo['url'], repo['name'], + ]) def _zypper_removerepo(remote, repo_list): """