Docker site recreate pull

This commit is contained in:
Hassan Hashmi
2023-12-26 11:18:27 +05:00
parent 04815e6dab
commit bbae3b42f8
5 changed files with 1033 additions and 76 deletions

View File

@@ -3,6 +3,9 @@
import os.path
import sys
import django
from plogical.DockerSites import Docker_Sites
sys.path.append('/usr/local/CyberCP')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CyberCP.settings")
django.setup()
@@ -1076,4 +1079,120 @@ class ContainerManager(multi.Thread):
except BaseException as msg:
data_ret = {'getTagsStatus': 0, 'error_message': str(msg)}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
def getDockersiteList(self, userID=None, data=None):
try:
admin = Administrator.objects.get(pk=userID)
if admin.acl.adminStatus != 1:
return ACLManager.loadError()
name = data['name']
passdata = {}
passdata["JobID"] = None
passdata['name'] = name
da = Docker_Sites(None, passdata)
retdata = da.ListContainers()
data_ret = {'status': 1, 'error_message': 'None', 'data':retdata}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
except BaseException as msg:
data_ret = {'removeImageStatus': 0, 'error_message': str(msg)}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
# Internal function for recreating containers
def getContainerAppinfo(self, userID=None, data=None):
try:
admin = Administrator.objects.get(pk=userID)
if admin.acl.adminStatus != 1:
return ACLManager.loadError()
name = data['name']
containerID = data['id']
passdata = {}
passdata["JobID"] = None
passdata['name'] = name
passdata['containerID'] = containerID
da = Docker_Sites(None, passdata)
retdata = da.ContainerInfo()
data_ret = {'status': 1, 'error_message': 'None', 'data':retdata}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
except BaseException as msg:
data_ret = {'removeImageStatus': 0, 'error_message': str(msg)}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
def getContainerApplog(self, userID=None, data=None):
try:
admin = Administrator.objects.get(pk=userID)
if admin.acl.adminStatus != 1:
return ACLManager.loadError()
name = data['name']
containerID = data['id']
passdata = {}
passdata["JobID"] = None
passdata['name'] = name
passdata['containerID'] = containerID
passdata['numberOfLines'] = 50
da = Docker_Sites(None, passdata)
retdata = da.ContainerLogs()
data_ret = {'status': 1, 'error_message': 'None', 'data':retdata}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
except BaseException as msg:
data_ret = {'removeImageStatus': 0, 'error_message': str(msg)}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
def recreateappcontainer(self, userID=None, data=None):
try:
from websiteFunctions.models import DockerSites
admin = Administrator.objects.get(pk=userID)
if admin.acl.adminStatus != 1:
return ACLManager.loadError()
name = data['name']
dockersite = DockerSites.objects.get(SiteName=name)
#-------------------------delete or create docker site wala function call krna hai dekh kr kya kya data pass ho ga
# passdata = {}
# passdata["JobID"] = None
# passdata['name'] = name
# passdata['numberOfLines'] = 50
# da = Docker_Sites(None, passdata)
# retdata = da.ContainerLogs()
data_ret = {'status': 1, 'error_message': 'None', 'data':"retdata"}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
except BaseException as msg:
data_ret = {'removeImageStatus': 0, 'error_message': str(msg)}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)

View File

@@ -31,4 +31,8 @@ urlpatterns = [
url(r'^view/(?P<name>(.*))$', views.viewContainer, name='viewContainer'),
path('manage/<int:dockerapp>/app', Dockersitehome, name='Dockersitehome'),
path('getDockersiteList', views.getDockersiteList, name='getDockersiteList'),
path('getContainerAppinfo', views.getContainerAppinfo, name='getContainerAppinfo'),
path('getContainerApplog', views.getContainerApplog, name='getContainerApplog'),
path('recreateappcontainer', views.recreateappcontainer, name='recreateappcontainer'),
]

View File

