ckserver/persistmods/views.py

63 lines
1.5 KiB
Python

from django.shortcuts import render
from django.http import HttpResponse
from types import MethodType
import persistmods.modtypes
import logging
mods={}
logging.basicConfig(filename='ckserver.log', level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s')
def start(request):
nodetype = request.GET.get("nodetype").strip('"')
nodename = request.GET.get("nodename").strip('"')
args = request.GET.get("args").strip('"')
if (nodetype == "FSPTest"):
print ("Here!")
mods[nodename]=persistmods.modtypes.FSPTest()
else:
print (nodetype+" "+"Wrong")
mods[nodename]=""
print (mods)
logging.info("module created")
return HttpResponse(nodetype+" "+nodename)
def stop(request):
nodename = request.GET.get("nodename")
del(mods[nodename])
logging.info("module deleted")
return HttpResponse(nodename)
def execute(request):
nodename = request.GET.get("nodename").strip('"')
print(nodename)
answer=mods[nodename].execute()
logging.info("module executed")
logging.info(answer)
return HttpResponse(answer)
def get_logs(request):
nodename = request.GET.get("nodename")
with open("ckserver.log", "r") as f:
lines = f.readlines()
return HttpResponse(lines)
def set_call(request):
nodename = request.GET.get("nodename")
code = tequest.GET.get("code")
mods[nodename].execute=MethodType(eval(code),mods[nodename])
logging.info("module code set")
return HttpResponse(nodename)
# Create your views here.