Ejemplo n.º 1
0
 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()
Ejemplo n.º 3
0
 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
Ejemplo n.º 4
0
 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
Ejemplo n.º 5
0
 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
Ejemplo n.º 6
0
 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