@@ -4,6 +4,7 @@
from django.shortcuts import redirect, HttpResponse
from loginSystem.models import Administrator
from loginSystem.views import loadLoginPage
from plogical.DockerSites import Docker_Sites
from plogical.httpProc import httpProc
from .container import ContainerManager
from .decorators import preDockerRun
@@ -17,7 +18,7 @@ import json
def dockerPermission(request, userID, context):
currentACL = ACLManager.loadedACL(userID)
if currentACL['admin'] != 1:
if request.method == "POST":
return ACLManager.loadErrorJson()
@@ -25,7 +26,7 @@ def dockerPermission(request, userID, context):
return ACLManager.loadError()
else:
return 0
@preDockerRun
def loadDockerHome(request):
userID = request.session['userID']
@@ -57,7 +58,7 @@ def installDocker(request):
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
@preDockerRun
@preDockerRun
def installImage(request):
try:
userID = request.session['userID']
@@ -75,7 +76,7 @@ def installImage(request):
except KeyError:
return redirect(loadLoginPage)
@preDockerRun
def viewContainer(request, name):
try:
@@ -97,10 +98,10 @@ def viewContainer(request, name):
return coreResult
except KeyError:
return redirect(loadLoginPage)
return redirect(loadLoginPage)
@preDockerRun
def getTags(request):
def getTags(request):
try:
userID = request.session['userID']
currentACL = ACLManager.loadedACL(userID)
@@ -117,9 +118,9 @@ def getTags(request):
except KeyError:
return redirect(loadLoginPage)
@preDockerRun
def delContainer(request):
def delContainer(request):
try:
userID = request.session['userID']
@@ -137,9 +138,9 @@ def delContainer(request):
except KeyError:
return redirect(loadLoginPage)
@preDockerRun
def recreateContainer(request):
@preDockerRun
def recreateContainer(request):
try:
userID = request.session['userID']
currentACL = ACLManager.loadedACL(userID)
@@ -155,9 +156,9 @@ def recreateContainer(request):
return coreResult
except KeyError:
return redirect(loadLoginPage)
@preDockerRun
return redirect(loadLoginPage)
@preDockerRun
def runContainer(request):
try:
userID = request.session['userID']
@@ -167,13 +168,13 @@ def runContainer(request):
pass
else:
return ACLManager.loadErrorJson()
cm = ContainerManager()
return cm.createContainer(request, userID)
except KeyError:
return redirect(loadLoginPage)
return redirect(loadLoginPage)
@preDockerRun
@preDockerRun
def listContainers(request):
try:
userID = request.session['userID']
@@ -182,7 +183,7 @@ def listContainers(request):
except KeyError:
return redirect(loadLoginPage)
@preDockerRun
@preDockerRun
def getContainerLogs(request):
try:
@@ -199,9 +200,9 @@ def getContainerLogs(request):
return coreResult
except KeyError:
return redirect(loadLoginPage)
return redirect(loadLoginPage)
@preDockerRun
@preDockerRun
def submitContainerCreation(request):
try:
@@ -221,7 +222,7 @@ def submitContainerCreation(request):
except KeyError:
return redirect(loadLoginPage)
@preDockerRun
@preDockerRun
def getContainerList(request):
try:
userID = request.session['userID']
@@ -231,13 +232,13 @@ def getContainerList(request):
pass
else:
return ACLManager.loadErrorJson()
cm = ContainerManager()
return cm.getContainerList(userID, json.loads(request.body))
except KeyError:
return redirect(loadLoginPage)
@preDockerRun
@preDockerRun
def doContainerAction(request):
try:
userID = request.session['userID']
@@ -247,15 +248,15 @@ def doContainerAction(request):
pass
else:
return ACLManager.loadErrorJson()
cm = ContainerManager()
coreResult = cm.doContainerAction(userID, json.loads(request.body))
return coreResult
except KeyError:
return redirect(loadLoginPage)
@preDockerRun
@preDockerRun
def getContainerStatus(request):
try:
userID = request.session['userID']
@@ -265,15 +266,15 @@ def getContainerStatus(request):
pass
else:
return ACLManager.loadErrorJson()
cm = ContainerManager()
coreResult = cm.getContainerStatus(userID, json.loads(request.body))
return coreResult
except KeyError:
return redirect(loadLoginPage)
return redirect(loadLoginPage)
@preDockerRun
@preDockerRun
def exportContainer(request):
try:
userID = request.session['userID']
@@ -283,15 +284,15 @@ def exportContainer(request):
pass
else:
return ACLManager.loadErrorJson()
cm = ContainerManager()
coreResult = cm.exportContainer(request, userID)
return coreResult
except KeyError:
return redirect(loadLoginPage)
@preDockerRun
return redirect(loadLoginPage)
@preDockerRun
def saveContainerSettings(request):
try:
userID = request.session['userID']
@@ -301,15 +302,15 @@ def saveContainerSettings(request):
pass
else:
return ACLManager.loadErrorJson()
cm = ContainerManager()
coreResult = cm.saveContainerSettings(userID, json.loads(request.body))
return coreResult
except KeyError:
return redirect(loadLoginPage)
@preDockerRun
return redirect(loadLoginPage)
@preDockerRun
def getContainerTop(request):
try:
userID = request.session['userID']
@@ -319,15 +320,15 @@ def getContainerTop(request):
pass
else:
return ACLManager.loadErrorJson()
cm = ContainerManager()
coreResult = cm.getContainerTop(userID, json.loads(request.body))
return coreResult
except KeyError:
return redirect(loadLoginPage)
@preDockerRun
@preDockerRun
def assignContainer(request):
try:
userID = request.session['userID']
@@ -337,15 +338,15 @@ def assignContainer(request):
pass
else:
return ACLManager.loadErrorJson()
cm = ContainerManager()
coreResult = cm.assignContainer(userID, json.loads(request.body))
return coreResult
except KeyError:
return redirect(loadLoginPage)
@preDockerRun
@preDockerRun
def searchImage(request):
try:
userID = request.session['userID']
@@ -355,27 +356,27 @@ def searchImage(request):
pass
else:
return ACLManager.loadErrorJson()
cm = ContainerManager()
coreResult = cm.searchImage(userID, json.loads(request.body))
return coreResult
except KeyError:
return redirect(loadLoginPage)
@preDockerRun
@preDockerRun
def images(request):
try:
userID = request.session['userID']
cm = ContainerManager()
coreResult = cm.images(request, userID)
return coreResult
except KeyError:
return redirect(loadLoginPage)
@preDockerRun
@preDockerRun
def manageImages(request):
try:
userID = request.session['userID']
@@ -384,8 +385,8 @@ def manageImages(request):
return coreResult
except KeyError:
return redirect(loadLoginPage)
@preDockerRun
@preDockerRun
def getImageHistory(request):
try:
userID = request.session['userID']
@@ -395,15 +396,15 @@ def getImageHistory(request):
pass
else:
return ACLManager.loadErrorJson()
cm = ContainerManager()
coreResult = cm.getImageHistory(userID, json.loads(request.body))
return coreResult
except KeyError:
return redirect(loadLoginPage)
@preDockerRun
@preDockerRun
def removeImage(request):
try:
userID = request.session['userID']
@@ -413,10 +414,86 @@ def removeImage(request):
pass
else:
return ACLManager.loadErrorJson()
cm = ContainerManager()
coreResult = cm.removeImage(userID, json.loads(request.body))
return coreResult
except KeyError:
return redirect(loadLoginPage)
return redirect(loadLoginPage)
@preDockerRun
def getDockersiteList(request):
import json
try:
userID = request.session['userID']
currentACL = ACLManager.loadedACL(userID)
if currentACL['admin'] == 1:
pass
else:
return ACLManager.loadErrorJson()
cm = ContainerManager()
coreResult = cm.getDockersiteList(userID, json.loads(request.body))
return coreResult
except KeyError:
return redirect(loadLoginPage)
@preDockerRun
def getContainerAppinfo(request):
try:
userID = request.session['userID']
currentACL = ACLManager.loadedACL(userID)
if currentACL['admin'] == 1:
pass
else:
return ACLManager.loadErrorJson()
cm = ContainerManager()
coreResult = cm.getContainerAppinfo(userID, json.loads(request.body))
return coreResult
except KeyError:
return redirect(loadLoginPage)
@preDockerRun
def getContainerApplog(request):
try:
userID = request.session['userID']
currentACL = ACLManager.loadedACL(userID)
if currentACL['admin'] == 1:
pass
else:
return ACLManager.loadErrorJson()
cm = ContainerManager()
coreResult = cm.getContainerApplog(userID, json.loads(request.body))
return coreResult
except KeyError:
return redirect(loadLoginPage)
@preDockerRun
def recreateappcontainer(request):
try:
userID = request.session['userID']
currentACL = ACLManager.loadedACL(userID)
if currentACL['admin'] == 1:
pass
else:
return ACLManager.loadErrorJson()
cm = ContainerManager()
coreResult = cm.recreateappcontainer(userID, json.loads(request.body))
return coreResult
except KeyError:
return redirect(loadLoginPage)