def get_result_by_cmdid(cmdid, request): print('view_extra.get_result_by_cmdid 被成功执行') cmd_obj = models.MultiTask.objects.get(id=cmdid) task_obj = models.TaskDetails.objects.filter(task=cmd_obj) result_list = [] for task in task_obj: result_dict = { 'cmdid': cmdid, 'cmdtype': cmd_obj.get_tasktype_display(), 'command': cmd_obj.taskcontent, 'userid': cmd_obj.user.id, 'username': cmd_obj.user.name, 'useremail': cmd_obj.user.email, 'taskid': task.id, 'taskip': task.host_to_remote_user.host.ip_addr, 'taskport': task.host_to_remote_user.host.port, 'taskstatus': task.get_status_display(), 'taskresult': task.result, 'taskdate': task.data.strftime("%Y-%m-%d %H:%I:%S") } result_list.append(result_dict) dir_path = "%s/statics/data/%s/" % (conf.settings.BASE_DIR, request.user.id) file_path = "%s/statics/data/%s/get_result_by_cmdid.json" % (conf.settings.BASE_DIR, request.user.id) all_about_json.write_json_file(dir_path, file_path, result_list) return result_list
def list_timezone(): timezone_list = [] for tz in pytz.all_timezones: timezone_list.append(tz) print(timezone_list) dir_path = "%s/statics/data/public/" % conf.settings.BASE_DIR file_path = "%s/statics/data/public/timezone.json" % conf.settings.BASE_DIR all_about_json.write_json_file(dir_path, file_path, timezone_list)
def get_one_time_task_history(request): one_time_task_history_list = [] one_time_task_history_obj = beatmodels.PeriodicTask.objects.filter(userid=request.user.id) for each_task in one_time_task_history_obj: if each_task.clocked: one_time_task_history_dict = { 'task_id':each_task.id, 'task_name':each_task.name, 'task_time':str(each_task.clocked.clocked_time), 'task_status':each_task.enabled, } one_time_task_history_list.append(one_time_task_history_dict) dir_path = "%s/statics/data/%s/" % (conf.settings.BASE_DIR,request.user.id) file_path = "%s/statics/data/%s/onetimetaskhistory.json" % (conf.settings.BASE_DIR,request.user.id) all_about_json.write_json_file(dir_path,file_path,one_time_task_history_list)
def get_interval_task_history_with_request(request): interval_task_history_list = [] interval_task_history_obj = beatmodels.PeriodicTask.objects.filter(userid=request.user.id,schedule_type='Interval') for each_task in interval_task_history_obj: if each_task.interval: interval_task_history_dict = { 'task_id': each_task.id, 'task_name': each_task.name, 'task_every': 'every %s%s' % (str(each_task.interval.every),str(each_task.interval.period)), 'task_status': each_task.enabled, 'schedule_type':each_task.schedule_type } interval_task_history_list.append(interval_task_history_dict) dir_path = "%s/statics/data/%s/" % (conf.settings.BASE_DIR, request.user.id) file_path = "%s/statics/data/%s/intervaltaskhistory.json" % (conf.settings.BASE_DIR, request.user.id) all_about_json.write_json_file(dir_path, file_path, interval_task_history_list)
def recent_command(request, type, show_number): selected_type = 'cmd' if type == 'file': selected_type = 'filetrans' print("recent_command成功被执行") command_obj = models.UserProfile.objects.get(id=request.user.id).multitask_set.select_related().order_by( '-id').filter(tasktype=selected_type)[:show_number] recent_command_list = [] for cmd in command_obj: recent_command_dict = { 'id': cmd.id, 'cmd': cmd.taskcontent, 'type': cmd.get_tasktype_display(), 'userid': cmd.user.id, 'username': cmd.user.name, 'useremail': cmd.user.email, 'date': cmd.data.strftime("%Y-%m-%d %H:%I:%S") } recent_command_list.append(recent_command_dict) dir_path = "%s/statics/data/%s/" % (conf.settings.BASE_DIR, request.user.id) file_path = "%s/statics/data/%s/recent_command_%s.json" % (conf.settings.BASE_DIR, request.user.id, selected_type) all_about_json.write_json_file(dir_path, file_path, recent_command_list)
def command_history(request): select_host_ids = json.loads(request.POST.get("select_host_ids")) select_host_result_list = [] for host_id in select_host_ids: task_details_obj = models.TaskDetails.objects.filter(host_to_remote_user_id=host_id).select_related() for task in task_details_obj.order_by('-id'): if task.task.tasktype == 'filetrans': command = 'File Transfer' else: command = task.task.taskcontent select_host_result_dict = { 'id': task.id, 'type': task.task.get_tasktype_display(), 'cmd': command, 'status': task.get_status_display(), 'result': task.result, 'date': task.data.strftime("%Y-%m-%d %H:%I:%S") } select_host_result_list.append(select_host_result_dict) dir_path = "%s/statics/data/%s/" % (conf.settings.BASE_DIR, request.user.id) file_path = "%s/statics/data/%s/host_record_result.json" % (conf.settings.BASE_DIR, request.user.id) all_about_json.write_json_file(dir_path, file_path, select_host_result_list) # 调用生成json方法
def get_command_history(self): print("执行get_command_history成功") print(self.request.user.id) # command_task = models.UserProfile.objects.get(id=self.request.user.id).host_to_remote_users.select_related() # command_group_task = models.UserProfile.objects.get(id=self.request.user.id).host_group.select_related() command_task = models.UserProfile.objects.get( id=self.request.user.id).multitask_set.select_related() print('command_task', command_task) command_history_list = [] for i in command_task.order_by('-id'): task_details = i.taskdetails_set.select_related() for j in task_details: if j.result == '': result = 'Runs successfully with no results' else: result = j.result if j.task.tasktype == 'filetrans': command = 'File Upload' else: command = j.task.taskcontent command_dict = { 'id': j.id, 'type': j.task.tasktype, 'command': command, 'status': j.get_status_display(), 'result': j.result, # 'result': html_cmd_result1, 'hostname': j.host_to_remote_user.host.name, 'hostip': j.host_to_remote_user.host.ip_addr, 'date': j.data.strftime("%Y-%m-%d %H:%I:%S") } command_history_list.append(command_dict) self.command_history_list = command_history_list dir_path = "%s/statics/data/%s/" % (conf.settings.BASE_DIR, self.request.user.id) file_path = "%s/statics/data/%s/command_history.json" % ( conf.settings.BASE_DIR, self.request.user.id) all_about_json.write_json_file(dir_path, file_path, self.command_history_list) # 调用写入json方法
def build_crontab_history(uid): corntab_task_list = [] corntab_task_queryset = beatmodels.PeriodicTask.objects.filter(schedule_type='corntab', userid=int(uid)) for each_task in corntab_task_queryset: corntab_list_dict = { 'task_id': each_task.id, 'task_name': each_task.name, 'task_sechdule': 'm:%s-d:%s-w:%s-h:%s-m:%s' % ( each_task.crontab.month_of_year, each_task.crontab.day_of_month, each_task.crontab.day_of_week, each_task.crontab.hour, each_task.crontab.minute, ), 'timezone': str(each_task.crontab.timezone), 'sechdule_type': each_task.schedule_type, 'task_status': each_task.enabled } corntab_task_list.append(corntab_list_dict) dir_path = "%s/statics/data/%s/" % (conf.settings.BASE_DIR, uid) file_path = "%s/statics/data/%s/crontabtaskhistory.json" % (conf.settings.BASE_DIR, uid) all_about_json.write_json_file(dir_path, file_path, corntab_task_list)