diff --git a/roles/fedmsg/gateway/files/fixup.patch b/roles/fedmsg/gateway/files/fixup.patch new file mode 100644 index 0000000000..1a30d82e49 --- /dev/null +++ b/roles/fedmsg/gateway/files/fixup.patch @@ -0,0 +1,43 @@ +--- __init__.py.orig 2016-12-01 11:50:40.064820904 +0000 ++++ __init__.py 2016-12-01 11:51:00.276026941 +0000 +@@ -204,10 +204,12 @@ + + def validate(self, message): + """ This needs to raise an exception, caught by moksha. """ +- # If we're not validating, then everything is valid. +- # If this is turned on globally, our child class can override it. +- if not self.validate_signatures: +- return ++ # Massage STOMP messages into a more compatible format. ++ if 'topic' not in message['body']: ++ message['body'] = { ++ 'topic': message.get('topic'), ++ 'msg': message['body'], ++ } + + if hasattr(message, '__json__'): + message = message.__json__() +@@ -218,18 +220,15 @@ + if not message['topic'] == message['body']['topic']: + raise RuntimeWarning("Topic envelope mismatch.") + ++ # If we're not validating, then everything is valid. ++ # If this is turned on globally, our child class can override it. ++ if not self.validate_signatures: ++ return ++ + if not fedmsg.crypto.validate(message['body'], **self.hub.config): + raise RuntimeWarning("Failed to authn message.") + + def _consume(self, message): +- +- # Massage STOMP messages into a more compatible format. +- if 'topic' not in message['body']: +- message['body'] = { +- 'topic': message.get('topic'), +- 'msg': message['body'], +- } +- + try: + self.validate(message) + except RuntimeWarning as e: diff --git a/roles/fedmsg/gateway/tasks/main.yml b/roles/fedmsg/gateway/tasks/main.yml index cdbb31b9fb..b28b95691f 100644 --- a/roles/fedmsg/gateway/tasks/main.yml +++ b/roles/fedmsg/gateway/tasks/main.yml @@ -4,6 +4,13 @@ - packages - fedmsg/gateway +- name: Apply fixing patch + patch: src=fixup.patch dest=/usr/lib/python2.7/site-packages/fedmsg/consumers/__init__.py + tags: + - packages + - fedmsg/gateway + - patch + - name: ensure that nrpe has rights to monitor us file: > dest=/var/run/fedmsg/monitoring-fedmsg-gateway.socket