diff --git a/module_build_service/messaging.py b/module_build_service/messaging.py index b7413ec5..267ecdd4 100644 --- a/module_build_service/messaging.py +++ b/module_build_service/messaging.py @@ -216,11 +216,12 @@ class BaseMessage(object): msg_id, msg_inner_msg.get('id'), msg_inner_msg.get('state')) elif conf.system == category == 'copr' and object == 'build': + copr = msg_inner_msg.get('copr') build = msg_inner_msg.get('build') status = msg_inner_msg.get('status') pkg = msg_inner_msg.get('pkg') what = msg_inner_msg.get('what') - msg_obj = CoprBuildEnd(msg_id, build, status, pkg, what) + msg_obj = CoprBuildEnd(msg_id, build, status, copr, pkg, what) # If the message matched the regex and is important to the app, # it will be returned @@ -271,7 +272,7 @@ class KojiRepoChange(BaseMessage): self.repo_tag = repo_tag -class CoprBuildEnd(object): +class CoprBuildEnd(KojiBuildChange): """ A wrapper class that transforms copr message attributes to a KojiBuildChange message object :param msg_id: the id of the msg (e.g. 2016-SomeGUID) @@ -282,9 +283,9 @@ class CoprBuildEnd(object): (e.g. mutt-kz-1.5.23.1-1.20150203.git.c8504a8a.fc21) :param state_reason: the optional reason as to why the state changed """ - def __new__(cls, msg_id, build_id, status, pkg, what=None): + def __init__(self, msg_id, build_id, status, copr, pkg, what=None): nvr = kobo.rpmlib.parse_nvra(pkg) - return KojiBuildChange( + super(CoprBuildEnd, self).__init__( msg_id=msg_id, build_id=build_id, task_id=build_id, @@ -294,6 +295,7 @@ class CoprBuildEnd(object): build_release=".".join(s for s in [nvr["release"], nvr["epoch"], nvr["arch"]] if s), state_reason=what, ) + self.copr = copr class MBSModule(BaseMessage): diff --git a/module_build_service/models.py b/module_build_service/models.py index b7542560..c0d25a0b 100644 --- a/module_build_service/models.py +++ b/module_build_service/models.py @@ -375,7 +375,7 @@ class ComponentBuild(MBSBase): @classmethod def from_component_event(cls, session, event): - if type(event) == module_build_service.messaging.KojiBuildChange: + if isinstance(event, module_build_service.messaging.KojiBuildChange): if event.module_build_id: return session.query(cls).filter_by( task_id=event.task_id, module_id=event.module_build_id)\ diff --git a/module_build_service/scheduler/consumer.py b/module_build_service/scheduler/consumer.py index c9c66f28..dd824a8a 100644 --- a/module_build_service/scheduler/consumer.py +++ b/module_build_service/scheduler/consumer.py @@ -178,7 +178,7 @@ class MBSConsumer(fedmsg.consumers.FedmsgConsumer): build = None # Choose a handler for this message - if type(msg) == module_build_service.messaging.KojiBuildChange: + if isinstance(msg, module_build_service.messaging.KojiBuildChange): handler = self.on_build_change[msg.build_new_state] build = models.ComponentBuild.from_component_event(session, msg) if build: