-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathpublish_message.py
58 lines (52 loc) · 1.65 KB
/
publish_message.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
46
47
48
49
50
51
52
53
54
55
56
57
58
import argparse
from os import getenv
import pika
import wagglemsg
from waggle.plugin.time import get_timestamp
def main(args):
if args.type in ["int", "i"]:
v = int(args.value)
elif args.type in ["float", "f"]:
v = float(args.value)
elif args.type in ["string", "str"]:
v = str(args.value)
else:
raise Exception(f'Wrong type detected: {args.type}')
msg = wagglemsg.Message(
name=args.topic,
value=v,
timestamp=get_timestamp(),
meta={
"node": "plugin",
"vsn": "W000",
},
)
params = pika.ConnectionParameters(
host=args.rabbitmq_host,
port=args.rabbitmq_port,
credentials=pika.PlainCredentials("plugin", "plugin"),
retry_delay=60,
socket_timeout=10.0
)
conn = pika.BlockingConnection(params)
ch = conn.channel()
ch.basic_publish(
"data.topic",
args.topic,
wagglemsg.dump(msg),
properties=pika.BasicProperties(
delivery_mode=2,
user_id="plugin",
)
)
ch.close()
conn.close()
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--rabbitmq_host",default=getenv("RABBITMQ_HOST", "localhost"))
parser.add_argument("--rabbitmq_port", default=getenv("RABBITMQ_PORT", "5672"), type=int)
parser.add_argument("--rabbitmq_username", default=getenv("RABBITMQ_USERNAME", ""))
parser.add_argument("topic", help="Name of the topic")
parser.add_argument("type", help="Type of value either in string, int, and float")
parser.add_argument("value", help="Value")
main(parser.parse_args())