mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2026-01-19 05:52:05 +01:00
144 lines
5.5 KiB
Python
144 lines
5.5 KiB
Python
#!/usr/local/CyberCP/bin/python2
|
|
import os
|
|
import os.path
|
|
import sys
|
|
import django
|
|
sys.path.append('/usr/local/CyberCP')
|
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CyberCP.settings")
|
|
django.setup()
|
|
import json
|
|
import subprocess
|
|
import shlex
|
|
from django.shortcuts import HttpResponse, render
|
|
from loginSystem.models import Administrator
|
|
from plogical.aclVMM import vmmACLManager
|
|
from plogical.acl import ACLManager
|
|
from models import HyberVisors
|
|
|
|
class HVManager:
|
|
def loadHVHome(self, request = None, userID = None,):
|
|
try:
|
|
return render(request, 'hypervisor/indexVMM.html', {})
|
|
except BaseException, msg:
|
|
return HttpResponse(str(msg))
|
|
|
|
def createHypervisor(self, request = None, userID = None,):
|
|
try:
|
|
currentACL = ACLManager.loadedACL(userID)
|
|
if vmmACLManager.currentContextPermission(currentACL, 'createHypervisor') == 0:
|
|
return ACLManager.loadError()
|
|
|
|
ownerNames = ACLManager.loadAllUsers(userID)
|
|
|
|
return render(request, 'hypervisor/createHyperVisor.html', {'ownerNames' : ownerNames})
|
|
|
|
except BaseException, msg:
|
|
return HttpResponse(str(msg))
|
|
|
|
def listHVs(self, request = None, userID = None,):
|
|
try:
|
|
currentACL = ACLManager.loadedACL(userID)
|
|
if vmmACLManager.currentContextPermission(currentACL, 'listHV') == 0:
|
|
return ACLManager.loadError()
|
|
|
|
serverObjs = vmmACLManager.findServersObjs(currentACL, userID)
|
|
hvs = vmmACLManager.prepareServers(serverObjs)
|
|
ownerNames = ACLManager.loadAllUsers(userID)
|
|
|
|
return render(request, 'hypervisor/listHV.html', {'hvs' : hvs, 'ownerNames' : ownerNames})
|
|
|
|
except BaseException, msg:
|
|
return HttpResponse(str(msg))
|
|
|
|
def submitCreateHyperVisor(self, userID = None, data = None):
|
|
try:
|
|
currentACL = ACLManager.loadedACL(userID)
|
|
if vmmACLManager.currentContextPermission(currentACL, 'createHypervisor') == 0:
|
|
return ACLManager.loadErrorJson()
|
|
|
|
if HyberVisors.objects.all().count() == 1:
|
|
final_json = json.dumps({'status': 0, 'errorMessage': "Only one server is allowed at this time."})
|
|
return HttpResponse(final_json)
|
|
|
|
name = data['name']
|
|
serverOwner = data['serverOwner']
|
|
serverIP = data['serverIP']
|
|
userName = data['userName']
|
|
password = data['password']
|
|
storagePath = data['storagePath']
|
|
|
|
hvOwner = Administrator.objects.get(userName=serverOwner)
|
|
|
|
newHV = HyberVisors(hypervisorOwner=hvOwner,
|
|
hypervisorName=name,
|
|
hypervisorIP=serverIP,
|
|
hypervisorUserName=userName,
|
|
hypervisorPassword=password,
|
|
hypervisorStoragePath=storagePath)
|
|
newHV.save()
|
|
|
|
|
|
final_json = json.dumps({'status': 1, 'errorMessage': "None"})
|
|
return HttpResponse(final_json)
|
|
|
|
except BaseException, msg:
|
|
final_json = json.dumps({'status': 0, 'errorMessage': str(msg)})
|
|
return HttpResponse(final_json)
|
|
|
|
def submitHyperVisorChanges(self, userID = None, data = None):
|
|
try:
|
|
currentACL = ACLManager.loadedACL(userID)
|
|
if vmmACLManager.currentContextPermission(currentACL, 'listHV') == 0:
|
|
return ACLManager.loadErrorJson()
|
|
|
|
name = data['name']
|
|
serverOwner = data['serverOwner']
|
|
userName = data['userName']
|
|
password = data['password']
|
|
storagePath = data['storagePath']
|
|
|
|
hvOwner = Administrator.objects.get(userName=serverOwner)
|
|
|
|
modifyHV = HyberVisors.objects.get(hypervisorName=name)
|
|
modifyHV.hypervisorOwner = hvOwner
|
|
modifyHV.hypervisorUserName = userName
|
|
modifyHV.hypervisorPassword = password
|
|
modifyHV.hypervisorStoragePath = storagePath
|
|
|
|
modifyHV.save()
|
|
|
|
final_json = json.dumps({'status': 1, 'errorMessage': "None"})
|
|
return HttpResponse(final_json)
|
|
|
|
except BaseException, msg:
|
|
final_json = json.dumps({'status': 0, 'errorMessage': str(msg)})
|
|
return HttpResponse(final_json)
|
|
|
|
def controlCommands(self, userID = None, data = None):
|
|
try:
|
|
currentACL = ACLManager.loadedACL(userID)
|
|
if vmmACLManager.currentContextPermission(currentACL, 'listHV') == 0:
|
|
return ACLManager.loadErrorJson()
|
|
|
|
hypervisorIP = data['hypervisorIP']
|
|
action = data['action']
|
|
|
|
hv = HyberVisors.objects.get(hypervisorIP=hypervisorIP)
|
|
|
|
if hypervisorIP == '127.0.0.1':
|
|
if action == 'restart':
|
|
command = 'sudo reboot'
|
|
ACLManager.executeCall(command)
|
|
elif action == 'shutdown':
|
|
command = 'sudo shutdown'
|
|
ACLManager.executeCall(command)
|
|
elif action == 'delete':
|
|
final_json = json.dumps({'status': 0, 'errorMessage': "Local Server can not be deleted."})
|
|
return HttpResponse(final_json)
|
|
|
|
final_json = json.dumps({'status': 1, 'errorMessage': "None"})
|
|
return HttpResponse(final_json)
|
|
|
|
except BaseException, msg:
|
|
final_json = json.dumps({'status': 0, 'errorMessage': str(msg)})
|
|
return HttpResponse(final_json) |