|
|
|
@ -47,12 +47,12 @@ class UpdateCommandUtil: |
|
|
|
|
return self.model.objects.filter(Q(is_delete=False) & Q(is_sys=False) & Q(process='client')).order_by( |
|
|
|
|
'id').all() |
|
|
|
|
|
|
|
|
|
def get_checked_cmd(self, cmd_list): |
|
|
|
|
def get_checked_cmd(self, cmd_list, is_delete='0'): |
|
|
|
|
sys_result = self.get_sys_cmd() |
|
|
|
|
checked_setup_result = self.model.objects.filter( |
|
|
|
|
Q(is_delete='0') & Q(id__in=cmd_list) & Q(process='setup')).order_by('run_num').all() |
|
|
|
|
Q(is_delete=is_delete) & Q(id__in=cmd_list) & Q(process='setup')).order_by('run_num').all() |
|
|
|
|
checked_teardown_result = self.model.objects.filter( |
|
|
|
|
Q(is_delete='0') & Q(id__in=cmd_list) & Q(process='teardown')).order_by('run_num').all() |
|
|
|
|
Q(is_delete=is_delete) & Q(id__in=cmd_list) & Q(process='teardown')).order_by('run_num').all() |
|
|
|
|
sys_cmd = [{'desc': sys.desc, 'cmd': sys.command} for sys in sys_result] |
|
|
|
|
checked_setup_cmd = [{'desc': setup.desc, 'cmd': setup.command} for setup in checked_setup_result] |
|
|
|
|
checked_teardown_cmd = [{'desc': teardown.desc, 'cmd': teardown.command} for teardown in |
|
|
|
@ -94,10 +94,10 @@ class UpdateCommandUtil: |
|
|
|
|
print('输出结果:', exec_output) |
|
|
|
|
return True, '<br/>'.join(exec_output) |
|
|
|
|
|
|
|
|
|
def exec_cmd_by_type(self, cinema_ip, _type, cmd_list, short_release): |
|
|
|
|
def exec_cmd_by_type(self, cinema_ip, _type, cmd_list, short_release, is_delete='0'): |
|
|
|
|
print('需要执行的命令列表:', cmd_list) |
|
|
|
|
exec_cmd_list = [] |
|
|
|
|
exec_cmd_data = self.get_checked_cmd(cmd_list) |
|
|
|
|
exec_cmd_data = self.get_checked_cmd(cmd_list, is_delete) |
|
|
|
|
if _type == 'setup': |
|
|
|
|
cmds = exec_cmd_data['sys'] + exec_cmd_data['setup'] |
|
|
|
|
elif _type == 'teardown': |
|
|
|
@ -124,7 +124,7 @@ class UpdateConfigUtil: |
|
|
|
|
self.checked_list = checked_list |
|
|
|
|
self.run_before_teardown = run_before_teardown |
|
|
|
|
|
|
|
|
|
def exec_config(self): |
|
|
|
|
def exec_config(self, short_release): |
|
|
|
|
cmd_list = self.get_all_exec_cmd() |
|
|
|
|
db_config = Cinema.objects.filter(ip=self.ip).values()[0] |
|
|
|
|
db_conn = pymysql.Connect(host=self.ip, port=3306, user=db_config['db_user'], passwd=db_config['db_pwd'], |
|
|
|
@ -138,6 +138,13 @@ class UpdateConfigUtil: |
|
|
|
|
print("执行子命令: ", cmds['desc'], cmd, '结果:', '执行失败(设置无需修改)' if r == 0 else '执行成功') |
|
|
|
|
result_list.append(cmds['desc'] + (':执行失败(设置无需修改)' if r == 0 else ':执行成功')) |
|
|
|
|
db_conn.commit() |
|
|
|
|
|
|
|
|
|
if cmds['combo_cmd'] != 0: |
|
|
|
|
update_cmd = UpdateCommandUtil() |
|
|
|
|
result, setup_output = update_cmd.exec_cmd_by_type(self.ip, 'setup', [cmds['combo_cmd']], |
|
|
|
|
short_release, is_delete='1') |
|
|
|
|
print('执行关联命令:', setup_output) |
|
|
|
|
|
|
|
|
|
db_cursor.close() |
|
|
|
|
db_conn.close() |
|
|
|
|
return '<br/>'.join(result_list) |
|
|
|
@ -146,9 +153,12 @@ class UpdateConfigUtil: |
|
|
|
|
all_config_obj = UpdateCommand.objects.filter( |
|
|
|
|
Q(process='config') & Q(run=self.run_before_teardown) & Q(is_delete=False)).values() |
|
|
|
|
cmd_list = [] |
|
|
|
|
print(all_config_obj) |
|
|
|
|
for config_item in all_config_obj: |
|
|
|
|
if config_item['id'] in self.checked_list: |
|
|
|
|
cmd_list.append({"desc": config_item['desc'], "cmd": json.loads(config_item['command'])['checked']}) |
|
|
|
|
cmd_list.append({"desc": config_item['desc'], "cmd": json.loads(config_item['command'])['checked'], |
|
|
|
|
"combo_cmd": config_item['combo_cmd']}) |
|
|
|
|
else: |
|
|
|
|
cmd_list.append({"desc": config_item['desc'], "cmd": json.loads(config_item['command'])['unchecked']}) |
|
|
|
|
cmd_list.append({"desc": config_item['desc'], "cmd": json.loads(config_item['command'])['unchecked'], |
|
|
|
|
"combo_cmd": config_item['combo_cmd']}) |
|
|
|
|
return cmd_list |
|
|
|
|