#551 Set the ownership in koji based on the dist-git owner
Merged 2 years ago by mohanboddu. Opened 3 years ago by mohanboddu.
fedora-infra/ mohanboddu/ansible koji-pkg-owner  into  main

@@ -298,7 +298,28 @@ 

      return project_names_to_branches

  

  

- def set_koji_ownership(tag, packages, arches, verbose=False):

+ def get_pagure_project_owner(namespace, package, verbose=False):

+     """

+     Gets Pagure projects owner in the desired namespace

+     :param namespace: string of the namespace to query for projects

+     :param project: string of the project name

+     :param verbose: prints out verbose information

+     :return: the owner name

+     """

+     pagure_owner_url = urljoin(PAGURE_URL, 'api/0/{0}/{1}'.format(namespace, package))

+     session = retry_session()

+     if verbose:

+         print('- Querying {0}'.format(pagure_owner_url))

+     response = session.get(pagure_owner_url, verify=VERIFY, timeout=120)

+     if not bool(response):

+         print("Failed to talk to %r." % (

+             pagure_owner_url), file=sys.stderr)

+         return 'releng' # default to releng as the onwer

+     owner = response.json()['access_users']['owner'][0]

+     return owner

+ 

+ 

+ def set_koji_ownership(tag, namespace, packages, arches, verbose=False):

      koji_login_options = get_options()

  

      koji_options={
@@ -347,7 +368,7 @@ 

              koji_pkgs[p['package_name']] = p

  

          for pkg in packages:

-             owner = 'releng'  # always

+             owner = get_pagure_project_owner(namespace, pkg, verbose=verbose)

              if pkg not in koji_pkgs:

                  extra_arches = None

                  if pkg in EXTRA_ARCH_LIST:
@@ -363,7 +384,15 @@ 

                      print('- Setting the owner on package "{0}" for the tag '

                            '"{1}" on arch "{2}"'

                            .format(pkg, tag, arch))

-                 session.packageListSetOwner(tag, pkg, owner, force=True)

+                 try:

+                     session.packageListSetOwner(tag, pkg, owner, force=True)

+                 except:

+                     # Onwer is not added to koji yet, setting releng as owner

+                     print('- Setting releng as owner on package "{0}" for the tag '

+                           '"{1}" on arch "{2}"'

+                           .format(pkg, tag, arch))

+                     session.packageListSetOwner(tag, pkg, 'releng', force=True)

+ 

  

  

  if __name__ == '__main__':
@@ -426,5 +455,5 @@ 

              print('Setting the Koji ownership and package list on packages in '

                    'the tag "{0}" and namespaces "{1}" and for arches "{2}"'

                    .format(tag, namespaces, ', '.join(info['arches'])))

-         set_koji_ownership(tag, pkgs, info['arches'], verbose=verbose)

+         set_koji_ownership(tag, namespace, pkgs, info['arches'], verbose=verbose)

  

Can we try this in stg and make sure it works?

Otherwise +1 for after freeze?

If you can do a simple test in stg first that would be great... otherwise land whenever you like.

rebased onto e6d8634514afee08118f4dffdf8b7989dd32389f

2 years ago

rebased onto d30f06ae041610d7e4c25d04f456953a1b53bda4

2 years ago

rebased onto d30f06ae041610d7e4c25d04f456953a1b53bda4

2 years ago

rebased onto a2474c40334d4fcb6d40039962a4978e5b5c783f

2 years ago

rebased onto 0d37e41

2 years ago

This is tested in stg and seems to be working, ready to merge.

rebased onto 0d37e41

2 years ago

ok, +1 here. Will be nice to have this fixed.

Pull-Request has been merged by mohanboddu

2 years ago
Metadata