]> git.apps.os.sepia.ceph.com Git - teuthology.git/commitdiff
Add optional priority for --test-repo
authorKyr Shatskyy <kyrylo.shatskyy@gmail.com>
Mon, 15 Oct 2018 20:00:15 +0000 (22:00 +0200)
committerKyr Shatskyy <kyrylo.shatskyy@gmail.com>
Wed, 13 Mar 2019 15:13:26 +0000 (16:13 +0100)
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 <kyrylo.shatskyy@suse.com>
teuthology/openstack/__init__.py
teuthology/task/install/rpm.py

index 31ee4cb232f560d6bd725dcb7a4e6e0d8a7c111a..3cf15f4285301a8ec25e2d97ad408531acd369a0 100644 (file)
@@ -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 = {
index 5be0659e080b0493ecb277be93faae604426f8c9..2ac418c7dfb31d71d1dc08848c88b3f73f99c3c9 100644 (file)
@@ -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):
     """