Expose assignTask via CLI

This commit is contained in:
Xibo Ning 2016-09-12 17:56:46 +08:00 committed by Mike McLean
parent 1158070b83
commit a1b5f3ce67

View file

@ -559,6 +559,45 @@ def handle_add_group(options, session, args):
session.groupListAdd(tag, group)
def handle_assign_task(options, session, args):
"[admin] Assign a task to a host"
usage = _('usage: %prog assign-task task_id hostname')
usage += _('\n(Specify the --help global option for a list of other help options)')
parser = OptionParser(usage=usage)
parser.add_option('-f', '--force', action='store_true', default=False,
help=_('force to assign a non-free task'))
(options, args) = parser.parse_args(args)
if len(args) != 2:
parser.error(_('please specify a task id and a hostname'))
else:
task_id = int(args[0])
hostname = args[1]
taskinfo = session.getTaskInfo(task_id, request=False)
if taskinfo is None:
raise koji.GenericError, "No such task: %s" % task_id
hostinfo = session.getHost(hostname)
if hostinfo is None:
raise koji.GenericError, "No such host: %s" % hostname
force = False
if options.force:
force = True
activate_session(session)
if not session.hasPerm('admin'):
print "This action requires admin privileges"
return 1
ret = session.assignTask(task_id, hostname, force)
if ret:
print 'assigned task %d to host %s' % (task_id, hostname)
else:
print 'failed to assign task %d to host %s' %s (task_id, hostname)
def handle_add_host(options, session, args):
"[admin] Add a host"
usage = _("usage: %prog add-host [options] hostname arch [arch2 ...]")