Add container management features: implement update, delete with data, and delete while preserving data functionalities. Update views, URLs, and templates for enhanced user interaction and data safety. Introduce modals for container updates and deletion options, improving overall user experience.

This commit is contained in:
Master3395
2025-09-18 22:16:42 +02:00
parent 7a84819361
commit 317b75bb9a
16 changed files with 1540 additions and 19 deletions

View File

@@ -577,6 +577,69 @@ def executeContainerCommand(request):
except KeyError:
return redirect(loadLoginPage)
@preDockerRun
def updateContainer(request):
"""
Update container with new image while preserving data using Docker volumes
"""
try:
userID = request.session['userID']
currentACL = ACLManager.loadedACL(userID)
if currentACL['admin'] == 1:
pass
else:
return ACLManager.loadErrorJson()
cm = ContainerManager()
coreResult = cm.updateContainer(userID, json.loads(request.body))
return coreResult
except KeyError:
return redirect(loadLoginPage)
@preDockerRun
def deleteContainerWithData(request):
"""
Delete container and all associated data (volumes)
"""
try:
userID = request.session['userID']
currentACL = ACLManager.loadedACL(userID)
if currentACL['admin'] == 1:
pass
else:
return ACLManager.loadErrorJson()
cm = ContainerManager()
coreResult = cm.deleteContainerWithData(userID, json.loads(request.body))
return coreResult
except KeyError:
return redirect(loadLoginPage)
@preDockerRun
def deleteContainerKeepData(request):
"""
Delete container but preserve data (volumes)
"""
try:
userID = request.session['userID']
currentACL = ACLManager.loadedACL(userID)
if currentACL['admin'] == 1:
pass
else:
return ACLManager.loadErrorJson()
cm = ContainerManager()
coreResult = cm.deleteContainerKeepData(userID, json.loads(request.body))
return coreResult
except KeyError:
return redirect(loadLoginPage)
def loadContainersForImport(request):
"""