.gitignore | 4 +++ apache/moksha.conf | 2 + moksha/hub/stomp/protocol.py | 33 +++++++++------------------ moksha/widgets/metrics.py | 3 +- rabbitmq/rabbitmq-codegen-amqp-codegen.patch | 16 +++++++++++++ rabbitmq/run | 3 ++ 6 files changed, 39 insertions(+), 22 deletions(-)
New commits: commit 335b34b29338488a3a18261012dccd0171b6b791 Author: Luke Macken lmacken@redhat.com Date: Sat Mar 7 00:38:10 2009 -0500
Add the rabbitmq sources to our gitignore
diff --git a/.gitignore b/.gitignore index d977a50..ed96aeb 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,7 @@ mokshaenv tg2env *.egg-info *.pid +rabbitmq-codegen +rabbitmq-server +rabbitmq-stomp +
commit 117235b94972a14844f63a61378b8ad6607cefc6 Author: Luke Macken lmacken@redhat.com Date: Sat Mar 7 00:32:36 2009 -0500
Log our Metrics Consumer to the hub's logger
diff --git a/moksha/widgets/metrics.py b/moksha/widgets/metrics.py index 514fbd4..79e91c0 100644 --- a/moksha/widgets/metrics.py +++ b/moksha/widgets/metrics.py @@ -44,7 +44,7 @@ from moksha.api.streams import PollingDataStream from moksha.lib.helpers import defaultdict from moksha.widgets.jquery_ui_theme import ui_base_css
-log = logging.getLogger(__name__) +log = logging.getLogger('moksha.hub')
class MokshaMemoryUsageWidget(LiveFlotWidget): name = 'Memory Usage' @@ -70,6 +70,7 @@ class MokshaMessageMetricsConsumer(Consumer): topic, and relays the messgae to the message['headers']['topic'] """ topic = 'moksha_message_metrics' + def consume(self, message): topic = message['headers'].get('topic') if topic:
commit f5a775d17eff12f1adc4b628cab59e3d8fd9192b Author: Luke Macken lmacken@redhat.com Date: Sat Mar 7 00:30:31 2009 -0500
Patch RabbitMQ's code generator to work with Python 2.4.
diff --git a/rabbitmq/rabbitmq-codegen-amqp-codegen.patch b/rabbitmq/rabbitmq-codegen-amqp-codegen.patch new file mode 100644 index 0000000..91e3285 --- /dev/null +++ b/rabbitmq/rabbitmq-codegen-amqp-codegen.patch @@ -0,0 +1,16 @@ +--- rabbitmq-codegen/amqp_codegen.py.orig 2009-03-06 19:33:25.000000000 -0500 ++++ rabbitmq-codegen/amqp_codegen.py 2009-03-06 19:33:39.000000000 -0500 +@@ -183,10 +183,11 @@ + fn(amqp_spec) + except: + remove(out_file) +- raise +- finally: + sys.stdout = stdout + f.close() ++ raise ++ sys.stdout = stdout ++ f.close() + + if not len(sys.argv) == 4: + usage() diff --git a/rabbitmq/run b/rabbitmq/run index 2ba16a8..a2d975c 100755 --- a/rabbitmq/run +++ b/rabbitmq/run @@ -5,6 +5,7 @@ if [ ! -d rabbitmq-server ]; then fi if [ ! -d rabbitmq-codegen ]; then hg clone http://hg.rabbitmq.com/rabbitmq-codegen + patch -p0 < rabbitmq-codegen-amqp-codegen.patch fi if [ ! -d rabbitmq-stomp ]; then hg clone http://hg.rabbitmq.com/rabbitmq-stomp @@ -14,6 +15,8 @@ pushd /usr/lib*/erlang/erts-*/bin >/dev/null export PATH=$PATH:`pwd` popd >/dev/null
+(cd rabbitmq-server; make) pushd rabbitmq-stomp >/dev/null +make su -c 'make start_server' popd >/dev/null
commit ee2e11cb3a5716e8d5ec34e85d05825e504c65a3 Author: Luke Macken lmacken@redhat.com Date: Sat Mar 7 00:28:54 2009 -0500
Simplify our Stomp protocol data handler, making it a bit faster and more robust
diff --git a/moksha/hub/stomp/protocol.py b/moksha/hub/stomp/protocol.py index 2f2fb47..e012039 100644 --- a/moksha/hub/stomp/protocol.py +++ b/moksha/hub/stomp/protocol.py @@ -36,7 +36,7 @@ class StompProtocol(Protocol, stomper.Engine): self.password = password self.counter = 1 self.client = client - self.remainder = None + self.buffer = StompBuffer()
def connected(self, msg): """Once connected, subscribe to message queues """ @@ -70,23 +70,14 @@ class StompProtocol(Protocol, stomper.Engine):
def dataReceived(self, data): """Data received, react to it and respond if needed """ - if self.remainder: - buf = self.remainder - self.remainder = None - log.debug('Using existing StompBuffer') - else: - buf = StompBuffer() - buf.appendData(data) - msg = buf.getOneMessage() - while msg: - self.react(msg) - returned = self.react(msg) - if returned: - self.transport.write(returned) - self.client.consume_stomp_message(msg) - msg = buf.getOneMessage() - if not buf.bufferIsEmpty(): - log.debug('StompBuffer not empty; saving remainder for next time') - if self.remainder: - log.error('Overwriting remaining stomp buffer!') - self.remainder = buf + self.buffer.appendData(data) + while True: + msg = self.buffer.getOneMessage() + if msg is None: + break + + returned = self.react(msg) + if returned: + self.transport.write(returned) + + self.client.consume_stomp_message(msg)
commit c8dcff1b2f0ceb709b91e08a0c08e44a789c507c Author: Luke Macken lmacken@redhat.com Date: Sat Mar 7 00:24:52 2009 -0500
Don't restrict stdout in our wsgi app just yet. We eventually want this to be on.
diff --git a/apache/moksha.conf b/apache/moksha.conf index 060d0b2..19b0c23 100644 --- a/apache/moksha.conf +++ b/apache/moksha.conf @@ -5,6 +5,8 @@ # Default Python Home, with clean site-packages: WSGIPythonHome /srv/moksha/tg2env
+WSGIRestrictStdout Off + WSGIPythonEggs /srv/moksha/.python-eggs
<VirtualHost 0.0.0.0:80>
moksha-commits@lists.fedorahosted.org