Beispiel #1
0
	def post(self):
		if self.get_secure_cookie("AuthUsername") == '':
			self.render("NotPermitted.html")
			return
		p= Permission(self.database)
		
		original= self.get_argument("original")
		if p.verifyUserToGuestPermission(self.get_secure_cookie("AuthUsername"), original, 4)  == 0:
			self.redirect('/')
			return
		new= self.get_secure_cookie("AuthUsername")+'_'+str(self.get_argument("new"))
		diskname=conf.images_dir+'/'+new+'.qcow'
		cmd = "virt-clone -o %s -n %s -f %s --connect=qemu+ssh://127.0.0.1/system " % (original, new, diskname)
		try:
			commands.getstatusoutput(cmd)
			self.cursor.execute("SELECT CreateGuest('%s', '%s')" %
					(new, self.get_secure_cookie("AuthUsername")))
		except: 
			self.database.rollback()
		else:
			self.cursor.execute("SELECT CreateGuest('%s', '%s')" %
					(new, self.get_secure_cookie("AuthUsername")))
			self.database.commit()
			
		self.redirect('/guest/%s/' % str(new))
Beispiel #2
0
	def post(self, guest):
		if self.get_secure_cookie("AuthUsername") == '':
			self.render("NotPermitted.html")
			return
		p= Permission(self.database)
		guest=urllib.unquote(guest)
		if p.verifyUserToGuestPermission(self.get_secure_cookie("AuthUsername"), guest, 3)  == 0:
			self.render("NotPermitted.html")
			return
		act= self.request.arguments['act']
		perm = ['0','0','0','0','0','0','0','0']
		for i in act:
			if i == 'show':
				perm[7]='1'
			if i == 'run':
				perm[6]='1'
			if i == 'delete':
				perm[5]='1'
			if i == 'clone' :
				perm[4]='1'
			if i == 'chmod':
				perm[3]='1'
		perm= int(''.join(perm),2)
		user= self.get_argument('user')
		tmpcursor=self.database.cursor()
		self.cursor.execute("DELETE FROM acl_g2u WHERE guest='%s' AND username='******'; " % (guest, user))
		if perm > 0:
			tmpcursor.execute("INSERT INTO acl_g2u VALUES ('%s', '%s', %s); " % ( user, guest, str(perm)))
		self.database.commit()
		self.redirect('/guest/%s/' % guest)
Beispiel #3
0
	def get(self, name, disk):
		if self.get_secure_cookie("AuthUsername") == '':
			self.render("NotPermitted.html")
			return
		p= Permission(self.database)
		name=urllib.unquote(name)
		if p.verifyUserToGuestPermission(self.get_secure_cookie("AuthUsername"), name, 6)  == 0:
			self.render("NotPermitted.html")
			return
		try:
			vm = lvconn.lookupByName(name)
			xml = vm.XMLDesc(1)
			xml = minidom.parseString(xml)
			os = xml.getElementsByTagName("os")
			os= os[0]
			disks= xml.getElementsByTagName("disk")
			for dsk in disks:
				if dsk.getAttribute('device')==disk:
					disks.removeChild(dsk)
					print dsk.getAttribute('device')
			
			if vm.isActive():
				vm.destroy()
			vm.undefine()
			new = lvconn.defineXML( xml.toxml())
			new.create()
		except:
			print("err")
			pass
		self.redirect('/guest/'+name+'/')
Beispiel #4
0
	def get(self, name, disk):
		if self.get_secure_cookie("AuthUsername") == '':
			self.render("NotPermitted.html")
			return
		p= Permission(self.database)
		name=urllib.unquote(name)
		if p.verifyUserToGuestPermission(self.get_secure_cookie("AuthUsername"), name, 6)  == 0:
			self.render("NotPermitted.html")
			return
		try:
			vm = lvconn.lookupByName(name)
			xml = vm.XMLDesc(1)
			xml = minidom.parseString(xml)
			os = xml.getElementsByTagName("os")
			os= os[0]
			devices = xml.getElementsByTagName("devices")
			devices= devices[0]
			boot = xml.getElementsByTagName("boot")
			for tmpboot in boot:
				os.removeChild(tmpboot)
			boot = xml.createElement("boot")
			if disk=="disk":
				disk="hd"
			boot.setAttribute("dev", disk)
			os.appendChild(boot)
			if vm.isActive():
				vm.destroy()
			vm.undefine()
			new = lvconn.defineXML( xml.toxml())
			new.create()
		except:
			print("err")
			pass
		self.redirect('/guest/'+name+'/')
Beispiel #5
0
	def get(self, name):
		if self.get_secure_cookie("AuthUsername") == '':
			self.render("NotPermitted.html")
			return
		p= Permission(self.database)
		name=urllib.unquote(name)
		if p.verifyUserToGuestPermission(self.get_secure_cookie("AuthUsername"), name, 3)  == 0:
			self.render("NotPermitted.html")
			return
		
		guest = lvconn.lookupByName(name)
		guest.destroy()
		self.redirect("/guest/"+name+"/")
Beispiel #6
0
	def get(self, name):
		if self.get_secure_cookie("AuthUsername") == '':
			self.render("NotPermitted.html")
			return
		name=urllib.unquote(name)
		p= Permission(self.database)
		if p.verifyUserToGuestPermission(self.get_secure_cookie("AuthUsername"), name, 6)  == 0:
			self.render("NotPermitted.html")
			return
		try:
			vm = lvconn.lookupByName(name)
			vm.create()
			state = vm.info()[0]
		except:
			state = "0"
		self.redirect('/guest/'+name+'/')
Beispiel #7
0
	def get(self, name):
		if self.get_secure_cookie("AuthUsername") == '':
			self.render("NotPermitted.html")
			return
		p= Permission(self.database)
		name=urllib.unquote(name)
		if p.verifyUserToGuestPermission(self.get_secure_cookie("AuthUsername"), name, 5)  == 0:
			self.render("NotPermitted.html")
			return
		try:

			vm = lvconn.lookupByName(name)
			if vm.isActive():
				vm.destroy()
			vm.undefine()
			self.cursor.execute("DELETE FROM guest WHERE name = '%s'; " %  str(name))
		except:
			self.database.rollback()
		else:
			self.database.commit()
			folder = conf.images_dir
			cmd = "rm -f %s/%s.qcow " % (folder, name )
			commands.getstatusoutput(cmd)
		self.redirect('/guests/')