Adding CORD specific ceilometer changes to monitoring repository
- ceilometer custom notification plugins for ONOS, vSG, vOLT and Infra layers
- ceilometer publish/subscribe module
- ceilometer dynamic pipeline config module
- ceilometer UDP proxy
- ceilometer Custom Image(ceilometer -v2 -v3 versions,kafka_installer,startup scripts)
Change-Id: Ie2ab8ce89cdadbd1fb4dc54ee15e46f8cc8c4c18
diff --git a/xos/synchronizer/ceilometer/ceilometer_pub_sub/pubrecords.py b/xos/synchronizer/ceilometer/ceilometer_pub_sub/pubrecords.py
new file mode 100644
index 0000000..bca62b8
--- /dev/null
+++ b/xos/synchronizer/ceilometer/ceilometer_pub_sub/pubrecords.py
@@ -0,0 +1,95 @@
+#!/usr/bin/python
+import socket
+from oslo_utils import units
+from oslo_utils import netutils
+import kafka
+import kafka_broker
+import fnmatch
+import logging
+import copy
+
+sub_info=[]
+class subinfo:
+ def __init__(self,scheme,app_id,app_ip,app_port,subscription_info,sub_info_filter,target):
+ logging.debug("* Updating subscription_info ")
+ self.scheme = scheme
+ self.app_id = app_id
+ self.ipaddress = app_ip
+ self.portno = app_port
+ self.subscription_info = subscription_info
+ self.sub_info_filter = sub_info_filter
+ self.target = target
+
+ if scheme == "kafka":
+ ''' Creating kafka publisher to send message over kafka '''
+ parse_target = netutils.urlsplit(target)
+ self.kafka_publisher = kafka_broker.KafkaBrokerPublisher(parse_target)
+ elif scheme == "udp":
+ ''' Creating UDP socket to send message over UDP '''
+ self.udp = socket.socket(socket.AF_INET, # Internet
+ socket.SOCK_DGRAM) # UDP
+ self.udp.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+
+ def update_subinfo(self):
+ logging.info("* inside %s",self.update_subinfo.__name__)
+ if not sub_info:
+ logging.debug("* -----------List is EMpty -------------")
+ sub_info.append(self)
+ logging.debug("* Subscription is sucessful")
+ return "Subscription is sucessful \n"
+ for obj in sub_info:
+ if obj.app_id == self.app_id :
+ # obj.subscription_info=self.subscription_info
+ sub_info.remove(obj)
+ sub_info.append(self)
+ logging.warning("* entry already exists so overwriting this subscription \n")
+ return "entry already exists so overwriting this subscription \n"
+ sub_info.append(self)
+ return "Subscription is sucessful \n"
+
+ @staticmethod
+ def delete_subinfo(app_id):
+ logging.info("* inside %s",subinfo.delete_subinfo.__name__)
+ Flag = False
+ for obj in sub_info:
+ if obj.app_id == app_id :
+ sub_info.remove(obj)
+ Flag = True
+ logging.debug("* Un-Subscription is sucessful")
+ return "Un-Subscription is sucessful \n"
+ if not Flag :
+ err_str = "No subscription exists with app id: " + app_id + "\n"
+ logging.error("* No subscription exists with app id:%s ",app_id)
+ raise Exception (err_str)
+
+ @staticmethod
+ def print_subinfo():
+ logging.info("* inside %s",subinfo.print_subinfo.__name__)
+ for obj in sub_info:
+ logging.debug("* ------------------------------------------------")
+ logging.debug("* scheme:%s",obj.scheme)
+ logging.debug("* app_id:%s",obj.app_id)
+ logging.debug("* portno:%s",obj.portno )
+ logging.debug("* ipaddress:%s",obj.ipaddress)
+ logging.debug("* subscription_info:%s",obj.subscription_info)
+ logging.debug("* sub_info_filter:%s",obj.sub_info_filter)
+ logging.debug("* target:%s",obj.target)
+ logging.debug("* ------------------------------------------------")
+ @staticmethod
+ def get_subinfo(app_id):
+ logging.info("* inside %s",subinfo.get_subinfo.__name__)
+ Flag = False
+ for obj in sub_info:
+ if obj.app_id == app_id :
+ return obj.subscription_info,obj.target
+ return (None,None)
+
+
+ @staticmethod
+ def get_sub_list(notif_subscription_info):
+ logging.info("* inside %s",subinfo.get_sublist.__name__)
+ sub_list=[]
+ for obj in sub_info:
+ if obj.subscription_info == notif_subscription_info:
+ sub_list.append(obj)
+ return sub_list