mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2025-11-03 11:55:57 +01:00
248 lines
7.3 KiB
Python
248 lines
7.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
from __future__ import unicode_literals
|
|
|
|
from django.shortcuts import render,redirect
|
|
from django.http import HttpResponse
|
|
from plogical.getSystemInformation import SystemInformation
|
|
from loginSystem.models import Administrator
|
|
import json
|
|
from loginSystem.views import loadLoginPage
|
|
import re
|
|
from .models import version
|
|
import requests
|
|
import subprocess
|
|
import shlex
|
|
import os
|
|
import plogical.CyberCPLogFileWriter as logging
|
|
from django.utils.translation import ugettext,ungettext
|
|
# Create your views here.
|
|
|
|
|
|
def renderBase(request):
|
|
try:
|
|
val = request.session['userID']
|
|
|
|
admin = Administrator.objects.get(pk=val)
|
|
|
|
cpuRamDisk = SystemInformation.cpuRamDisk()
|
|
|
|
finaData = {"type": admin.type,'ramUsage':cpuRamDisk['ramUsage'],'cpuUsage':cpuRamDisk['cpuUsage'],'diskUsage':cpuRamDisk['diskUsage'] }
|
|
|
|
return render(request, 'baseTemplate/homePage.html', finaData)
|
|
except KeyError:
|
|
return redirect(loadLoginPage)
|
|
|
|
|
|
def getAdminStatus(request):
|
|
try:
|
|
admin = request.session['userID']
|
|
|
|
administrator = Administrator.objects.get(pk=admin)
|
|
|
|
if administrator.type == 1:
|
|
admin_type = "Administrator"
|
|
elif administrator.type == 2:
|
|
admin_type = "Reseller"
|
|
else:
|
|
admin_type = "Normal User"
|
|
|
|
serverIPAddress = "192.168.100.1"
|
|
|
|
try:
|
|
serverIPAddress = requests.get('https://api.ipify.org').text
|
|
except:
|
|
pass
|
|
|
|
adminName = administrator.firstName + " " + administrator.lastName
|
|
|
|
adminData = {"admin_type":admin_type,"user_name":adminName,"serverIPAddress":serverIPAddress}
|
|
|
|
json_data = json.dumps(adminData)
|
|
|
|
return HttpResponse(json_data)
|
|
except KeyError:
|
|
return HttpResponse("Can not get admin Status")
|
|
|
|
|
|
def getSystemStatus(request):
|
|
try:
|
|
|
|
HTTPData = SystemInformation.getSystemInformation()
|
|
|
|
try:
|
|
data = open("/tmp/lshttpd/.rtreport", "r").readlines()
|
|
|
|
httpData = data[3]
|
|
requestsData = data[4]
|
|
|
|
finalHTTP = re.findall(r"[A-Za-z0-9]+", httpData)
|
|
finalReq = re.findall(r"[A-Za-z0-9]+", requestsData)
|
|
|
|
|
|
|
|
HTTPData['RequestProcessing'] = finalReq[4]
|
|
HTTPData['TotalRequests'] = finalReq[11]
|
|
|
|
|
|
HTTPData['MAXCONN'] = finalHTTP[1]
|
|
HTTPData['MAXSSL'] = finalHTTP[4]
|
|
HTTPData['Avail'] = finalHTTP[8]
|
|
HTTPData['AvailSSL'] = finalHTTP[14]
|
|
|
|
except BaseException,msg:
|
|
HTTPData['RequestProcessing'] = 0
|
|
HTTPData['TotalRequests'] = 0
|
|
|
|
HTTPData['MAXCONN'] = 2000
|
|
HTTPData['MAXSSL'] = 1000
|
|
HTTPData['Avail'] = 2000
|
|
HTTPData['AvailSSL'] = 1000
|
|
|
|
json_data = json.dumps(HTTPData)
|
|
|
|
return HttpResponse(json_data)
|
|
|
|
except KeyError:
|
|
return HttpResponse("Can not get admin Status")
|
|
|
|
def getLoadAverage(request):
|
|
loadAverage = SystemInformation.cpuLoad()
|
|
loadAverage = list(loadAverage)
|
|
one = loadAverage[0]
|
|
two = loadAverage[1]
|
|
three = loadAverage[2]
|
|
|
|
loadAvg = {"one": one, "two": two,"three": three}
|
|
|
|
json_data = json.dumps(loadAvg)
|
|
|
|
return HttpResponse(json_data)
|
|
|
|
|
|
def versionManagment(request):
|
|
try:
|
|
val = request.session['userID']
|
|
|
|
admin = Administrator.objects.get(pk=val)
|
|
|
|
if admin.type == 1:
|
|
vers = version.objects.get(pk=1)
|
|
|
|
getVersion = requests.get('https://cyberpanel.net/version.txt')
|
|
|
|
latest = getVersion.json()
|
|
|
|
latestVersion = latest['version']
|
|
latestBuild = latest['build']
|
|
|
|
if vers.currentVersion == latestVersion and vers.build == latestBuild:
|
|
active = 0
|
|
else:
|
|
active = 0
|
|
|
|
return render(request, 'baseTemplate/versionManagment.html', {'build':vers.build,
|
|
'currentVersion':vers.currentVersion,
|
|
'latestVersion':latestVersion,'latestBuild':latestBuild,"active":active})
|
|
else:
|
|
return HttpResponse("You need to be admiministrator to view this page.")
|
|
except KeyError:
|
|
return redirect(loadLoginPage)
|
|
|
|
|
|
|
|
def upgrade(request):
|
|
try:
|
|
admin = request.session['userID']
|
|
|
|
try:
|
|
os.remove('upgrade.py')
|
|
except:
|
|
pass
|
|
|
|
command = 'wget http://cyberpanel.net/upgrade.py'
|
|
|
|
cmd = shlex.split(command)
|
|
|
|
res = subprocess.call(cmd)
|
|
|
|
vers = version.objects.get(pk=1)
|
|
|
|
from upgrade import Upgrade
|
|
|
|
Upgrade.initiateUpgrade(vers.currentVersion,vers.build)
|
|
|
|
adminData = {"upgrade":1}
|
|
|
|
json_data = json.dumps(adminData)
|
|
|
|
return HttpResponse(json_data)
|
|
|
|
|
|
except KeyError:
|
|
adminData = {"upgrade": 1,"error_message":"Please login or refresh this page."}
|
|
json_data = json.dumps(adminData)
|
|
return HttpResponse(json_data)
|
|
|
|
|
|
|
|
def upgradeStatus(request):
|
|
try:
|
|
val = request.session['userID']
|
|
try:
|
|
if request.method == 'POST':
|
|
|
|
path = "/usr/local/lscp/logs/upgradeLog"
|
|
|
|
try:
|
|
upgradeLog = open(path, "r").read()
|
|
except:
|
|
final_json = json.dumps({'finished': 0, 'upgradeStatus': 1,
|
|
'error_message': "None",
|
|
'upgradeLog': "Upgrade Just started.."})
|
|
return HttpResponse(final_json)
|
|
|
|
|
|
if upgradeLog.find("Upgrade Completed")>-1:
|
|
|
|
vers = version.objects.get(pk=1)
|
|
getVersion = requests.get('https://cyberpanel.net/version.txt')
|
|
latest = getVersion.json()
|
|
vers.currentVersion = latest['version']
|
|
vers.build = latest['build']
|
|
vers.save()
|
|
|
|
os.remove(path)
|
|
|
|
final_json = json.dumps({'finished': 1, 'upgradeStatus': 1,
|
|
'error_message': "None",
|
|
'upgradeLog': upgradeLog})
|
|
return HttpResponse(final_json)
|
|
else:
|
|
final_json = json.dumps({'finished': 0, 'upgradeStatus': 1,
|
|
'error_message': "None",
|
|
'upgradeLog': upgradeLog})
|
|
return HttpResponse(final_json)
|
|
|
|
|
|
except BaseException,msg:
|
|
final_dic = {'upgradeStatus': 0, 'error_message': str(msg)}
|
|
final_json = json.dumps(final_dic)
|
|
return HttpResponse(final_json)
|
|
except KeyError:
|
|
final_dic = {'upgradeStatus': 0, 'error_message': "Not Logged In, please refresh the page or login again."}
|
|
final_json = json.dumps(final_dic)
|
|
return HttpResponse(final_json)
|
|
|
|
|
|
def upgradeVersion(request):
|
|
try:
|
|
vers = version.objects.get(pk=1)
|
|
getVersion = requests.get('https://cyberpanel.net/version.txt')
|
|
latest = getVersion.json()
|
|
vers.currentVersion = latest['version']
|
|
vers.build = latest['build']
|
|
vers.save()
|
|
return HttpResponse("Version upgrade OK.")
|
|
except BaseException, msg:
|
|
logging.CyberCPLogFileWriter.writeToFile(str(msg))
|
|
return HttpResponse(str(msg)) |