def managed_containers(request): ctx = context() project_name = docker.compose_config( ).project_name if docker.compose_config() else None if project_name: ctx = context({ "project_list": [ docker.compose_project_by_name( docker.compose_config().project_name) ] }) return render(request, "compose_ui/project_containers.html", ctx)
def other_project_containers(request): ctx = context() project_name_to_exclude = docker.compose_config( ).project_name if docker.compose_config() else None if project_name_to_exclude: ctx = context({ "container_list": docker.containers_for_project( exclude_project_name=project_name_to_exclude), "other_projects": True, }) return render(request, "compose_ui/standalone_containers.html", ctx)
def view_compose_file(request, error=None): compose_config = docker.compose_config() return render( request, "compose_ui/file_editor.html", context({ "doc_file": compose_config.original_file_content(), "error": error }), )
def service_logs(request, project_name, service_name): lines = request.GET.get("lines", 100) logs = docker.service_logs(project_name=project_name, service_name=service_name, lines=lines) return render( request, "compose_ui/logs.html", context({ "auto_refresh": False, # never auto-refresh logs "lines": lines, "project_name": project_name, "service_name": service_name, "logs": logs, }), )
def container_logs(request, container_id): try: container = docker.container_by_id(container_id) docker.check_container_permission(user=request.user, container=container, perm="container_logs") lines = int(request.GET.get("lines", 100)) logs = container.logs(lines) return render( request, "compose_ui/logs.html", context({ "auto_refresh": False, # never auto-refresh logs "lines": lines, "container_name": container.name, "logs": logs, }), ) except NotFound as error: raise Http404(error.explanation) except CalledProcessError: return HttpResponseServerError("error getting container logs") except PermissionDenied: return HttpResponseForbidden()
def docker_system(request): config = docker.compose_config() return render(request, "compose_ui/system.html", context({"compose_file": bool(config)}))
def standalone_containers(request): ctx = context({"container_list": docker.standalone_containers()}) return render(request, "compose_ui/standalone_containers.html", ctx)