99e3ffbd95809da8f08a8db04dc5a5e5d6246e92
[osm/MON.git] / policy_module / osm_policy_module / common / lcm_client.py
1 import json
2
3 from kafka import KafkaProducer
4
5 from osm_policy_module.core.config import Config
6
7
8 class LcmClient:
9 def __init__(self):
10 cfg = Config.instance()
11 self.kafka_server = {
12 'server': '{}:{}'.format(cfg.get('policy_module', 'kafka_server_host'),
13 cfg.get('policy_module', 'kafka_server_port'))}
14 self.producer = KafkaProducer(bootstrap_servers=self.kafka_server,
15 key_serializer=str.encode,
16 value_serializer=lambda v: json.dumps(v).encode('utf-8'))
17
18 def scale(self, nsr_id, name, action):
19 msg = self._create_scale_action_payload(nsr_id, name, action)
20 self.producer.send(topic='alarm_request', key='create_alarm_request', value=msg)
21 self.producer.flush()
22 pass
23
24 def _create_scale_action_payload(self, nsr_id, name, action):
25 msg = {
26 "ns_id": nsr_id,
27 "scaling_group_descriptor": {
28 "name": name,
29 "action": action
30 }
31 }
32 return msg