hub: [postBuildStateChange] passing the newest build info
This commit is contained in:
parent
e08e279f6b
commit
0c3fc85bb5
1 changed files with 16 additions and 15 deletions
|
|
@ -5289,9 +5289,8 @@ def import_build(srpm, rpms, brmap=None, task_id=None, build_id=None, logs=None)
|
|||
update.rawset(completion_time='NOW()')
|
||||
update.set(volume_id=build['volume_id'])
|
||||
update.execute()
|
||||
binfo = get_build(build_id, strict=True)
|
||||
koji.plugin.run_callbacks('postBuildStateChange', attribute='state', old=binfo['state'], new=st_complete, info=binfo)
|
||||
binfo['volume_id'] = build['volume_id']
|
||||
binfo['volume_name'] = build['volume_name']
|
||||
|
||||
# now to handle the individual rpms
|
||||
for relpath in [srpm] + rpms:
|
||||
|
|
@ -7256,6 +7255,7 @@ def _delete_build(binfo):
|
|||
builddir = koji.pathinfo.build(binfo)
|
||||
if os.path.exists(builddir):
|
||||
koji.util.rmtree(builddir)
|
||||
binfo = get_build(build_id, strict=True)
|
||||
koji.plugin.run_callbacks('postBuildStateChange', attribute='state', old=binfo['state'], new=st_deleted, info=binfo)
|
||||
|
||||
def reset_build(build):
|
||||
|
|
@ -7323,6 +7323,7 @@ def reset_build(build):
|
|||
builddir = koji.pathinfo.build(binfo)
|
||||
if os.path.exists(builddir):
|
||||
koji.util.rmtree(builddir)
|
||||
binfo = get_build(build, strict=True)
|
||||
koji.plugin.run_callbacks('postBuildStateChange', attribute='state', old=binfo['state'], new=koji.BUILD_STATES['CANCELED'], info=binfo)
|
||||
|
||||
def cancel_build(build_id, cancel_task=True):
|
||||
|
|
@ -7355,6 +7356,7 @@ def cancel_build(build_id, cancel_task=True):
|
|||
build_notification(task_id, build_id)
|
||||
if cancel_task:
|
||||
Task(task_id).cancelFull(strict=False)
|
||||
build = get_build(build_id, strict=True)
|
||||
koji.plugin.run_callbacks('postBuildStateChange', attribute='state', old=build['state'], new=st_canceled, info=build)
|
||||
return True
|
||||
|
||||
|
|
@ -10933,17 +10935,14 @@ class RootExports(object):
|
|||
|
||||
def setBuildOwner(self, build, user):
|
||||
context.session.assertPerm('admin')
|
||||
buildinfo = get_build(build)
|
||||
if not buildinfo:
|
||||
raise koji.GenericError('build does not exist: %s' % build)
|
||||
userinfo = get_user(user)
|
||||
if not userinfo:
|
||||
raise koji.GenericError('user does not exist: %s' % user)
|
||||
buildinfo = get_build(build, strict=True)
|
||||
userinfo = get_user(user, strict=True)
|
||||
userid = userinfo['id']
|
||||
buildid = buildinfo['id']
|
||||
koji.plugin.run_callbacks('preBuildStateChange', attribute='owner_id', old=buildinfo['owner_id'], new=userid, info=buildinfo)
|
||||
q = """UPDATE build SET owner=%(userid)i WHERE id=%(buildid)i"""
|
||||
_dml(q, locals())
|
||||
buildinfo = get_build(build, strict=True)
|
||||
koji.plugin.run_callbacks('postBuildStateChange', attribute='owner_id', old=buildinfo['owner_id'], new=userid, info=buildinfo)
|
||||
|
||||
def setBuildTimestamp(self, build, ts):
|
||||
|
|
@ -10953,10 +10952,8 @@ class RootExports(object):
|
|||
ts should be # of seconds since epoch or optionally an
|
||||
xmlrpc DateTime value"""
|
||||
context.session.assertPerm('admin')
|
||||
buildinfo = get_build(build)
|
||||
if not buildinfo:
|
||||
raise koji.GenericError('build does not exist: %s' % build)
|
||||
elif isinstance(ts, six.moves.xmlrpc_client.DateTime):
|
||||
buildinfo = get_build(build, strict=True)
|
||||
if isinstance(ts, six.moves.xmlrpc_client.DateTime):
|
||||
#not recommended
|
||||
#the xmlrpclib.DateTime class is almost useless
|
||||
try:
|
||||
|
|
@ -10971,6 +10968,7 @@ class RootExports(object):
|
|||
SET completion_time=TIMESTAMP 'epoch' AT TIME ZONE 'utc' + '%(ts)f seconds'::interval
|
||||
WHERE id=%%(buildid)i""" % locals()
|
||||
_dml(q, locals())
|
||||
buildinfo = get_build(build, strict=True)
|
||||
koji.plugin.run_callbacks('postBuildStateChange', attribute='completion_ts', old=buildinfo['completion_ts'], new=ts, info=buildinfo)
|
||||
|
||||
def count(self, methodName, *args, **kw):
|
||||
|
|
@ -12055,7 +12053,7 @@ class HostExports(object):
|
|||
task = Task(task_id)
|
||||
task.assertHost(host.id)
|
||||
|
||||
build_info = get_build(build_id)
|
||||
build_info = get_build(build_id, strict=True)
|
||||
|
||||
# check volume policy
|
||||
vol_update = False
|
||||
|
|
@ -12085,7 +12083,7 @@ class HostExports(object):
|
|||
if vol_update:
|
||||
update.set(volume_id=build_info['volume_id'])
|
||||
update.execute()
|
||||
|
||||
build_info = get_build(build_id, strict=True)
|
||||
koji.plugin.run_callbacks('postBuildStateChange', attribute='state', old=build_info['state'], new=st_complete, info=build_info)
|
||||
|
||||
# send email
|
||||
|
|
@ -12210,6 +12208,7 @@ class HostExports(object):
|
|||
update.set(volume_id=build_info['volume_id'])
|
||||
update.rawset(completion_time='now()')
|
||||
update.execute()
|
||||
build_info = get_build(build_id, strict=True)
|
||||
koji.plugin.run_callbacks('postBuildStateChange', attribute='state', old=build_info['state'], new=st_complete, info=build_info)
|
||||
|
||||
# send email
|
||||
|
|
@ -12353,6 +12352,7 @@ class HostExports(object):
|
|||
update.set(volume_id=build_info['volume_id'])
|
||||
update.rawset(completion_time='now()')
|
||||
update.execute()
|
||||
build_info = get_build(build_id, strict=True)
|
||||
koji.plugin.run_callbacks('postBuildStateChange', attribute='state', old=build_info['state'], new=st_complete, info=build_info)
|
||||
|
||||
# send email
|
||||
|
|
@ -12389,8 +12389,9 @@ class HostExports(object):
|
|||
completion_time = NOW()
|
||||
WHERE id = %(build_id)i"""
|
||||
_dml(update, locals())
|
||||
build_notification(task_id, build_id)
|
||||
buildinfo = get_build(build_id, strict=True)
|
||||
koji.plugin.run_callbacks('postBuildStateChange', attribute='state', old=buildinfo['state'], new=st_failed, info=buildinfo)
|
||||
build_notification(task_id, build_id)
|
||||
|
||||
def tagBuild(self, task_id, tag, build, force=False, fromtag=None):
|
||||
"""Tag a build (host version)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue