]> git-server-git.apps.pok.os.sepia.ceph.com Git - teuthology.git/commitdiff
task: install supports enable_coprs array 1844/head
authorCasey Bodley <cbodley@redhat.com>
Wed, 17 May 2023 20:21:37 +0000 (16:21 -0400)
committerCasey Bodley <cbodley@redhat.com>
Wed, 17 May 2023 20:24:56 +0000 (16:24 -0400)
enable the installation of packages in fedora copr repositories

Signed-off-by: Casey Bodley <cbodley@redhat.com>
teuthology/task/install/__init__.py
teuthology/task/install/rpm.py

index 686ab5e0530d40b648fd1bf77c314c50e00a9508..0f1bb63dacab49cc11db4a4833ccb8e43107055a 100644 (file)
@@ -458,6 +458,12 @@ def task(ctx, config):
     are welcome to add support for other distros.
 
 
+    Enable Fedora copr repositories using enable_coprs:
+
+    - install:
+        enable_coprs: [ceph/el9]
+
+
     Overrides are project specific:
 
     overrides:
@@ -599,6 +605,7 @@ def task(ctx, config):
                 extra_packages=config.get('extra_packages', []),
                 extra_system_packages=config.get('extra_system_packages', []),
                 extras=config.get('extras', None),
+                enable_coprs=config.get('enable_coprs', []),
                 flavor=flavor,
                 install_ceph_packages=config.get('install_ceph_packages', True),
                 packages=config.get('packages', dict()),
index f11fd8bc6e427cb8565b18fbc8f7b331f8b10b27..db057e6c75e508df727d769d3e019da4ea474b21 100644 (file)
@@ -173,6 +173,13 @@ def _update_package_list_and_install(ctx, remote, rpm, config):
     :param rpm: list of packages names to install
     :param config: the config dict
     """
+
+    enable_coprs = config.get('enable_coprs', [])
+    if len(enable_coprs):
+        remote.run(args=['sudo', 'dnf', '-y', 'install', 'dnf-command(copr)'])
+        for copr in enable_coprs:
+            remote.run(args=['sudo', 'dnf', '-y', 'copr', 'enable', copr])
+
     # rpm does not force installation of a particular version of the project
     # packages, so we can put extra_system_packages together with the rest
     system_pkglist = config.get('extra_system_packages')
@@ -368,6 +375,8 @@ def _remove_sources_list(ctx, config, remote):
     if remote.os.name not in ['opensuse', 'sle']:
         _yum_unset_check_obsoletes(remote)
 
+    for copr in config.get('enable_coprs', []):
+        remote.run(args=['sudo', 'dnf', '-y', 'copr', 'disable', copr])
 
 def _upgrade_packages(ctx, config, remote, pkgs):
     """