-
Notifications
You must be signed in to change notification settings - Fork 10
/
dashboard_queue.py
45 lines (37 loc) · 1.22 KB
/
dashboard_queue.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import json
import uuid
from provider import utils
def send_message(message, settings):
sns_client = settings.aws_conn('sns', {
'aws_access_key_id': settings.aws_access_key_id,
'aws_secret_access_key': settings.aws_secret_access_key,
'region_name': settings.sqs_region,
})
payload = utils.unicode_encode(json.dumps(message))
sns_client.publish(TopicArn=settings.event_monitor_topic, Message=payload)
def build_event_message(
item_identifier, version, run, event_type, timestamp, status, message
):
message = {
"message_type": "event",
"item_identifier": item_identifier,
"version": version,
"run": run,
"event_type": event_type,
"timestamp": timestamp.isoformat(),
"status": status,
"message": message,
"message_id": str(uuid.uuid4()),
}
return message
def build_property_message(item_identifier, version, name, value, property_type):
message = {
"message_type": "property",
"item_identifier": item_identifier,
"version": version,
"name": name,
"value": value,
"property_type": property_type,
"message_id": str(uuid.uuid4()),
}
return message