class KubeManagerLogger(object): def __init__(self, args=None, http_server_port=None): self._args = args # Initialize module parameters. self._module = {} self._module["id"] = Module.KUBE_MANAGER self._module["name"] = ModuleNames[self._module["id"]] self._module["node_type"] = Module2NodeType[self._module["id"]] self._module["node_type_name"] =\ NodeTypeNames[self._module["node_type"]] self._module["hostname"] = socket.getfqdn(self._args.host_ip) self._module["table"] = "ObjectKubernetesManagerNode" if self._args.worker_id: self._module["instance_id"] = self._args.worker_id else: self._module["instance_id"] = INSTANCE_ID_DEFAULT # Init Sandesh. self.sandesh_init(http_server_port) def syslog(self, log_msg, level): """ Log to syslog. """ self._sandesh.logger().log(SandeshLogger.get_py_logger_level(level), log_msg) def log(self, log_msg, level=SandeshLevel.SYS_DEBUG, fun=None): """ If a sandesh function is provided, use the function. If not, revert to syslog. """ if fun: log = fun(level=level, log_msg=log_msg, sandesh=self._sandesh) log.send(sandesh=self._sandesh) else: self.syslog(log_msg, level) # EMERGENCY. def emergency(self, log_msg, log_fun=None): log_level = SandeshLevel.SYS_EMERG logging_fun = log_fun if log_fun else sandesh.KubeManagerEmergencyLog # Log to syslog. self.syslog(log_msg, log_level) # Log using the desired logging function. self.log(log_msg, level=log_level, fun=logging_fun) # ALERT. def alert(self, log_msg, log_fun=None): log_level = SandeshLevel.SYS_ALERT logging_fun = log_fun if log_fun else sandesh.KubeManagerAlertLog # Log to syslog. self.syslog(log_msg, log_level) # Log using the desired logging function. self.log(log_msg, level=log_level, fun=logging_fun) # CRITICAL. def critical(self, log_msg, log_fun=None): log_level = SandeshLevel.SYS_CRIT logging_fun = log_fun if log_fun else sandesh.KubeManagerCriticalLog # Log to syslog. self.syslog(log_msg, log_level) # Log using the desired logging function. self.log(log_msg, level=log_level, fun=logging_fun) # ERROR. def error(self, log_msg, log_fun=None): log_level = SandeshLevel.SYS_ERR logging_fun = log_fun if log_fun else sandesh.KubeManagerErrorLog # Log to syslog. self.syslog(log_msg, log_level) # Log using the desired logging function. self.log(log_msg, level=log_level, fun=logging_fun) # WARNING. def warning(self, log_msg, log_fun=None): log_level = SandeshLevel.SYS_WARN logging_fun = log_fun if log_fun else sandesh.KubeManagerWarningLog # Log to syslog. self.syslog(log_msg, log_level) # Log using the desired logging function. self.log(log_msg, level=log_level, fun=logging_fun) # NOTICE. def notice(self, log_msg, log_fun=None): log_level = SandeshLevel.SYS_NOTICE logging_fun = log_fun if log_fun else sandesh.KubeManagerNoticeLog # Log to syslog. self.syslog(log_msg, log_level) # Log using the desired logging function. self.log(log_msg, level=log_level, fun=logging_fun) # INFO. def info(self, log_msg, log_fun=None): log_level = SandeshLevel.SYS_INFO logging_fun = log_fun if log_fun else sandesh.KubeManagerInfoLog # Log using the desired logging function. self.log(log_msg, level=log_level, fun=logging_fun) # DEBUG. def debug(self, log_msg, log_fun=None): log_level = SandeshLevel.SYS_DEBUG logging_fun = log_fun if log_fun else sandesh.KubeManagerDebugLog # Log using the desired logging function. self.log(log_msg, level=log_level, fun=logging_fun) def _redefine_sandesh_handles(self): """ Register custom introspect handlers. """ # Register Pod DB introspect handler. introspect.PodDatabaseList.handle_request =\ PodKM.sandesh_handle_db_list_request # Register Namespace DB introspect handler. introspect.NamespaceDatabaseList.handle_request =\ NamespaceKM.sandesh_handle_db_list_request # Register Service DB introspect handler. introspect.ServiceDatabaseList.handle_request =\ ServiceKM.sandesh_handle_db_list_request # Register NetworkPolicy DB introspect handler. introspect.NetworkPolicyDatabaseList.handle_request =\ NetworkPolicyKM.sandesh_handle_db_list_request # Register Ingress DB introspect handler. introspect.IngressDatabaseList.handle_request =\ IngressKM.sandesh_handle_db_list_request # Register Loadbalancer DB introspect handler. introspect.LoadbalancerDatabaseList.handle_request = \ LoadbalancerKM.sandesh_handle_db_list_request # Register LoadbalancerListener DB introspect handler. introspect.LoadbalancerListenerDatabaseList.handle_request = \ LoadbalancerListenerKM.sandesh_handle_db_list_request # Register LoadbalancerPool DB introspect handler. introspect.LoadbalancerPoolDatabaseList.handle_request = \ LoadbalancerPoolKM.sandesh_handle_db_list_request # Register LoadbalancerMember DB introspect handler. introspect.LoadbalancerMemberDatabaseList.handle_request = \ LoadbalancerMemberKM.sandesh_handle_db_list_request # Register HealthMonitor DB introspect handler. introspect.HealthMonitorDatabaseList.handle_request = \ HealthMonitorKM.sandesh_handle_db_list_request # Register Virtual Machine DB introspect handler. introspect.VirtualMachineDatabaseList.handle_request = \ VirtualMachineKM.sandesh_handle_db_list_request # Register Virtual Router DB introspect handler. introspect.VirtualRouterDatabaseList.handle_request = \ VirtualRouterKM.sandesh_handle_db_list_request # Register Virtual Machine Interface DB introspect handler. introspect.VirtualMachineInterfaceDatabaseList.handle_request = \ VirtualMachineInterfaceKM.sandesh_handle_db_list_request # Register Virtual Network DB introspect handler. introspect.VirtualNetworkDatabaseList.handle_request = \ VirtualNetworkKM.sandesh_handle_db_list_request # Register Instance IP DB introspect handler. introspect.InstanceIpDatabaseList.handle_request = \ InstanceIpKM.sandesh_handle_db_list_request # Register Project DB introspect handler. introspect.ProjectDatabaseList.handle_request = \ ProjectKM.sandesh_handle_db_list_request # Register Domain DB introspect handler. introspect.DomainDatabaseList.handle_request = \ DomainKM.sandesh_handle_db_list_request # Register SecurityGroup DB introspect handler. introspect.SecurityGroupDatabaseList.handle_request = \ SecurityGroupKM.sandesh_handle_db_list_request # Register FloatingIpPool DB introspect handler. introspect.FloatingIpPoolDatabaseList.handle_request = \ FloatingIpPoolKM.sandesh_handle_db_list_request # Register FloatingIp DB introspect handler. introspect.FloatingIpDatabaseList.handle_request = \ FloatingIpKM.sandesh_handle_db_list_request # Register NetworkIpam DB introspect handler. introspect.NetworkIpamDatabaseList.handle_request = \ NetworkIpamKM.sandesh_handle_db_list_request def sandesh_init(self, http_server_port=None): """ Init Sandesh """ self._sandesh = Sandesh() # Register custom sandesh request handlers. self._redefine_sandesh_handles() if not http_server_port: http_server_port = self._args.http_server_port # Initialize Sandesh generator. self._sandesh.init_generator( self._module["name"], self._module["hostname"], self._module["node_type_name"], self._module["instance_id"], self._args.random_collectors, 'kube_manager_context', int(http_server_port), ['cfgm_common', 'kube_manager'], logger_class=self._args.logger_class, logger_config_file=self._args.logging_conf, config=self._args.sandesh_config) # Set Sandesh logging params. self._sandesh.set_logging_params( enable_local_log=self._args.log_local, category=self._args.log_category, level=self._args.log_level, file=self._args.log_file, enable_syslog=self._args.use_syslog, syslog_facility=self._args.syslog_facility) # Connect to collector. ConnectionState.init(self._sandesh, self._module["hostname"], self._module["name"], self._module["instance_id"], staticmethod(ConnectionState.get_conn_state_cb), NodeStatusUVE, NodeStatus, self._module["table"]) def sandesh_uninit(self): self._sandesh.uninit() def introspect_init(self): self._sandesh.run_introspect_server(int(self._args.http_server_port))
class ConfigServiceLogger(object): _LOGGER_LEVEL_TO_SANDESH_LEVEL = { logging.CRITICAL: SandeshLevel.SYS_EMERG, logging.CRITICAL: SandeshLevel.SYS_ALERT, logging.CRITICAL: SandeshLevel.SYS_CRIT, logging.ERROR: SandeshLevel.SYS_ERR, logging.WARNING: SandeshLevel.SYS_WARN, logging.WARNING: SandeshLevel.SYS_NOTICE, logging.INFO: SandeshLevel.SYS_INFO, logging.DEBUG: SandeshLevel.SYS_DEBUG } def __init__(self, module, module_pkg, args=None, http_server_port=None): self.module_pkg = module_pkg if not hasattr(self, 'context'): self.context = module_pkg self._args = args if 'host_ip' in args: host_ip = args.host_ip else: host_ip = socket.gethostbyname(socket.getfqdn()) node_type = Module2NodeType[module] self._module_name = ModuleNames[module] self._node_type_name = NodeTypeNames[node_type] self.table = "ObjectConfigNode" self._instance_id = INSTANCE_ID_DEFAULT self._hostname = socket.getfqdn(host_ip) # sandesh init self.sandesh_init(http_server_port) def _get_sandesh_logger_level(self, sandesh_level): return self._LOGGER_LEVEL_TO_SANDESH_LEVEL[sandesh_level] def log(self, log_msg, level=SandeshLevel.SYS_DEBUG, fun=None): if fun: log = fun(level=level, og_msg=log_msg, sandesh=self._sandesh) log.send(sandesh=self._sandesh) else: self._sandesh.logger().log( SandeshLogger.get_py_logger_level(level), log_msg) def emergency(self, log_msg, log_fun=None): self.log(log_msg, level=SandeshLevel.SYS_EMERG, fun=log_fun) def alert(self, log_msg, log_fun=None): self.log(log_msg, level=SandeshLevel.SYS_ALERT, fun=log_fun) def critical(self, log_msg, log_fun=None): self.log(log_msg, level=SandeshLevel.SYS_CRIT, fun=log_fun) def error(self, log_msg, log_fun=None): self.log(log_msg, level=SandeshLevel.SYS_ERR, fun=log_fun) def cgitb_error(self): string_buf = cStringIO.StringIO() cgitb_hook(file=string_buf, format="text") self.error(string_buf.getvalue()) def warning(self, log_msg, log_fun=None): self.log(log_msg, level=SandeshLevel.SYS_WARN, fun=log_fun) def notice(self, log_msg, log_fun=None): self.log(log_msg, level=SandeshLevel.SYS_NOTICE, fun=log_fun) def info(self, log_msg, log_fun=None): self.log(log_msg, level=SandeshLevel.SYS_INFO, fun=log_fun) def debug(self, log_msg, log_fun=None): self.log(log_msg, level=SandeshLevel.SYS_DEBUG, fun=log_fun) def _utc_timestamp_usec(self): epoch = datetime.datetime.utcfromtimestamp(0) now = datetime.datetime.utcnow() delta = now - epoch return (delta.microseconds + (delta.seconds + delta.days * 24 * 3600) * 10 ** 6) def redefine_sandesh_handles(self): """ Redefine sandesh handle requests for various object types. """ pass def sandesh_init(self, http_server_port=None): """ Init sandesh """ self._sandesh = Sandesh() self.redefine_sandesh_handles() if not http_server_port: http_server_port = self._args.http_server_port self._sandesh.init_generator( self._module_name, self._hostname, self._node_type_name, self._instance_id, self._args.random_collectors, '%s_context' % self.context, int(http_server_port), ['cfgm_common', '%s.sandesh' % self.module_pkg], logger_class=self._args.logger_class, logger_config_file=self._args.logging_conf, config=self._args.sandesh_config) self._sandesh.set_logging_params( enable_local_log=self._args.log_local, category=self._args.log_category, level=self._args.log_level, file=self._args.log_file, enable_syslog=self._args.use_syslog, syslog_facility=self._args.syslog_facility) # connection state init ConnectionState.init( self._sandesh, self._hostname, self._module_name, self._instance_id, staticmethod(ConnectionState.get_conn_state_cb), NodeStatusUVE, NodeStatus, self.table) VncGreenlet.register_sandesh_handler() def introspect_init(self): self._sandesh.run_introspect_server(int(self._args.http_server_port)) def sandesh_reconfig_collectors(self, args): self._sandesh.reconfig_collectors(args.random_collectors)
class MesosManagerLogger(object): def __init__(self, args=None): self._args = args # Initialize module parameters. self.module = {} self.module["id"] = Module.MESOS_MANAGER self.module["name"] = ModuleNames[self.module["id"]] self.module["node_type"] = Module2NodeType[self.module["id"]] self.module["node_type_name"] = NodeTypeNames[self.module["node_type"]] if 'host_ip' in self._args: host_ip = self._args.host_ip else: host_ip = socket.gethostbyname(socket.getfqdn()) self.module["hostname"] = socket.getfqdn(host_ip) self.module["table"] = "ObjectConfigNode" if self._args.worker_id: self.module["instance_id"] = self._args.worker_id else: self.module["instance_id"] = INSTANCE_ID_DEFAULT # Init Sandesh. self.sandesh_init() def syslog(self, log_msg, level): # Log to syslog. self._sandesh.logger().log( SandeshLogger.get_py_logger_level(level), log_msg) def log(self, log_msg, level=SandeshLevel.SYS_DEBUG, fun=None): # If a sandesh function is provided, use the function. # If not, revert to syslog. if fun: log = fun(level=level, log_msg=log_msg, sandesh=self._sandesh) log.send(sandesh=self._sandesh) else: self.syslog(log_msg, level) # EMERGENCY. def emergency(self, log_msg, log_fun=None): log_level = SandeshLevel.SYS_EMERG logging_fun = log_fun if log_fun else sandesh.MesosManagerEmergencyLog # Log to syslog. self.syslog(log_msg, log_level) # Log using the desired logging function. self.log(log_msg, level=log_level, fun=logging_fun) # ALERT. def alert(self, log_msg, log_fun=None): log_level = SandeshLevel.SYS_ALERT logging_fun = log_fun if log_fun else sandesh.MesosManagerAlertLog # Log to syslog. self.syslog(log_msg, log_level) # Log using the desired logging function. self.log(log_msg, level=log_level, fun=logging_fun) # CRITICAL. def critical(self, log_msg, log_fun=None): log_level = SandeshLevel.SYS_CRIT logging_fun = log_fun if log_fun else sandesh.MesosManagerCriticalLog # Log to syslog. self.syslog(log_msg, log_level) # Log using the desired logging function. self.log(log_msg, level=log_level, fun=logging_fun) # CRITICAL. def error(self, log_msg, log_fun=None): log_level = SandeshLevel.SYS_ERR logging_fun = log_fun if log_fun else sandesh.MesosManagerErrorLog # Log to syslog. self.syslog(log_msg, log_level) # Log using the desired logging function. self.log(log_msg, level=log_level, fun=logging_fun) # WARNING. def warning(self, log_msg, log_fun=None): log_level = SandeshLevel.SYS_WARN logging_fun = log_fun if log_fun else sandesh.MesosManagerWarningLog # Log to syslog. self.syslog(log_msg, log_level) # Log using the desired logging function. self.log(log_msg, level=log_level, fun=logging_fun) # NOTICE. def notice(self, log_msg, log_fun=None): log_level = SandeshLevel.SYS_NOTICE logging_fun = log_fun if log_fun else sandesh.MesosManagerNoticeLog # Log to syslog. self.syslog(log_msg, log_level) # Log using the desired logging function. self.log(log_msg, level=log_level, fun=logging_fun) # INFO. def info(self, log_msg, log_fun=None): log_level = SandeshLevel.SYS_INFO logging_fun = log_fun if log_fun else sandesh.MesosManagerInfoLog # Log using the desired logging function. self.log(log_msg, level=log_level, fun=logging_fun) # DEBUG. def debug(self, log_msg, log_fun=None): log_level = SandeshLevel.SYS_DEBUG logging_fun = log_fun if log_fun else sandesh.MesosManagerDebugLog # Log using the desired logging function. self.log(log_msg, level=log_level, fun=logging_fun) def redefine_sandesh_handles(self): """ Register custom introspect handlers. """ # Register Virtual Machine DB introspect handler. introspect.VirtualMachineDatabaseList.handle_request = \ VirtualMachineMM.sandesh_handle_db_list_request # Register Virtual Router DB introspect handler. introspect.VirtualRouterDatabaseList.handle_request = \ VirtualRouterMM.sandesh_handle_db_list_request # Register Virtual Machine Interface DB introspect handler. introspect.VirtualMachineInterfaceDatabaseList.handle_request = \ VirtualMachineInterfaceMM.sandesh_handle_db_list_request # Register Virtual Network DB introspect handler. introspect.VirtualNetworkDatabaseList.handle_request = \ VirtualNetworkMM.sandesh_handle_db_list_request # Register Instance IP DB introspect handler. introspect.InstanceIpDatabaseList.handle_request = \ InstanceIpMM.sandesh_handle_db_list_request # Register Project DB introspect handler. introspect.ProjectDatabaseList.handle_request = \ ProjectMM.sandesh_handle_db_list_request # Register Domain DB introspect handler. introspect.DomainDatabaseList.handle_request = \ DomainMM.sandesh_handle_db_list_request # Register NetworkIpam DB introspect handler. introspect.NetworkIpamDatabaseList.handle_request = \ NetworkIpamMM.sandesh_handle_db_list_request def sandesh_init(self): """ Init Sandesh """ self._sandesh = Sandesh() # Register custom sandesh request handlers. self.redefine_sandesh_handles() # Initialize Sandesh generator. self._sandesh.init_generator( self.module['name'], self.module['hostname'], self.module['node_type_name'], self.module['instance_id'], self._args.collectors, 'mesos_manager_context', int(self._args.http_server_port), ['cfgm_common', 'mesos_manager.sandesh', 'mesos_introspect.sandesh'], logger_class=self._args.logger_class, logger_config_file=self._args.logging_conf, config=self._args.sandesh_config) # Set Sandesh logging params. self._sandesh.set_logging_params( enable_local_log=self._args.log_local, category=self._args.log_category, level=self._args.log_level, file=self._args.log_file, enable_syslog=self._args.use_syslog, syslog_facility=self._args.syslog_facility) # Connect to collector. ConnectionState.init(self._sandesh, self.module['hostname'], self.module['name'], self.module['instance_id'], staticmethod(ConnectionState.get_conn_state_cb), NodeStatusUVE, NodeStatus, self.module['table']) def introspect_init(self): self._sandesh.run_introspect_server(int(self._args.http_server_port))
class ConfigServiceLogger(object): _LOGGER_LEVEL_TO_SANDESH_LEVEL = { logging.CRITICAL: SandeshLevel.SYS_EMERG, logging.CRITICAL: SandeshLevel.SYS_ALERT, logging.CRITICAL: SandeshLevel.SYS_CRIT, logging.ERROR: SandeshLevel.SYS_ERR, logging.WARNING: SandeshLevel.SYS_WARN, logging.WARNING: SandeshLevel.SYS_NOTICE, logging.INFO: SandeshLevel.SYS_INFO, logging.DEBUG: SandeshLevel.SYS_DEBUG } def __init__(self, module, module_pkg, args=None, http_server_port=None): self.module_pkg = module_pkg if not hasattr(self, 'context'): self.context = module_pkg self._args = args node_type = Module2NodeType[module] self._module_name = ModuleNames[module] self._node_type_name = NodeTypeNames[node_type] self.table = "ObjectConfigNode" self._instance_id = INSTANCE_ID_DEFAULT self._hostname = socket.gethostname() # sandesh init self.sandesh_init(http_server_port) def _get_sandesh_logger_level(self, sandesh_level): return self._LOGGER_LEVEL_TO_SANDESH_LEVEL[sandesh_level] def log(self, log_msg, level=SandeshLevel.SYS_DEBUG, fun=None): if fun: log = fun(level=level, og_msg=log_msg, sandesh=self._sandesh) log.send(sandesh=self._sandesh) else: self._sandesh.logger().log( SandeshLogger.get_py_logger_level(level), log_msg) def emergency(self, log_msg, log_fun=None): self.log(log_msg, level=SandeshLevel.SYS_EMERG, fun=log_fun) def alert(self, log_msg, log_fun=None): self.log(log_msg, level=SandeshLevel.SYS_ALERT, fun=log_fun) def critical(self, log_msg, log_fun=None): self.log(log_msg, level=SandeshLevel.SYS_CRIT, fun=log_fun) def error(self, log_msg, log_fun=None): self.log(log_msg, level=SandeshLevel.SYS_ERR, fun=log_fun) def cgitb_error(self): string_buf = cStringIO.StringIO() cgitb_hook(file=string_buf, format="text") self.error(string_buf.getvalue()) def warning(self, log_msg, log_fun=None): self.log(log_msg, level=SandeshLevel.SYS_WARN, fun=log_fun) def notice(self, log_msg, log_fun=None): self.log(log_msg, level=SandeshLevel.SYS_NOTICE, fun=log_fun) def info(self, log_msg, log_fun=None): self.log(log_msg, level=SandeshLevel.SYS_INFO, fun=log_fun) def debug(self, log_msg, log_fun=None): self.log(log_msg, level=SandeshLevel.SYS_DEBUG, fun=log_fun) def _utc_timestamp_usec(self): epoch = datetime.datetime.utcfromtimestamp(0) now = datetime.datetime.utcnow() delta = now - epoch return (delta.microseconds + (delta.seconds + delta.days * 24 * 3600) * 10**6) def redefine_sandesh_handles(self): """ Redefine sandesh handle requests for various object types. """ pass def sandesh_init(self, http_server_port=None): """ Init sandesh """ self._sandesh = Sandesh() self.redefine_sandesh_handles() if not http_server_port: http_server_port = self._args.http_server_port self._sandesh.init_generator( self._module_name, self._hostname, self._node_type_name, self._instance_id, self._args.random_collectors, '%s_context' % self.context, int(http_server_port), ['cfgm_common', '%s.sandesh' % self.module_pkg], logger_class=self._args.logger_class, logger_config_file=self._args.logging_conf, config=self._args.sandesh_config) self._sandesh.set_logging_params( enable_local_log=self._args.log_local, category=self._args.log_category, level=self._args.log_level, file=self._args.log_file, enable_syslog=self._args.use_syslog, syslog_facility=self._args.syslog_facility) # connection state init ConnectionState.init( self._sandesh, self._hostname, self._module_name, self._instance_id, staticmethod(ConnectionState.get_process_state_cb), NodeStatusUVE, NodeStatus, self.table) def introspect_init(self): self._sandesh.run_introspect_server(int(self._args.http_server_port)) def sandesh_reconfig_collectors(self, args): self._sandesh.reconfig_collectors(args.random_collectors)
class KubeManagerLogger(object): def __init__(self, args=None, http_server_port=None): self._args = args # Initialize module parameters. self._module = {} self._module["id"] = Module.KUBE_MANAGER self._module["name"] = ModuleNames[self._module["id"]] self._module["node_type"] = Module2NodeType[self._module["id"]] self._module["node_type_name"] =\ NodeTypeNames[self._module["node_type"]] self._module["hostname"] = socket.gethostname() self._module["table"] = "ObjectKubernetesManagerNode" if self._args.worker_id: self._module["instance_id"] = self._args.worker_id else: self._module["instance_id"] = INSTANCE_ID_DEFAULT # Init Sandesh. self.sandesh_init(http_server_port) def syslog(self, log_msg, level): """ Log to syslog. """ self._sandesh.logger().log( SandeshLogger.get_py_logger_level(level), log_msg) def log(self, log_msg, level=SandeshLevel.SYS_DEBUG, fun=None): """ If a sandesh function is provided, use the function. If not, revert to syslog. """ if fun: log = fun(level=level, log_msg=log_msg, sandesh=self._sandesh) log.send(sandesh=self._sandesh) else: self.syslog(log_msg, level) # EMERGENCY. def emergency(self, log_msg, log_fun=None): log_level = SandeshLevel.SYS_EMERG logging_fun = log_fun if log_fun else sandesh.KubeManagerEmergencyLog # Log to syslog. self.syslog(log_msg, log_level) # Log using the desired logging function. self.log(log_msg, level=log_level, fun=logging_fun) # ALERT. def alert(self, log_msg, log_fun=None): log_level = SandeshLevel.SYS_ALERT logging_fun = log_fun if log_fun else sandesh.KubeManagerAlertLog # Log to syslog. self.syslog(log_msg, log_level) # Log using the desired logging function. self.log(log_msg, level=log_level, fun=logging_fun) # CRITICAL. def critical(self, log_msg, log_fun=None): log_level = SandeshLevel.SYS_CRIT logging_fun = log_fun if log_fun else sandesh.KubeManagerCriticalLog # Log to syslog. self.syslog(log_msg, log_level) # Log using the desired logging function. self.log(log_msg, level=log_level, fun=logging_fun) # ERROR. def error(self, log_msg, log_fun=None): log_level = SandeshLevel.SYS_ERR logging_fun = log_fun if log_fun else sandesh.KubeManagerErrorLog # Log to syslog. self.syslog(log_msg, log_level) # Log using the desired logging function. self.log(log_msg, level=log_level, fun=logging_fun) # WARNING. def warning(self, log_msg, log_fun=None): log_level = SandeshLevel.SYS_WARN logging_fun = log_fun if log_fun else sandesh.KubeManagerWarningLog # Log to syslog. self.syslog(log_msg, log_level) # Log using the desired logging function. self.log(log_msg, level=log_level, fun=logging_fun) # NOTICE. def notice(self, log_msg, log_fun=None): log_level = SandeshLevel.SYS_NOTICE logging_fun = log_fun if log_fun else sandesh.KubeManagerNoticeLog # Log to syslog. self.syslog(log_msg, log_level) # Log using the desired logging function. self.log(log_msg, level=log_level, fun=logging_fun) # INFO. def info(self, log_msg, log_fun=None): log_level = SandeshLevel.SYS_INFO logging_fun = log_fun if log_fun else sandesh.KubeManagerInfoLog # Log using the desired logging function. self.log(log_msg, level=log_level, fun=logging_fun) # DEBUG. def debug(self, log_msg, log_fun=None): log_level = SandeshLevel.SYS_DEBUG logging_fun = log_fun if log_fun else sandesh.KubeManagerDebugLog # Log using the desired logging function. self.log(log_msg, level=log_level, fun=logging_fun) def _redefine_sandesh_handles(self): """ Register custom introspect handlers. """ # Register Pod DB introspect handler. introspect.PodDatabaseList.handle_request =\ PodKM.sandesh_handle_db_list_request # Register Namespace DB introspect handler. introspect.NamespaceDatabaseList.handle_request =\ NamespaceKM.sandesh_handle_db_list_request # Register Service DB introspect handler. introspect.ServiceDatabaseList.handle_request =\ ServiceKM.sandesh_handle_db_list_request # Register NetworkPolicy DB introspect handler. introspect.NetworkPolicyDatabaseList.handle_request =\ NetworkPolicyKM.sandesh_handle_db_list_request # Register Ingress DB introspect handler. introspect.IngressDatabaseList.handle_request =\ IngressKM.sandesh_handle_db_list_request def sandesh_init(self, http_server_port=None): """ Init Sandesh """ self._sandesh = Sandesh() # Register custom sandesh request handlers. self._redefine_sandesh_handles() if not http_server_port: http_server_port = self._args.http_server_port # Initialize Sandesh generator. self._sandesh.init_generator( self._module["name"], self._module["hostname"], self._module["node_type_name"], self._module["instance_id"], self._args.random_collectors, 'kube_manager_context', int(http_server_port), ['cfgm_common', 'kube_manager'], logger_class=self._args.logger_class, logger_config_file=self._args.logging_conf, config=self._args.sandesh_config) # Set Sandesh logging params. self._sandesh.set_logging_params( enable_local_log=self._args.log_local, category=self._args.log_category, level=self._args.log_level, file=self._args.log_file, enable_syslog=self._args.use_syslog, syslog_facility=self._args.syslog_facility) # Connect to collector. ConnectionState.init( self._sandesh, self._module["hostname"], self._module["name"], self._module["instance_id"], staticmethod(ConnectionState.get_process_state_cb), NodeStatusUVE, NodeStatus, self._module["table"]) def sandesh_uninit(self): self._sandesh.uninit() def introspect_init(self): self._sandesh.run_introspect_server(int(self._args.http_server_port))