def delete(self, id): try: self.client.remove_container(container=id, force=True) except Exception as e: self.client.stop(container=id) self.client.remove_container(container=id) return redirect(url_for(Containers.index))
def restart(self, id): self.client.restart(container=id) if self.client.inspect_container(container=id)["State"]["Running"]: # cmd = "pipework "+ settings["DOCKER"]["NETWORK"] + " " +name + " " + ip +"/24" # else: cmd = ( "pipework " + settings["DOCKER"]["NETWORK"] + " " + self.client.inspect_container(container=id)["Name"][1:] + " dhcp" ) print cmd os.system(cmd) return redirect(url_for(Containers.index))
def add(self): if request.method == "GET": images = [] for i in self.client.images(): images.append(i["RepoTags"][0]) return {"images": sorted(images)} elif request.method == "POST": image = request.params["image"] name = request.params["name"] command = request.params["command"] ip = request.params["ip"] if len(name) <= 1: return json({"success": False, "message": "name长度不能小于一个字符"}) containerId = self.client.create_container( image=image, name=name, command=command, stdin_open=True, tty=True, detach=True )["Id"] print containerId self.client.start(container=containerId) cmd = "" if self.client.inspect_container(container=containerId)["State"]["Running"] and ip.strip(): cmd = "pipework " + settings["DOCKER"]["NETWORK"] + " " + name + " " + ip + "/24" else: cmd = "pipework " + settings["DOCKER"]["NETWORK"] + " " + name + " dhcp" print cmd # print "docker exec "+containerId + """ bash -c "echo 'root:""" + command + """' | chpasswd" """ print os.system(cmd) # ip = str(commands.getoutput("docker exec "+ containerId +" ifconfig eth1|sed -n 2p|awk '{ print $2 }'|awk -F : '{ print $2 }'")).lower() # print ip # if ip.find("error") ==-1: # #con = functions.get_model(Container) # c = con( # containerid = containerId, # name = name, # ip = ip # ) # c.save() print json({"success": True, "container": containerId}) return json({"success": True, "container": containerId}) else: return redirect(url_for(Containers.add))
def transfer(): # 形成form if request.method == 'POST': return redirect('/transfer') response.template = 'transfer/index.html' return {'message': 'hello'}
def index(): if functions.has_permission(request.user, settings.TRANSFER.PERMISSION): return redirect('/transfer') else: error(_('You do not have transfer permission'))
def stop(self, id): self.client.stop(container=id) return redirect(url_for(Containers.index))
def has_login(next=None): from uliweb import request, redirect, url_for if not request.user: path = request.url return redirect(next or url_for('login', next=path))
def index(): return redirect(url_for_static("node/index.html"))