RogerWork 2 months ago
parent fb266aed01
commit e3e00d3244
  1. 15
      update/utils/client_util.py

@ -25,6 +25,7 @@ class ClientUtil:
self.smb_conn.close() self.smb_conn.close()
def get_all_smb_client(self): def get_all_smb_client(self):
print('get_all_smb_client')
test_client_list = self.get_smb_file_list('data1', '/客户端/测试专用', r'client_v2.033*.7z') test_client_list = self.get_smb_file_list('data1', '/客户端/测试专用', r'client_v2.033*.7z')
prd_client_list = self.get_smb_file_list('data1', '/客户端/结测常用客户端', r'client_v2.033*.7z') prd_client_list = self.get_smb_file_list('data1', '/客户端/结测常用客户端', r'client_v2.033*.7z')
history_client_list = self.get_smb_file_list('data1', '/客户端/结测常用客户端/历史客户端', history_client_list = self.get_smb_file_list('data1', '/客户端/结测常用客户端/历史客户端',
@ -32,6 +33,7 @@ class ClientUtil:
return {'test': test_client_list, 'prd': prd_client_list, 'history': history_client_list} return {'test': test_client_list, 'prd': prd_client_list, 'history': history_client_list}
def get_smb_file_list(self, service_name, path, pattern): def get_smb_file_list(self, service_name, path, pattern):
print('get_smb_file_list')
smb_files = self.smb_conn.listPath(service_name, path, pattern=pattern) smb_files = self.smb_conn.listPath(service_name, path, pattern=pattern)
file_list = [] file_list = []
for file in smb_files: for file in smb_files:
@ -40,6 +42,7 @@ class ClientUtil:
return file_list return file_list
def get_all_smb_file_list(self): def get_all_smb_file_list(self):
print('get_all_smb_file_list')
test_client_list = self.get_smb_file_list('data1', '/客户端/测试专用', r'client_v2.033*.7z') test_client_list = self.get_smb_file_list('data1', '/客户端/测试专用', r'client_v2.033*.7z')
prd_client_list = self.get_smb_file_list('data1', '/客户端/结测常用客户端', r'client_v2.033*.7z') prd_client_list = self.get_smb_file_list('data1', '/客户端/结测常用客户端', r'client_v2.033*.7z')
history_client_list = self.get_smb_file_list('data1', '/客户端/结测常用客户端/历史客户端', history_client_list = self.get_smb_file_list('data1', '/客户端/结测常用客户端/历史客户端',
@ -47,6 +50,7 @@ class ClientUtil:
return test_client_list + prd_client_list + history_client_list return test_client_list + prd_client_list + history_client_list
def handle_client_db(self): def handle_client_db(self):
print('handle_client_db')
client_data = self.get_all_smb_client() client_data = self.get_all_smb_client()
ClientRelease.objects.update(is_delete=True) ClientRelease.objects.update(is_delete=True)
self.write_db(client_data, 'test') self.write_db(client_data, 'test')
@ -55,6 +59,7 @@ class ClientUtil:
@staticmethod @staticmethod
def write_db(_client_data, _type): def write_db(_client_data, _type):
print('write_db')
for client in _client_data[_type]: for client in _client_data[_type]:
file_name = client file_name = client
if ClientRelease.objects.filter(origin_name=file_name).first(): if ClientRelease.objects.filter(origin_name=file_name).first():
@ -72,6 +77,7 @@ class ClientUtil:
ver_id=ver_id) ver_id=ver_id)
def clear_delete_file(self): def clear_delete_file(self):
print('clear_delete_file')
all_delete = ClientRelease.objects.filter(is_delete=True).all() all_delete = ClientRelease.objects.filter(is_delete=True).all()
for delete in all_delete: for delete in all_delete:
file = os.path.join(self.local_path, delete.origin_name) file = os.path.join(self.local_path, delete.origin_name)
@ -79,6 +85,7 @@ class ClientUtil:
os.remove(file) os.remove(file)
def get_client_info_from_deploy_db(self, short_ver): def get_client_info_from_deploy_db(self, short_ver):
print('get_client_info_from_deploy_db')
client_ver = short_ver.replace('0.33', '033') client_ver = short_ver.replace('0.33', '033')
db_conn = pymysql.Connect(**self.db_config) db_conn = pymysql.Connect(**self.db_config)
db_cursor = db_conn.cursor(cursor=DictCursor) db_cursor = db_conn.cursor(cursor=DictCursor)
@ -90,6 +97,7 @@ class ClientUtil:
@staticmethod @staticmethod
def get_client_version_from_cine(cinema_ip): def get_client_version_from_cine(cinema_ip):
print('get_client_version_from_cine')
cine = Cinema.objects.filter(ip=cinema_ip).first() cine = Cinema.objects.filter(ip=cinema_ip).first()
db_config = { db_config = {
'host': cinema_ip, 'host': cinema_ip,
@ -105,6 +113,7 @@ class ClientUtil:
return client_ver return client_ver
def download_client_file(self, file_name, path): def download_client_file(self, file_name, path):
print('download_client_file')
local_file = open(os.path.join(self.local_path, file_name), 'wb') local_file = open(os.path.join(self.local_path, file_name), 'wb')
# 接收文件并写入本地文件 # 接收文件并写入本地文件
print('从共享下载客户端文件到服务器 共享路径:', rf'{path}{file_name}', '服务器路径:', local_file) print('从共享下载客户端文件到服务器 共享路径:', rf'{path}{file_name}', '服务器路径:', local_file)
@ -113,6 +122,7 @@ class ClientUtil:
local_file.close() local_file.close()
def get_client_version(self, cinema_ip, short_version): def get_client_version(self, cinema_ip, short_version):
print('get_client_version')
client_version = self.get_client_info_from_deploy_db(short_version) client_version = self.get_client_info_from_deploy_db(short_version)
# 新版本还没有对应的包 # 新版本还没有对应的包
if client_version is None: if client_version is None:
@ -129,6 +139,7 @@ class ClientUtil:
return client_version return client_version
def get_client(self, cinema_ip, short_version): def get_client(self, cinema_ip, short_version):
print('get_client')
client_version = self.get_client_version(cinema_ip, short_version) client_version = self.get_client_version(cinema_ip, short_version)
# 查看本地是否有此版本客户端 # 查看本地是否有此版本客户端
local_file_list = list(os.walk(self.local_path))[0][2] local_file_list = list(os.walk(self.local_path))[0][2]
@ -137,7 +148,7 @@ class ClientUtil:
print('找到本地文件:', client_version) print('找到本地文件:', client_version)
return return
# 如果本地没有则到服务器上拉取 # 如果本地没有则到服务器上拉取
client = ClientRelease.objects.filter(Q(client_ver=client_version) & Q(is_delete=False)).first() client = ClientRelease.objects.filter(Q(client_ver=client_version) & Q(is_delete=False)).order_by(id).first()
if client.client_type == 'test': if client.client_type == 'test':
self.download_client_file(client.origin_name, r'/客户端/测试专用/') self.download_client_file(client.origin_name, r'/客户端/测试专用/')
elif client.client_type == 'prd': elif client.client_type == 'prd':
@ -149,6 +160,7 @@ class ClientUtil:
# 传输客户端的方法 # 传输客户端的方法
def upload(self, cine_ip, origin, target): def upload(self, cine_ip, origin, target):
print('upload')
# 创建Transport客户端 # 创建Transport客户端
trans = paramiko.Transport((cine_ip, 22)) trans = paramiko.Transport((cine_ip, 22))
# 使用密码连接服务器 # 使用密码连接服务器
@ -164,6 +176,7 @@ class ClientUtil:
trans.close() trans.close()
def upload_client(self, cinema_ip, short_version): def upload_client(self, cinema_ip, short_version):
print('upload_client')
# 上传操作 # 上传操作
client_version = self.get_client_version(cinema_ip, short_version) client_version = self.get_client_version(cinema_ip, short_version)
print(f'开始上传操作, 目标主机 {cinema_ip}, 客户端版本 {client_version}') print(f'开始上传操作, 目标主机 {cinema_ip}, 客户端版本 {client_version}')

Loading…
Cancel
Save