Beispiel #1
0
def image_pull(image):
    try:
        sys().image.pull(image)
        return True

    except:
        return False
Beispiel #2
0
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')
Beispiel #3
0
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')
Beispiel #4
0
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')
Beispiel #5
0
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')
Beispiel #6
0
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
Beispiel #7
0
def image_pull(image):
    try:
        sys().image.pull(image)
        return True

    except BaseException:
        return False
Beispiel #8
0
 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')
Beispiel #9
0
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')
Beispiel #10
0
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')
Beispiel #11
0
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')
Beispiel #12
0
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')
Beispiel #13
0
 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
Beispiel #14
0
 def get(self, request, *args, **kwargs):
     return HttpResponse(str(sys().mem_persent) + "%")
Beispiel #15
0
 def get(self, request, *args, **kwargs):
     return HttpResponse(str(sys().cpu_percent()) + "%")
Beispiel #16
0
 def get(self, request, *args, **kwargs):
     return HttpResponse(sys().con_num)