added --old-user flag to set-pkg-owner-global cli command
This commit is contained in:
parent
abb899114c
commit
0df124f069
1 changed files with 39 additions and 17 deletions
56
cli/koji
56
cli/koji
|
|
@ -3668,35 +3668,57 @@ def handle_set_pkg_owner_global(options, session, args):
|
|||
parser = OptionParser(usage=usage)
|
||||
parser.add_option("--verbose", action='store_true', help=_("List changes"))
|
||||
parser.add_option("--test", action='store_true', help=_("Test mode"))
|
||||
parser.add_option("--old-user", "--from", action="store", help=_("Only change ownership for packages belonging to this user"))
|
||||
(options, args) = parser.parse_args(args)
|
||||
if len(args) < 2:
|
||||
if options.old_user:
|
||||
if len(args) < 1:
|
||||
parser.error(_("Please specify an owner"))
|
||||
assert False
|
||||
elif len(args) < 2:
|
||||
parser.error(_("Please specify an owner and at least one package"))
|
||||
assert False
|
||||
activate_session(session)
|
||||
owner = args[0]
|
||||
packages = args[1:]
|
||||
user = session.getUser(owner)
|
||||
if not user:
|
||||
print "No such user: %s" % owner
|
||||
sys.exit(1)
|
||||
for package in args[1:]:
|
||||
entries = session.listPackages(pkgID=package, with_dups=True)
|
||||
opts = {'with_dups' : True}
|
||||
old_user = None
|
||||
if options.old_user:
|
||||
old_user = session.getUser(options.old_user)
|
||||
if not old_user:
|
||||
print _("No such user: %s") % options.old_user
|
||||
sys.exit(1)
|
||||
opts['userID'] = old_user['id']
|
||||
to_change = []
|
||||
for package in packages:
|
||||
entries = session.listPackages(pkgID=package, **opts)
|
||||
if not entries:
|
||||
print "No data for package %s" % package
|
||||
continue
|
||||
for entry in entries:
|
||||
if user['id'] == entry['owner_id']:
|
||||
if options.verbose:
|
||||
print "Preserving owner=%s for package %s in tag %s" \
|
||||
% (user['name'], package, entry['tag_name'] )
|
||||
else:
|
||||
if options.test:
|
||||
print "Would have changed owner for %s in tag %s: %s -> %s" \
|
||||
% (package, entry['tag_name'], entry['owner_name'], user['name'])
|
||||
continue
|
||||
if options.verbose:
|
||||
print "Changing owner for %s in tag %s: %s -> %s" \
|
||||
% (package, entry['tag_name'], entry['owner_name'], user['name'])
|
||||
session.packageListSetOwner(entry['tag_id'], package, user['id'])
|
||||
to_change.extend(entries)
|
||||
if not packages and options.old_user:
|
||||
entries = session.listPackages(**opts)
|
||||
if not entries:
|
||||
print "No data for user %s" % old_user['name']
|
||||
sys.exit(1)
|
||||
to_change.extend(entries)
|
||||
for entry in to_change:
|
||||
if user['id'] == entry['owner_id']:
|
||||
if options.verbose:
|
||||
print "Preserving owner=%s for package %s in tag %s" \
|
||||
% (user['name'], package, entry['tag_name'] )
|
||||
else:
|
||||
if options.test:
|
||||
print "Would have changed owner for %s in tag %s: %s -> %s" \
|
||||
% (entry['package_name'], entry['tag_name'], entry['owner_name'], user['name'])
|
||||
continue
|
||||
if options.verbose:
|
||||
print "Changing owner for %s in tag %s: %s -> %s" \
|
||||
% (entry['package_name'], entry['tag_name'], entry['owner_name'], user['name'])
|
||||
session.packageListSetOwner(entry['tag_id'], entry['package_name'], user['id'])
|
||||
|
||||
def anon_handle_watch_task(options, session, args):
|
||||
"Track progress of particular tasks"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue