def get_db_init_time(self): conn = db_connect.DataBase(None, self.params['db_user'], self.params['db_password'], self.params['db_ip'], check=1) return conn.check_init_time()
def format_database(self): conn = db_connect.DataBase(self.params['local_name'], self.params['db_user'], self.params['db_password'], self.params['db_ip']) conn._delete() conn._insert_init_time()
def get_data_from_database(self, db_name, col_name, id_list): return_dict = {} conn = db_connect.DataBase(db_name, self.params['db_user'], self.params['db_password'], self.params['db_ip']) request_dict = conn._request(col_name, id_list) for seq in range(len(request_dict)): return_dict[request_dict[seq] ['log id']] = request_dict[seq]['data'] return return_dict
def get_detail(self, db_name, col_name, urgent_class=-1, limit=100): return_list = [] conn = db_connect.DataBase(db_name, self.params['db_user'], self.params['db_password'], self.params['db_ip']) for data in conn._request_detail(col_name, urgent_class=urgent_class, limit=limit): data['machine'] = db_name data['source'] = col_name return_list.append(data) return return_list
def get_statistics(self, db_name, col_name): statistics_error = [] statistics_warn = [] statistics_normal = [] conn = db_connect.DataBase(db_name, self.params['db_user'], self.params['db_password'], self.params['db_ip']) for data in conn._request_statistics(col_name): temp_dict = {} temp_dict['time'] = data['_id']['date'] temp_dict['count'] = data['count'] temp_dict['machine'] = db_name temp_dict['source'] = col_name if data['_id']['urgent class'] == 2: statistics_error.append(temp_dict) elif data['_id']['urgent class'] == 1: statistics_warn.append(temp_dict) else: statistics_normal.append(temp_dict) return statistics_error, statistics_warn, statistics_normal
def check_db_and_col_names(self): db_names = [] db_content = {} # 获取数据库名和表名 conn = db_connect.DataBase(None, self.params['db_user'], self.params['db_password'], self.params['db_ip'], check=1) # 获取数据库名(即节点名称) for name in conn.get_db_names(): if name not in ['admin', 'config', 'local']: db_names.append(name) # 获取每个数据库中的表名(即日志来源名称) for db_name in db_names: col_name_list = [] for name in conn.get_col_names(db_name): if name[:12] != '[log backup]': col_name_list.append(name) db_content[db_name] = col_name_list return db_content
def upload_log(self, seq, local_log, urgent_class_list, id_list): conn = db_connect.DataBase(self.params['local_name'], self.params['db_user'], self.params['db_password'], self.params['db_ip'], 0) upload_col_names = [] # 上传日志,将主机名+文件名作为表名 # 此处需控制地址长度在120字节内,以便作为数据库表名 if len(self.log_directory[seq]) > 40: result = conn._insert( self.log_directory[seq][20:50] + str(hash(self.log_directory[seq][50:]))[:10], local_log, urgent_class_list, id_list) else: result = conn._insert(self.log_directory[seq], local_log, urgent_class_list, id_list) # 上传情况报告 if result: self.error[str(self.log_directory[seq])] = 1 else: self.error[str(self.log_directory[seq])] = 0