|
|
@ -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}') |
|
|
|