From 3765b27a053424664388d5281fa6844adc4cfd80 Mon Sep 17 00:00:00 2001 From: Aurélien Bompard Date: Jul 20 2016 09:08:46 +0000 Subject: Send messages to the bus --- diff --git a/fedmsg.d/plus_plus_service.py b/fedmsg.d/plus_plus_service.py new file mode 100644 index 0000000..f34f670 --- /dev/null +++ b/fedmsg.d/plus_plus_service.py @@ -0,0 +1,11 @@ +import socket + +hostname = socket.gethostname().split('.')[0] + +config = dict( + endpoints={ + "plus-plus-service.%s" % hostname: [ + "tcp://127.0.0.1:3005", + ], + }, +) diff --git a/plus_plus_service/karma.py b/plus_plus_service/karma.py index 6525f1d..9dbd1af 100644 --- a/plus_plus_service/karma.py +++ b/plus_plus_service/karma.py @@ -4,7 +4,7 @@ import socket from sqlalchemy.orm.exc import NoResultFound from sqlalchemy.sql.expression import func -from .lib import make_fas_client, get_current_release, load_fedmsg_config +from .lib import make_fas_client, get_current_release from .models import Vote import logging @@ -20,7 +20,6 @@ class KarmaManager: def __init__(self, db): self.db = db self.fasclient = make_fas_client() - load_fedmsg_config() def _username_exists(self, username): request = self.fasclient.send_request( @@ -32,7 +31,6 @@ class KarmaManager: def change(self, agent, recipient, increment=True): # Send the karma change to fedmsg. # Store the change in the database. - # Return the new karma value. # Check that the recipient is a FAS user if not self._username_exists(recipient): @@ -49,29 +47,33 @@ class KarmaManager: existing = self.db.query(Vote).filter_by( release=release, from_user=agent, to_user=recipient).one() except NoResultFound: - pass + logger.debug( + "Adding a vote to the DB: %s -> %s (%s)", + recipient, agent, release) + self.db.add(Vote( + release=release, + from_user=agent, + to_user=recipient, + value=vote, + )) else: # Update the existing vote if necessary. - if existing.value != vote: - existing.value = vote - return + if existing.value == vote: + return + existing.value = vote - self.db.add(Vote( - release=release, - from_user=agent, - to_user=recipient, - value=vote, - )) - self.db.flush() + self.db.commit() base_query = self.db.query( func.sum(Vote.value)).filter_by(to_user=recipient) total_all_time = base_query.scalar() total_this_release = base_query.filter_by(release=release).scalar() + logger.debug("Sending a message to fedmsg") + hostname = socket.gethostname().split('.')[0] fedmsg.publish( - name="plus-plus-service.%s" % socket.gethostname(), - modname="irc", topic="karma", # TODO: fix modname + name="plus-plus-service.%s" % hostname, + modname="plus-plus-service", topic="karma", msg={ 'agent': agent, 'recipient': recipient, diff --git a/plus_plus_service/lib.py b/plus_plus_service/lib.py index 14a1610..8144c30 100644 --- a/plus_plus_service/lib.py +++ b/plus_plus_service/lib.py @@ -1,5 +1,3 @@ -import fedmsg.config -import fedmsg.meta import requests from fedora.client.fas2 import AccountSystem @@ -29,9 +27,4 @@ def get_current_release(): return collections[-1]['branchname'] -def load_fedmsg_config(): - fm_config = fedmsg.config.load_config() - fedmsg.meta.make_processors(**fm_config) - - # vim:set shiftwidth=4 tabstop=4 expandtab textwidth=79: diff --git a/plus_plus_service/tests/test_karma.py b/plus_plus_service/tests/test_karma.py index 4234206..87f1dd8 100644 --- a/plus_plus_service/tests/test_karma.py +++ b/plus_plus_service/tests/test_karma.py @@ -8,8 +8,7 @@ class KarmaTestCase(TestCase): def setUp(self): super().setUp() - with patch('plus_plus_service.karma.load_fedmsg_config'): - self.karma_manager = KarmaManager(self.db) + self.karma_manager = KarmaManager(self.db) self.karma_manager.fasclient = Mock() self.karma_manager.fasclient.send_request.return_value = dict( success=True)