def __init__(self, file_name): if not os.path.exists(DEFAULT_LOG_PATH): os.makedirs(DEFAULT_LOG_PATH) log_file_name = DEFAULT_LOG_PATH + file_name # Ref) formatter = logging.Formatter('%(asctime)s %(name)s %(levelname)s %(message)s') formatter = logging.Formatter('%(asctime)s.%(msecs)03d %(message)s', datefmt='%H:%M:%S') handler = TimedRotatingFileHandler(log_file_name, when=CONF.base()['log_rotate_time'], backupCount=CONF.base()['log_backup_count']) handler.setFormatter(formatter) self.logger.addHandler(handler) self.logger.setLevel(logging.DEBUG)
def connection(): try: conn = sqlite3.connect(CONF.base()['db_file']) conn.isolation_level = None return conn except: LOG.exception() sys.exit(1)
def db_initiation(cls, db_log): try: db_path = CONF.base()['db_file'] if os.path.isfile(db_path): os.remove(db_path) db_log.write_log("--- Initiating SONA DB ---") init_sql = [ 'CREATE TABLE ' + cls.NODE_INFO_TBL + '(nodename text primary key, ip_addr, username, type, sub_type)', 'CREATE TABLE ' + cls.STATUS_TBL + '(nodename text primary key, ' + cls.item_list + ', time)', 'CREATE TABLE ' + cls.REGI_SYS_TBL + '(url text primary key, auth)', 'CREATE TABLE ' + cls.EVENT_TBL + '(nodename, item, grade, pre_grade, reason, time, PRIMARY KEY (nodename, item))', 'CREATE TABLE ' + cls.ONOS_TBL + '(nodename text primary key, cluster, device, link, app)' ] for sql in init_sql: sql_rt = cls.sql_execute(sql) if sql_rt != 'SUCCESS': db_log.write_log("DB initiation fail\n%s", sql_rt) sys.exit(1) db_log.write_log('Insert nodes information ...') for node_type in CONF.watchdog()['check_system']: cls.sql_insert_nodes( db_log, (CONF_MAP[node_type.upper()]())['list'], str((CONF_MAP[node_type.upper()]() )['account']).split(':')[0], node_type) except: LOG.exception()
message = '[m:' + traceback.extract_stack(None, 2)[0][2] + '] ' + message cls.logger.info(message % args) @classmethod def error(cls, message, *args): message = '[m:' + traceback.extract_stack(None, 2)[0][2] + '] ' + message cls.logger.error(message % args) @classmethod def exception(cls): exc_type, exc_value, exc_traceback = sys.exc_info() lines = traceback.format_exception(exc_type, exc_value, exc_traceback) method = '[m:' + traceback.extract_stack(None, 2)[0][2] + ']' cls.error("Exception Error %s\n%s", method, ''.join(' | ' + line for line in lines)) LOG = _Log(CONF.base()['log_file_name']) class USER_LOG(): LOG = None def set_log(self, file_name, rotate, backup): self.LOG = logging.getLogger(file_name) if not os.path.exists(DEFAULT_LOG_PATH): os.makedirs(DEFAULT_LOG_PATH) log_formatter = logging.Formatter('[%(asctime)s] %(message)s') file_name = DEFAULT_LOG_PATH + file_name file_handler = logging.handlers.TimedRotatingFileHandler(file_name,
def db_initiation(cls, db_log): try: db_path = CONF.base()['db_file'] if os.path.isfile(db_path): os.remove(db_path) db_log.write_log("--- Initiating SONA DB ---") init_sql = [ 'CREATE TABLE ' + cls.NODE_INFO_TBL + '(nodename text primary key, ip_addr, username, type, sub_type)', 'CREATE TABLE ' + cls.STATUS_TBL + '(nodename text primary key, ' + cls.item_list + ', time)', 'CREATE TABLE ' + cls.RESOURCE_TBL + '(nodename text primary key, cpu real, memory real, disk real)', 'CREATE TABLE ' + cls.REGI_SYS_TBL + '(url text primary key, auth)', 'CREATE TABLE ' + cls.ONOS_TBL + '(nodename text primary key, applist, weblist, nodelist, port, openflow, cluster, traffic_stat)', 'CREATE TABLE ' + cls.SWARM_TBL + '(nodename text primary key, node, service, ps)', 'CREATE TABLE ' + cls.XOS_TBL + '(nodename text primary key, xos_status, synchronizer)', 'CREATE TABLE ' + cls.OPENSTACK_TBL + '(nodename text primary key, sub_type, data_ip, of_id, hostname, docker, onosApp, routingTable, gw_ratio, vxlan_traffic, internal_traffic)', 'CREATE TABLE ' + cls.HA_TBL + '(ha_key text primary key, stats)', 'CREATE TABLE ' + cls.EVENT_TBL + '(nodename, item, grade, pre_grade, reason, time, PRIMARY KEY (nodename, item))' ] for sql in init_sql: sql_rt = cls.sql_execute(sql) if sql_rt != 'SUCCESS': db_log.write_log("DB initiation fail\n%s", sql_rt) sys.exit(1) db_log.write_log('Insert nodes information ...') for node_type in CONF.watchdog()['check_system']: if node_type == 'OPENSTACK': cls.sql_insert_nodes( db_log, CONF_MAP[node_type.upper()]()['compute_list'], str((CONF_MAP[node_type.upper()]() )['account']).split(':')[0], node_type, 'COMPUTE') cls.sql_insert_nodes( db_log, CONF_MAP[node_type.upper()]()['gateway_list'], str((CONF_MAP[node_type.upper()]() )['account']).split(':')[0], node_type, 'GATEWAY') else: cls.sql_insert_nodes( db_log, CONF_MAP[node_type.upper()]()['list'], str((CONF_MAP[node_type.upper()]() )['account']).split(':')[0], node_type) # set ha proxy tbl sql = 'INSERT INTO ' + cls.HA_TBL + ' VALUES (\'' + 'HA' + '\', \'none\')' sql_rt = cls.sql_execute(sql) if sql_rt != 'SUCCESS': db_log.write_log( " [HA PROXY TABLE] Node data insert fail \n%s", sql_rt) sys.exit(1) except: LOG.exception()