def image_pull(image): try: sys().image.pull(image) return True except: return False
def dashboard_volume_view(request): template_name = 'Dashboard/volumes.html' context = { "user_last_login": request.user.last_login, "user": request.user.username, "volumes": sys().client.volumes.list(), "form": CreateVolumeForm(), } if request.user.is_authenticated and request.user.volumes_permission: if request.method == "GET": return render_to_response(template_name, context) if request.method == "POST": if 'remove' in request.POST: volume_names = request.POST.getlist('volume_name') for volume_name in volume_names: sys().client.volumes.get(volume_name).remove() if 'create' in request.POST: create_form = CreateVolumeForm(request.POST) if create_form.is_valid(): sys.client.volumes.create( name=create_form.cleaned_data['name'], driver=create_form.cleaned_data['driver']) return redirect('/dashboard/index') else: return redirect('/dashboard/login')
def dashboard_network_view(request): template_name = 'Dashboard/networks.html' context = { "user_last_login": request.user.last_login, "user": request.user.username, "form": CreateNetworkForm(), "networks": docker.from_env().networks.list() } if request.user.is_authenticated & request.user.networks_permission: if request.method == "GET": return render_to_response(template_name, context) if request.method == "POST": if 'remove' in request.POST: network_ids = request.POST.getlist('network_id') for network_id in network_ids: sys().client.networks.get(network_id).remove() if 'create' in request.POST: create_form = CreateNetworkForm(request.POST) if create_form.is_valid(): sys.client.networks.create( name=create_form.cleaned_data['name'], driver=create_form.cleaned_data['driver']) return redirect('/dashboard/index') else: return redirect('/dashboard/login')
def dashobard_images_view(request): template_name = 'Dashboard/images.html' con_image_list = [] for con in docker.from_env().containers.list(all=True): con_image_list += con.image.tags context = { "images": docker.from_env().images.list(all=True), "user_last_login": request.user.last_login, "user": request.user.username, "con_image_list": con_image_list, "form": PullForm(), } if request.user.is_authenticated and request.user.images_permission: if request.method == "GET": return render_to_response(template_name, context) if request.method == "POST": if 'remove' in request.POST: image_tags = request.POST.getlist('image') for image_tag in image_tags: sys().image.remove(image_tag) if 'pull' in request.POST: pull_form = PullForm(request.POST) if pull_form.is_valid(): sys().image.pull(pull_form.cleaned_data['pull_image']) return redirect('/dashboard/index') else: return redirect('/dashboard/login')
def dashboard_deploy_view(request): template_name = 'Dashboard/deploy.html' if request.user.is_authenticated and request.user.containers_permission: if request.method == "POST": form = DeployForm(request.POST) if form.is_valid(): sys().client.containers.run( image=form.cleaned_data['image'], command=form.cleaned_data['cmd'], auto_remove=form.cleaned_data['auto_remove'], tty=form.cleaned_data['tty'], ports=form.cleaned_data['ports'], working_dir=form.cleaned_data['work_dir'], name=form.cleaned_data['name']) print('ok') return redirect('/dashboard/containers') if request.method == "GET": form = DeployForm() return render_to_response(template_name, context={ 'form': form, 'user': request.user.username, 'user_last_login': request.user.last_login }) else: return redirect('/dashboard/login')
def deploy( image, command, auto_remove, tty, ports, volumes, name, hostname, cpu, mem, privileged, network): try: sys().client.containers.run( image=image, command=command, auto_remove=auto_remove, tty=tty, ports=ports, volumes=volumes, name=name, hostname=hostname, cpu_shares=cpu, mem_limit=mem, privileged=privileged, network=network ) return True except BaseException: return False
def image_pull(image): try: sys().image.pull(image) return True except BaseException: return False
def post(self, request, *args, **kwargs): con_name = request.POST.getlist("con_name") if request.user.containers_permission: if 'start' in request.POST: for con in con_name: try: sys().client.containers.get(con).start() messages.add_message( request, messages.SUCCESS, "Contianer: " + str(con) + " start Success") except: messages.add_message( request, messages.ERROR, "Contianer: " + str(con) + " start Failed") elif 'stop' in request.POST: for con in con_name: try: sys().client.containers.get(con).stop() messages.add_message( request, messages.WARNING, "Contianer: " + str(con) + " stop Success") except: messages.add_message( request, messages.ERROR, "Contianer: " + str(con) + " stop Failed") elif 'restart' in request.POST: for con in con_name: try: sys().client.containers.get(con).restart() messages.add_message( request, messages.SUCCESS, "Contianer: " + str(con) + " restart Success") except: messages.add_message( request, messages.ERROR, "Contianer: " + str(con) + " restart Failed") elif 'remove' in request.POST: for con in con_name: try: sys().client.containers.get(con).stop() sys().client.containers.get(con).remove() messages.add_message( request, messages.SUCCESS, "Contianer: " + str(con) + " remove Success") except: messages.add_message( request, messages.ERROR, "Contianer: " + str(con) + " remove Failed") context = { "object_list": docker.from_env().containers.list(all=True), "user_last_login": request.user.last_login, "user": request.user.username, } return render(self.request, template_name=self.template_name, context=context) return redirect('/dashboard/login')
def dashobard_containers_view(request): template_name = 'Dashboard/containers.html' if request.user.is_authenticated and request.user.containers_permission: if request.method == "POST": con_name = request.POST.getlist("con_name") if 'start' in request.POST: for con in con_name: sys().client.containers.get(con).start() elif 'stop' in request.POST: for con in con_name: sys().client.containers.get(con).stop() elif 'restart' in request.POST: for con in con_name: sys().client.containers.get(con).restart() elif 'remove' in request.POST: for con in con_name: sys().client.containers.get(con).remove() context = { "con_list": docker.from_env().containers.list(all=True), "user_last_login": request.user.last_login, "user": request.user.username, } return render_to_response(template_name, context) if request.method == "GET": context = { "con_list": docker.from_env().containers.list(all=True), "user_last_login": request.user.last_login, "user": request.user.username, } return render_to_response(template_name, context) else: return redirect('/dashboard/login')
def dashboard_network_view(request): template_name = 'Dashboard/networks.html' context = { "user_last_login": request.user.last_login, "user": request.user.username, "form": CreateNetworkForm(), "networks": docker.from_env().networks.list() } if request.user.is_authenticated & request.user.networks_permission: if request.method == "GET": return render(request, template_name=template_name, context=context) if request.method == "POST": if 'remove' in request.POST: network_ids = request.POST.getlist('network_id') for network_id in network_ids: try: sys().client.networks.get(network_id).remove() messages.add_message( request, messages.SUCCESS, 'Removing networks:' + network_id + '.Please wait and refresh the page after a while.') except: messages.add_message( request, messages.WARNING, 'Removing networks:' + network_id + ' Error') if 'create' in request.POST: create_form = CreateNetworkForm(request.POST) if create_form.is_valid(): try: sys.client.networks.create( name=create_form.cleaned_data['name'], driver=create_form.cleaned_data['driver'], scope=create_form.cleaned_data['scope']) messages.add_message( request, messages.SUCCESS, 'Creating networks:' + create_form.cleaned_data['name'] + '.Please wait and refresh the page after a while.') except: messages.add_message( request, messages.WARNING, 'Creating networks:' + create_form.cleaned_data['name'] + ' Error') return redirect('/dashboard/networks') else: return redirect('/dashboard/login')
def dashobard_images_view(request): template_name = 'Dashboard/images.html' con_image_list = [] for con in docker.from_env().containers.list(all=True): con_image_list += con.image.tags context = { "images": docker.from_env().images.list(all=True), "user_last_login": request.user.last_login, "user": request.user.username, "con_image_list": con_image_list, "form": PullForm(), } if request.user.is_authenticated and request.user.images_permission: if request.method == "GET": return render(request, template_name=template_name, context=context) if request.method == "POST": if 'remove' in request.POST: try: image_tags = request.POST.getlist('image') for image_tag in image_tags: sys().image.remove(image_tag) messages.add_message(request, messages.SUCCESS, 'Removing images..Please wait.' ) except: messages.add_message(request, messages.WARNING, 'Removing images failed.' ) if 'pull' in request.POST: pull_form = PullForm(request.POST) if pull_form.is_valid(): try: image_pull.delay(pull_form.cleaned_data['pull_image']) messages.add_message(request, messages.SUCCESS, 'Pulling images.Please wait and refresh the page after a while.' ) except: messages.add_message(request, messages.WARNING, 'Pulling images failed.' ) return redirect('/dashboard/images') else: return redirect('/dashboard/login')
def dashboard_volume_view(request): template_name = 'Dashboard/volumes.html' context = { "user_last_login": request.user.last_login, "user": request.user.username, "volumes": sys().client.volumes.list(), "form": CreateVolumeForm(), } if request.user.is_authenticated and request.user.volumes_permission: if request.method == "GET": return render(request, template_name=template_name, context=context) if request.method == "POST": if 'remove' in request.POST: volume_names = request.POST.getlist('volume_name') for volume_name in volume_names: try: sys().client.volumes.get(volume_name).remove() messages.add_message( request, messages.SUCCESS, 'Removing volumes:' + volume_name + '.Please wait and refresh the page after a while.') except: messages.add_message( request, messages.WARNING, 'Removing volumes:' + volume_name + ' Error') if 'create' in request.POST: create_form = CreateVolumeForm(request.POST) if create_form.is_valid(): try: sys.client.volumes.create( name=create_form.cleaned_data['name'], driver=create_form.cleaned_data['driver']) messages.add_message( request, messages.SUCCESS, 'Creating volumes:' + create_form.cleaned_data['name'] + '.Please wait and refresh the page after a while.') except: messages.add_message( request, messages.WARNING, 'Creating volumes:' + create_form.cleaned_data['name'] + ' Error') return redirect('/dashboard/volumes') else: return redirect('/dashboard/login')
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['sysinfo'] = sys() context['con_run'] = docker.from_env().info()['ContainersRunning'] context['con_stop'] = docker.from_env().info()['ContainersStopped'] context['con_pause'] = docker.from_env().info()['ContainersPaused'] context['user_last_login'] = self.request.user.last_login context['user'] = self.request.user.username context['con_num'] = len(docker.from_env().containers.list(all=True)) return context
def get(self, request, *args, **kwargs): return HttpResponse(str(sys().mem_persent) + "%")
def get(self, request, *args, **kwargs): return HttpResponse(str(sys().cpu_percent()) + "%")
def get(self, request, *args, **kwargs): return HttpResponse(sys().con_num)