jumpserver/jlog/views.py

70 lines
2.4 KiB
Python
Raw Normal View History

2015-01-25 14:20:07 +00:00
# coding:utf-8
import os
import ConfigParser
from datetime import datetime
2015-02-09 11:02:25 +00:00
from django.db.models import Q
from django.http import HttpResponse
2015-01-25 14:20:07 +00:00
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response
2014-12-26 13:57:10 +00:00
2015-01-25 14:20:07 +00:00
from connect import BASE_DIR
from jlog.models import Log
2015-02-09 11:02:25 +00:00
from jumpserver.views import pages
2015-01-25 14:20:07 +00:00
CONF = ConfigParser.ConfigParser()
CONF.read('%s/jumpserver.conf' % BASE_DIR)
2015-02-09 11:02:25 +00:00
def log_list_online(request):
header_title, path1, path2 = u'查看日志 | Log List.', u'查看日志', u'在线用户'
web_socket_host = CONF.get('websocket', 'web_socket_host')
posts = Log.objects.filter(is_finished=0).order_by('-start_time')
contact_list, p, contacts = pages(posts, request)
return render_to_response('jlog/log_online.html', locals())
def log_list_offline(request):
header_title, path1, path2 = u'查看日志 | Log List.', u'查看日志', u'历史记录'
web_socket_host = CONF.get('websocket', 'web_socket_host')
2015-02-09 11:02:25 +00:00
posts = Log.objects.filter(is_finished=1).order_by('-start_time')
contact_list, p, contacts = pages(posts, request)
2015-02-09 11:02:25 +00:00
return render_to_response('jlog/log_offline.html', locals())
2015-01-25 14:20:07 +00:00
2015-02-09 11:02:25 +00:00
def log_kill(request, offset):
2015-01-25 14:20:07 +00:00
pid = offset
if pid:
os.kill(int(pid), 9)
Log.objects.filter(pid=pid).update(is_finished=1, end_time=datetime.now())
2015-02-09 11:02:25 +00:00
return HttpResponseRedirect('jlog/log_offline.html', locals())
def log_history(request):
if request.method == 'GET':
id = request.GET.get('id', 0)
log = Log.objects.get(id=int(id))
if log:
log_his = "%s.his" % log.log_path
if os.path.isfile(log_his):
f = open(log_his)
content = f.read()
return HttpResponse(content)
def log_search(request):
keyword = request.GET.get('keyword')
env = request.GET.get('env')
if env == 'online':
posts = contact_list = Log.objects.filter(Q(user__contains=keyword) | Q(host__contains=keyword)) \
.filter(is_finished=0).order_by('-start_time')
contact_list, p, contacts = pages(posts, request)
elif env == 'offline':
posts = contact_list = Log.objects.filter(Q(user__contains=keyword) | Q(host__contains=keyword)) \
.filter(is_finished=1).order_by('-start_time')
contact_list, p, contacts = pages(posts, request)
return render_to_response('jlog/log_search.html', locals())