def asset_update(self, id_list):
        # time.sleep(20)  #测试下阻塞
        server_list = []
        # 检查下状态,是true的话直接推送资产
        with DBContext('r', None, True) as session:
            for i in id_list:

                server_info = session.query(
                    Server.ip, Server.port, AdminUser.system_user,
                    AdminUser.user_key, Server.state).outerjoin(
                        AdminUser,
                        AdminUser.admin_user == Server.admin_user).filter(
                            Server.id == i).all()
                server_list.append(server_info)
                # server_info = [('47.100.231.147', 22, 'root', '-----BEGIN RSA PRIVATE KEYxxxxxEND RSA PRIVATE KEY-----', 'false')]
                server_state = server_info[0][4]
                if server_state == 'true':
                    ins_log.read_log('info', 'update asset info')
                    # 选中的是true,直接更新资产
                    asset_data = get_server_sysinfo(server_list)
                    update_asset(asset_data)

                else:
                    # 选中的是其余的状态,那就先推送key, 拿到推送成功的key,更新资产
                    ins_log.read_log('info',
                                     'rsync public key , update asset info')
                    rsync_sucess_list = rsync_public_key(server_list)
                    if rsync_sucess_list:
                        asset_data = get_server_sysinfo(server_list)
                        update_asset(asset_data)
Пример #2
0
 def get_host_info(self):
     '''获取主机信息'''
     id_list = self.check_server_state()
     connect_server_list = []
     with DBContext('r') as session:
         for i in id_list:
             connect_info = session.query(Server.ip, Server.port, AdminUser.system_user).outerjoin(AdminUser,
                                                                                                   AdminUser.admin_user == Server.admin_user).filter(
                 Server.id == i).all()
             connect_server_list.append(connect_info)
     res_data_list = get_server_sysinfo(connect_server_list)
     return res_data_list
Пример #3
0
 def get_host_info(self):
     '''获取主机信息,并写入数据库'''
     id_list = self.check_server_state()
     with DBContext('r') as session:
         for i in id_list:
             server_list = session.query(
                 Server.ip, Server.port, AdminUser.system_user).outerjoin(
                     AdminUser,
                     AdminUser.admin_user == Server.admin_user).filter(
                         Server.id == i).all()
             asset_data = get_server_sysinfo(server_list)
             ins_log.read_log('info', '资产信息:{}'.format(asset_data))
             self.update_asset(asset_data)
Пример #4
0
 def asset_update(self, id_list):
     # 检查下状态,是true的话直接推送资产
     with DBContext('r', None, True) as session:
         for i in id_list:
             server_list = session.query(Server.ip, Server.port, AdminUser.system_user,
                                         AdminUser.user_key, Server.state).outerjoin(AdminUser,
                                                                                     AdminUser.admin_user == Server.admin_user).filter(
                 Server.id == i).all()
             # server_list = [('47.100.231.147', 22, 'root', '-----BEGIN RSA PRIVATE KEYxxxxxEND RSA PRIVATE KEY-----', 'false')]
             ins_log.read_log('info', '手动触发更新资产')
             rsync_sucess_list = rsync_public_key(server_list)
             if rsync_sucess_list:
                 asset_data = get_server_sysinfo(server_list)
                 ins_log.read_log('info', '资产信息:{}'.format(asset_data))
                 update_asset(asset_data)