Esempio n. 1
0
File: main.py Progetto: 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")
Esempio n. 2
0
File: main.py Progetto: whs/OvzCP
	def post(self, veid):
		sql = models.VM.select(models.VM.q.veid == int(veid))[0]
		if sql.user != self.current_user and sql.user:
			self.redirect(self.reverse_url("containers")+"?error=1")
			return
		vm = sql.vz
		if vm.running:
			self.redirect(self.reverse_url("containers")+"?error=5")
			return
		proc = vm.destroy()
		for i in sql.varnishBackend:
			for i2 in i.cond:
				i2.destroySelf()
			i.destroySelf()
		for i in sql.portForward:
			i.destroySelf()
		if sql.munin:
			sql.munin.destroySelf()
		import munin, vmfw
		munin.update(models.Munin.select(), models.User.select())
		vmfw.update(models.PortForward.select())
		vmfw.restart()
		varnish.updateBackend(models.VarnishBackend.select())
		varnish.updateRecv(models.VarnishCond.select())
		varnish.restart()
		sql.destroySelf()
		time.sleep(1) # wait for dusts to settle
		self.redirect(self.get_argument("return", self.reverse_url("containers")+"?msg=3"))
Esempio n. 3
0
File: main.py Progetto: whs/OvzCP
	def get(self, veid):
		if not _config.getboolean("varnish", "enabled"): return
		try:
			d=models.VarnishCond.select(models.VarnishCond.q.id == int(self.get_argument("delete")))[0]
		except IndexError:
			self.redirect(self.reverse_url("vminfo", veid)+"#webedit")
		if d.backend.vm.user != self.current_user or not d.backend.vm.user:
			self.redirect(self.reverse_url("containers")+"?error=1")
			return
		# check for orphaned backend
		backend = d.backend
		d.destroySelf()
		varnish.updateRecv(models.VarnishCond.select())
		if backend.cond.count() == 0:
			backend.destroySelf()
			varnish.updateBackend(models.VarnishBackend.select())
		self.redirect(self.reverse_url("vminfo", veid)+"#webedit")