Procházet zdrojové kódy

Replace stompest library with stomp.py.

Stefano Cossu před 6 roky
rodič
revize
15cbdf8632

+ 2 - 2
lakesuperior/api/resource.py

@@ -104,10 +104,10 @@ def send_event_msg(remove_trp, add_trp, metadata):
     Break down delta triples, find subjects and send event message.
     '''
     remove_grp = groupby(remove_trp, lambda x : x[0])
-    remove_dict = { k[0] : k[1] for k in remove_grp }
+    remove_dict = {k[0]: k[1] for k in remove_grp}
 
     add_grp = groupby(add_trp, lambda x : x[0])
-    add_dict = { k[0] : k[1] for k in add_grp }
+    add_dict = {k[0]: k[1] for k in add_grp}
 
     subjects = set(remove_dict.keys()) | set(add_dict.keys())
     for rsrc_uri in subjects:

+ 16 - 12
lakesuperior/messaging/handlers.py

@@ -2,10 +2,9 @@ import logging
 
 from abc import ABCMeta, abstractmethod
 
+import stomp
+
 from flask import current_app
-from stompest.config import StompConfig
-from stompest.protocol import StompSpec
-from stompest.sync import Stomp
 
 
 class StompHandler(logging.Handler):
@@ -19,24 +18,29 @@ class StompHandler(logging.Handler):
     def __init__(self, conf):
         self.conf = conf
         if self.conf['protocol'] == '11':
-            protocol_v = StompSpec.VERSION_1_1
+            conn_cls = stomp.Connection12
         elif self.conf['protocol'] == '12':
-            protocol_v = StompSpec.VERSION_1_2
+            conn_cls = stomp.Connection11
         else:
-            protocol_v = StompSpec.VERSION_1_0
+            conn_cls = stomp.Connection10
 
-        client_config = StompConfig(
-            'tcp://{}:{}'.format(self.conf['host'], self.conf['port']),
-            login=self.conf['username'],
+        self.conn = conn_cls([(self.conf['host'], self.conf['port'])])
+        self.conn.start()
+        self.conn.connect(
+            username=self.conf['username'],
             passcode=self.conf['password'],
-            version=protocol_v
+            wait=True
         )
-        self.conn = Stomp(client_config)
-        self.conn.connect()
 
         return super().__init__()
 
 
+    def __del_(self):
+        '''
+        Disconnect the client.
+        '''
+        self.conn.disconnect()
+
     def emit(self, record):
         '''
         Send the message to the destination endpoint.

+ 1 - 1
requirements.txt

@@ -13,5 +13,5 @@ pytest==3.2.2
 rdflib==4.2.2
 requests-toolbelt==0.8.0
 requests==2.18.4
-stompest==2.3.0
+stomp.py==4.1.20
 wheel==0.30.0a0