__date__ = "06/Sep/2017"
-from kafka import KafkaProducer
+from kafka import KafkaProducer as kaf
from kafka.errors import KafkaError
import logging
import json
from os import listdir
from jsmin import jsmin
+json_path = os.path.join(os.pardir+"/models/")
+
+
class KafkaProducer(object):
def __init__(self, topic):
self._topic= topic
- if "ZOOKEEPER_URI" in os.environ:
- broker = os.getenv("ZOOKEEPER_URI")
- else:
- broker = "localhost:2181"
+ if "BROKER_URI" in os.environ:
+ broker = os.getenv("BROKER_URI")
+ else:
+ broker = "localhost:9092"
'''
- If the zookeeper broker URI is not set in the env, by default,
+ If the broker URI is not set in the env, by default,
localhost container is taken as the host because an instance of
is already running.
'''
- producer = KafkaProducer(key_serializer=str.encode,
+ self.producer = kaf(key_serializer=str.encode,
value_serializer=lambda v: json.dumps(v).encode('ascii'),
bootstrap_servers=broker, api_version=(0,10))
- def publish(self, key, message, topic=None):
+ def publish(self, key, value, topic=None):
try:
- future = producer.send('key', 'payload',group_id='osm_mon')
- producer.flush()
+ future = self.producer.send(key, value, topic)
+ self.producer.flush()
except Exception:
- log.exception("Error publishing to {} topic." .format(topic))
+ logging.exception("Error publishing to {} topic." .format(topic))
raise
try:
record_metadata = future.get(timeout=10)
- self._log.debug("TOPIC:", record_metadata.topic)
- self._log.debug("PARTITION:", record_metadata.partition)
- self._log.debug("OFFSET:", record_metadata.offset)
+ logging.debug("TOPIC:", record_metadata.topic)
+ logging.debug("PARTITION:", record_metadata.partition)
+ logging.debug("OFFSET:", record_metadata.offset)
except KafkaError:
pass
- json_path = os.path.join(os.pardir+"/models/")
-
def create_alarm_request(self, key, message, topic):
#External to MON
payload_create_alarm = jsmin(open(os.path.join(json_path,
'create_alarm.json')).read())
- publish(key,
+ self.publish(key,
value=json.dumps(payload_create_alarm),
topic='alarm_request')
payload_create_alarm_resp = jsmin(open(os.path.join(json_path,
'create_alarm_resp.json')).read())
- publish(key,
- value = json.dumps(payload_create_alarm_resp),
+ self.publish(key,
+ value = message,
topic = 'alarm_response')
def acknowledge_alarm(self, key, message, topic):
payload_acknowledge_alarm = jsmin(open(os.path.join(json_path,
'acknowledge_alarm.json')).read())
- publish(key,
+ self.publish(key,
value = json.dumps(payload_acknowledge_alarm),
topic = 'alarm_request')
payload_alarm_list_req = jsmin(open(os.path.join(json_path,
'list_alarm_req.json')).read())
- publish(key,
+ self.publish(key,
value=json.dumps(payload_alarm_list_req),
topic='alarm_request')
payload_notify_alarm = jsmin(open(os.path.join(json_path,
'notify_alarm.json')).read())
- publish(key,
- value=json.dumps(payload_notify_alarm),
+ self.publish(key,
+ value=message,
topic='alarm_response')
def list_alarm_response(self, key, message, topic):
payload_list_alarm_resp = jsmin(open(os.path.join(json_path,
'list_alarm_resp.json')).read())
- publish(key,
- value=json.dumps(payload_list_alarm_resp),
+ self.publish(key,
+ value=message,
topic='alarm_response')
payload_update_alarm_req = jsmin(open(os.path.join(json_path,
'update_alarm_req.json')).read())
- publish(key,
+ self.publish(key,
value=json.dumps(payload_update_alarm_req),
topic='alarm_request')
payload_update_alarm_resp = jsmin(open(os.path.join(json_path,
'update_alarm_resp.json')).read())
- publish(key,
- value=json.dumps(payload_update_alarm_resp),
+ self.publish(key,
+ value=message,
topic='alarm_response')
payload_delete_alarm_req = jsmin(open(os.path.join(json_path,
'delete_alarm_req.json')).read())
- publish(key,
+ self.publish(key,
value=json.dumps(payload_delete_alarm_req),
topic='alarm_request')
payload_delete_alarm_resp = jsmin(open(os.path.join(json_path,
'delete_alarm_resp.json')).read())
- publish(key,
- value=json.dumps(payload_delete_alarm_resp),
+ self.publish(key,
+ value=message,
topic='alarm_response')
payload_create_metrics_req = jsmin(open(os.path.join(json_path,
'create_metric_req.json')).read())
- publish(key,
+ self.publish(key,
value=json.dumps(payload_create_metrics_req),
topic='metric_request')
payload_create_metrics_resp = jsmin(open(os.path.join(json_path,
'create_metric_resp.json')).read())
- publish(key,
- value=json.dumps(payload_create_metrics_resp),
+ self.publish(key,
+ value=message,
topic='metric_response')
payload_read_metric_data_request = jsmin(open(os.path.join(json_path,
'read_metric_data_req.json')).read())
- publish(key,
+ self.publish(key,
value=json.dumps(payload_read_metric_data_request),
topic='metric_request')
payload_metric_data_response = jsmin(open(os.path.join(json_path,
'read_metric_data_resp.json')).read())
- publish(key,
- value=json.dumps(payload_metric_data_response),
+ self.publish(key,
+ value=message,
topic='metric_response')
payload_metric_list_req = jsmin(open(os.path.join(json_path,
'list_metric_req.json')).read())
- publish(key,
+ self.publish(key,
value=json.dumps(payload_metric_list_req),
topic='metric_request')
payload_metric_list_resp = jsmin(open(os.path.join(json_path,
'list_metrics_resp.json')).read())
- publish(key,
- value=json.dumps(payload_metric_list_resp),
+ self.publish(key,
+ value=message,
topic='metric_response')
payload_delete_metric_req = jsmin(open(os.path.join(json_path,
'delete_metric_req.json')).read())
- publish(key,
+ self.publish(key,
value=json.dumps(payload_delete_metric_req),
topic='metric_request')
payload_delete_metric_resp = jsmin(open(os.path.join(json_path,
'delete_metric_resp.json')).read())
- publish(key,
- value=json.dumps(payload_delete_metric_resp),
+ self.publish(key,
+ value=message,
topic='metric_response')
payload_update_metric_req = jsmin(open(os.path.join(json_path,
'update_metric_req.json')).read())
- publish(key,
+ self.publish(key,
value=json.dumps(payload_update_metric_req),
topic='metric_request')
payload_update_metric_resp = jsmin(open(os.path.join(json_path,
'update_metric_resp.json')).read())
- publish(key,
- value=json.dumps(payload_update_metric_resp),
+ self.publish(key,
+ value=message,
topic='metric_response')
def access_credentials(self, key, message, topic):
payload_access_credentials = jsmin(open(os.path.join(json_path,
'access_credentials.json')).read())
- publish(key,
+ self.publish(key,
value=json.dumps(payload_access_credentials),
topic='access_credentials')