From 4a8f93c05735ff87954189b10cdf11bc7b896c91 Mon Sep 17 00:00:00 2001 From: Karl Newell Date: Mon, 16 Sep 2019 11:53:45 -0700 Subject: [PATCH] Update main.py. Add audit logging fro add/mod/del flow routes --- main.py | 36 ++++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/main.py b/main.py index 4d64b1b..80844a2 100644 --- a/main.py +++ b/main.py @@ -32,6 +32,15 @@ from jnpr.junos.exception import ConfigLoadError, CommitError from data.fr import FlowRoutesTable, FlowFilterTable +# set up logging for the main program +logFormatter = '%(asctime)s - %(name)s - %(levelname)s - %(message)s' +logging.basicConfig(format=logFormatter, level=logging.INFO) +logger = logging.getLogger(__name__) + +# suppressing the INFO logging from ncclient module +logging.getLogger('ncclient').setLevel(logging.WARNING) +# suppressing the INFO logging from cherrypy module +#logging.getLogger('cherrypy').setLevel(logging.WARNING) class MyDev(object): @@ -51,15 +60,13 @@ def addNewFlowRoute(self, flowRouteData=None): if flowRouteData['vrf'] == 'default': flowRouteData.pop('vrf', None) - env = Environment(autoescape=False, - loader=FileSystemLoader('./template'), trim_blocks=False, lstrip_blocks=False) - template = env.get_template('set-flow-route.conf') - #print template.render(flowRouteData) - + # env = Environment(autoescape=False, + # loader=FileSystemLoader('./template'), trim_blocks=False, lstrip_blocks=False) + # template = env.get_template('set-flow-route.conf') + # print template.render(flowRouteData) my_router = None for router in self.routers: - for name, value in router.items(): if 'rr' in value['type']: my_router = [value['ip']] @@ -74,8 +81,10 @@ def addNewFlowRoute(self, flowRouteData=None): cu.load(template_path='template/set-flow-route.conf', template_vars=flowRouteData) cu.commit() cu.unlock() + logger.info('Flow Route added ' + str(flowRouteData)) except ConfigLoadError as cle: + logger.warning(cle.message) return False, cle.message # self.flow_config[flowRouteData['flowRouteName']] = { @@ -92,10 +101,10 @@ def modFlowRoute(self, flowRouteData=None): if flowRouteData['vrf'] == 'default': flowRouteData.pop('vrf', None) - env = Environment(autoescape=False, - loader=FileSystemLoader('./template'), trim_blocks=False, lstrip_blocks=False) - template = env.get_template('set-flow-route.conf') - #print(template.render(flowRouteData)) + # env = Environment(autoescape=False, + # loader=FileSystemLoader('./template'), trim_blocks=False, lstrip_blocks=False) + # template = env.get_template('set-flow-route.conf') + # print(template.render(flowRouteData)) my_router = None for router in self.routers: @@ -112,8 +121,10 @@ def modFlowRoute(self, flowRouteData=None): cu.load(template_path='template/set-flow-route.conf', template_vars=flowRouteData) cu.commit() cu.unlock() + logger.info('Flow Route modified ' + str(flowRouteData)) except CommitError as ce: + logger.warning(ce.message) return False, ce.message # self.flow_config[flowRouteData['flowRouteName']] = { @@ -149,8 +160,10 @@ def delFlowRoute(self, flowRouteData=None): cu.load(template_path='template/delete-flow-route.conf', template_vars=flowRouteData, merge=True) cu.commit() cu.unlock() + logger.info('Flow Route deleted ' + str(flowRouteData)) except ConfigLoadError as cle: + logger.warning(cle.message) return False, cle.message self.flow_config.pop(flowRouteData['flowRouteName'], None) @@ -635,4 +648,7 @@ def POST(self): 'server.socket_host': '0.0.0.0', 'server.socket_port': 8080, }) + # suppressing the logging from cherrypy module if log.screen == False + cherrypy.log.error_log.propagate = False + cherrypy.log.access_log.propagate = False cherrypy.quickstart(webapp, '/', conf)