예제 #1
0
파일: main.py 프로젝트: whs/OvzCP
	def post(self, veid):
		if not _config.getboolean("varnish", "enabled"): return
		sql = models.VM.select(models.VM.q.veid == int(veid))[0]
		if sql.user != self.current_user or not sql.user:
			self.redirect(self.reverse_url("containers")+"?error=1")
			return
		host = self.get_argument("host", "")
		port = int(self.get_argument("port", 0))
		if not host or not port:
			self.redirect(self.reverse_url("vminfo", veid)+"#webedit")
			return
		if not re.match(r"^[a-zA-Z0-9\.\-_]+$", host):
			self.redirect(self.reverse_url("vminfo", veid)+"?error=3")
			return
		if models.VarnishCond.select(models.VarnishCond.q.hostname==host).count():
			self.redirect(self.reverse_url("vminfo", veid)+"?error=1")
			return
		backend = models.VarnishBackend.select(models.AND(models.VarnishBackend.q.port == port, models.VarnishBackend.q.vm==sql))
		backendUpdate=False
		if backend.count():
			backend = backend[0]
		else:
			backend = models.VarnishBackend(name=sql.vz.hostname+str(port), vm=sql, port=port)
			backendUpdate=True
		models.VarnishCond(hostname=host, subdomain=bool(self.get_argument("subdomain", False)), varnishBackend=backend)
		if backendUpdate:
			varnish.updateBackend(models.VarnishBackend.select())
		varnish.updateRecv(models.VarnishCond.select())
		if varnish.version()[0] > 1:
			varnish.restart()
		self.redirect(self.reverse_url("vminfo", veid)+"#webedit")
예제 #2
0
파일: main.py 프로젝트: whs/OvzCP
	def get(self):
		if not _config.getboolean("varnish", "enabled"): return
		if varnish.version()[0] < 2:
			if self.get_argument("state") == "0":
				cookie = self.get_secure_cookie("varnishrestart")
				if not cookie:
					cookie=1
				if (int(cookie)+300) - time.time() > 0:
					#self.redirect("/vm/%s?error=2"%self.get_argument("veid"))
					self.write(_("Limit not reached. Please wait %s seconds") % (int(cookie)+300) - time.time())
					return
				self.set_secure_cookie("varnishrestart", str(int(time.time())))
				self.set_secure_cookie("varnishcookie", str(int(time.time())))
			else:
				t = int(self.get_secure_cookie("varnishcookie"))
				if time.time()-t > 3:
					return
				varnish.restart()
		else:
			varnish.restart()