Revision 89362181
b/snf-pithos-backend/pithos/backends/lib/rabbitmq/queue.py | ||
---|---|---|
32 | 32 |
# or implied, of GRNET S.A. |
33 | 33 |
|
34 | 34 |
import json |
35 |
from hashlib import sha1 |
|
36 |
from random import random |
|
37 |
from time import time |
|
35 | 38 |
|
36 | 39 |
from synnefo.lib.amqp import AMQPClient |
37 |
from synnefo.lib.queue import Receipt |
|
40 |
|
|
41 |
|
|
42 |
class Message(object): |
|
43 |
def __init__(self, client, user, instance, resource, value, details={}): |
|
44 |
self.eventVersion = '1.0' |
|
45 |
self.occurredMillis = int(time() * 1000) |
|
46 |
self.receivedMillis = self.occurredMillis |
|
47 |
self.clientID = client |
|
48 |
self.userID = user |
|
49 |
self.instanceID = instance |
|
50 |
self.resource = resource |
|
51 |
self.value = value |
|
52 |
self.details = details |
|
53 |
hash = sha1() |
|
54 |
hash.update(json.dumps( |
|
55 |
[client, user, resource, value, details, random()])) |
|
56 |
self.id = hash.hexdigest() |
|
57 |
|
|
38 | 58 |
|
39 | 59 |
class Queue(object): |
40 | 60 |
"""Queue. |
... | ... | |
53 | 73 |
type='topic') |
54 | 74 |
|
55 | 75 |
def send(self, message_key, user, instance, resource, value, details): |
56 |
body = Receipt(self.client_id, user, instance, resource, value, details).format() |
|
76 |
body = Message( |
|
77 |
self.client_id, user, instance, resource, value, details) |
|
57 | 78 |
self.client.basic_publish(exchange=self.exchange, |
58 | 79 |
routing_key=message_key, |
59 |
body=json.dumps(body)) |
|
60 |
|
|
80 |
body=json.dumps(body.__dict__))
|
|
81 |
|
|
61 | 82 |
def close(self): |
62 | 83 |
self.client.close() |
Also available in: Unified diff