示例#1
0
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
示例#2
0
 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)
示例#3
0
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)
示例#4
0
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)
示例#5
0
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)
示例#6
0
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方法
示例#8
0
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)