@@ -63,7 +63,7 @@ class Connector(object):
63
63
"""
64
64
65
65
def __init__ (self , extractor_name , extractor_info , check_message = None , process_message = None , ssl_verify = True ,
66
- mounted_paths = None , clowder_url = None , max_retry = 10 ):
66
+ mounted_paths = None , clowder_url = None , max_retry = 10 , extractor_key = None , clowder_email = None ):
67
67
self .extractor_name = extractor_name
68
68
self .extractor_info = extractor_info
69
69
self .check_message = check_message
@@ -74,6 +74,10 @@ def __init__(self, extractor_name, extractor_info, check_message=None, process_m
74
74
else :
75
75
self .mounted_paths = mounted_paths
76
76
self .clowder_url = clowder_url
77
+ self .clowder_email = clowder_email
78
+ self .extractor_key = extractor_key
79
+ if extractor_key :
80
+ self .extractor_info ["unique_key" ] = extractor_key
77
81
self .max_retry = max_retry
78
82
79
83
filename = 'notifications.json'
@@ -625,15 +629,18 @@ class RabbitMQConnector(Connector):
625
629
def __init__ (self , extractor_name , extractor_info ,
626
630
rabbitmq_uri , rabbitmq_key = None , rabbitmq_queue = None ,
627
631
check_message = None , process_message = None , ssl_verify = True , mounted_paths = None ,
628
- heartbeat = 5 * 60 , clowder_url = None , max_retry = 10 ):
632
+ heartbeat = 10 , clowder_url = None , max_retry = 10 , extractor_key = None , clowder_email = None ):
629
633
super (RabbitMQConnector , self ).__init__ (extractor_name , extractor_info , check_message , process_message ,
630
- ssl_verify , mounted_paths , clowder_url , max_retry )
634
+ ssl_verify , mounted_paths , clowder_url , max_retry , extractor_key , clowder_email )
631
635
self .rabbitmq_uri = rabbitmq_uri
632
636
self .rabbitmq_key = rabbitmq_key
633
637
if rabbitmq_queue is None :
634
638
self .rabbitmq_queue = extractor_info ['name' ]
635
639
else :
636
640
self .rabbitmq_queue = rabbitmq_queue
641
+ self .extractor_key = extractor_key
642
+ if extractor_key :
643
+ self .rabbitmq_queue = "private.%s.%s" % (extractor_key , self .rabbitmq_queue )
637
644
self .channel = None
638
645
self .connection = None
639
646
self .consumer_tag = None
@@ -659,7 +666,7 @@ def connect(self):
659
666
self .channel .queue_declare (queue = 'error.' + self .rabbitmq_queue , durable = True )
660
667
661
668
# start the extractor announcer
662
- self .announcer = RabbitMQBroadcast (self .rabbitmq_uri , self .extractor_info , self .rabbitmq_queue , self .heartbeat )
669
+ self .announcer = RabbitMQBroadcast (self .rabbitmq_uri , self .extractor_info , self .clowder_email , self . rabbitmq_queue , self .heartbeat )
663
670
self .announcer .start_thread ()
664
671
665
672
def listen (self ):
@@ -765,10 +772,11 @@ def on_message(self, channel, method, header, body):
765
772
766
773
767
774
class RabbitMQBroadcast :
768
- def __init__ (self , rabbitmq_uri , extractor_info , rabbitmq_queue , heartbeat ):
775
+ def __init__ (self , rabbitmq_uri , extractor_info , clowder_email , rabbitmq_queue , heartbeat ):
769
776
self .active = True
770
777
self .rabbitmq_uri = rabbitmq_uri
771
778
self .extractor_info = extractor_info
779
+ self .clowder_email = clowder_email
772
780
self .rabbitmq_queue = rabbitmq_queue
773
781
self .heartbeat = heartbeat
774
782
self .id = str (uuid .uuid4 ())
@@ -798,6 +806,7 @@ def send_heartbeat(self):
798
806
message = {
799
807
'id' : self .id ,
800
808
'queue' : self .rabbitmq_queue ,
809
+ 'owner' : self .clowder_email ,
801
810
'extractor_info' : self .extractor_info
802
811
}
803
812
next_heartbeat = time .time ()
0 commit comments