Example #1
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+'/')
Example #2
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+'/')
Example #3
0
def parse(file):
	
	results = []
	i = 0
		
	for line in open(file,'r').readlines():	
	
		# determine valid flight or not
		boolean = valid_flight(line)
		if(boolean == True):
			flight = {}
			flight['segments'] = []
			flight['fares'] = []
			xml = parseString(line)
			
			#print line
			
			# parse segments
			segments = xml.getElementsByTagName("FlightSegment")
			for segment in segments:
				segment_array = {}
				segment_array['Origin'] = segment.getAttribute("Origin")
				segment_array['Destination'] = segment.getAttribute("Destination")
				segment_array['CarrierCode'] = segment.getAttribute("CarrierCode")
				segment_array['FlightNumber'] = segment.getAttribute("FlightNumber")
				segment_array['DepartureDateTime'] = segment.getAttribute("DepartureDateTime")
				segment_array['ArrivalDateTime'] = segment.getAttribute("ArrivalDateTime")
				segment_array['BookingCode'] = segment.getAttribute("BookingCode")
				segment_array['CabinClass'] = segment.getAttribute("CabinClass")
				segment_array['SeatsRemaining'] = segment.getAttribute("SeatsRemaining")
				flight['segments'].append(segment_array)
				
			# parse fares
			fares = xml.getElementsByTagName("Fare")
			for fare in fares:
				fare_array = {}
				fare_array['PassengerCode'] = fare.getAttribute("PassengerCode")
				fare_array['BaseAmount'] = fare.getAttribute("BaseAmount")
				fare_array['TaxAmount'] = fare.getAttribute("TaxAmount")
				fare_array['Currency'] = fare.getAttribute("Currency")
				fare_array['Refundable'] = fare.getAttribute("Refundable")
				fare_array['ETicketable'] = fare.getAttribute("ETicketable")
				flight['fares'].append(fare_array)
				
			
			results.append(flight)
			# first 20 flights
			if i > 20:
				print results
				sys.exit(0)
			else:
				i = i + 1
				
	return results
Example #4
0
def gen_link_atms(lat=51.51856, lon=-0.14377, maxDistance=3, max_results=50):
    cache = urlgrab.Cache(cache=".cache")
    cache.user_agent = (
        "Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.1.9) Gecko/20100501 Iceweasel/3.5.9 (like Firefox/3.5.9)"
    )

    api = cache.get("http://clients.multimap.com/API/maps/1.2/linkapi/")
    cookies = api.headers.cookies()

    deliveryID = int(cookies["deliveryId"])
    mdin = int(cookies["MDIN"])

    data = cache.get(
        "http://clients.multimap.com/API/search/1.2/linkapi?output=xml&callback=MMSearchRequester.prototype._GeneralJSONCallback&dataSource=mm.clients.linkapi&count=%d&lat=%f&lon=%f&maxDistance=%d&orderByFields=distance&orderByOrder=asc&locale=en-us&deliveryID=%d&identifier=1"
        % (max_results, lat, lon, maxDistance, deliveryID),
        ref="http://www.link.co.uk/Style%20Library/ATMLocator.html",
        headers={"Cookie": "MDIN=%d" % mdin},
        timeout=240,
    ).read()

    xml = parseString(data)

    rs = xml.getElementsByTagName("RecordSet")[0]
    records = rs.getElementsByTagName("Record")
    for record in records:
        atm = {}
        fields = record.getElementsByTagName("Field")
        for field in fields:
            if not field.firstChild:
                content = ""
            else:
                content = field.firstChild.data
            name = field.getAttribute("name")
            atm[name] = content

            atm["lat"] = float(record.getElementsByTagName("Lat")[0].firstChild.data)
            atm["lon"] = float(record.getElementsByTagName("Lon")[0].firstChild.data)
        yield atm
Example #5
0
	def get(self, name):
		gname = urllib.unquote(name)
		if self.get_secure_cookie("AuthUsername") == '':
			self.render("NotPermitted.html")
			return
			
		try:	
			vm = lvconn.lookupByName(name)
		except:
			self.redirect('/guests/')
		xml = vm.XMLDesc(1)
		xml = minidom.parseString(xml)
		
		active = vm.isActive()	
		
		memory = xml.getElementsByTagName('memory').item(0).firstChild.nodeValue
		memory = int(memory) /1024
		
		vcpu = xml.getElementsByTagName('vcpu').item(0).firstChild.nodeValue
		emulator = xml.getElementsByTagName('emulator').item(0).firstChild.nodeValue
		
		arch = xml.getElementsByTagName('os').item(0).getElementsByTagName('type').item(0).getAttribute('arch')
		
		vnc_port = xml.getElementsByTagName('graphics').item(0).getAttribute('port')
		vnc_passwd = xml.getElementsByTagName('graphics').item(0).getAttribute('passwd')

		devices = list()
		for disk in xml.getElementsByTagName('disk') :
			
			try:
				name = disk.getElementsByTagName('alias').item(0).getAttribute('name')
			except:
				name = "NoName"
				
			try:
				path = disk.getElementsByTagName('source').item(0).getAttribute('file')
			except:
				path = "-"
			
			try:
				dev = disk.getElementsByTagName('target').item(0).getAttribute('dev')
			except:
				path = "-"
			
			try:
				typed = disk.getAttribute('device')
			except:
				typed = "-"
			
			device = {
				'name': name,
				'path': path,
				'link' : 'http://darkstar.ricerca.dico.unimi.it/static/storage/'+os.path.basename(path),
				'dev': dev,
				'typed': typed,
			}
			devices.append(device)

		permissions=list()

		try:
			self.cursor.execute("SELECT username, permissions FROM  acl_g2u WHERE guest = '%s';" % gname)
			tmpcursor = self.database.cursor()
			tmpcursor.execute("SELECT username FROM vuser ;" )
		except:
			self.database.rollback()
			print "ERROR"
		else:
			self.database.commit()
			for perm in  self.cursor:
				''' <madness > '''
				permbyte = '{0:08b}'.format(perm[1])
				''' </madness> '''
				permissions.append({
					'name': perm[0],
					'show': permbyte[7],
					'run': permbyte[6],
					'delete': permbyte[5] ,
					'clone':permbyte[4] ,
					'chmod': permbyte[3] 
				})
			users = list()
			for  user in tmpcursor:
				users.append(user[0])

		self.render("GuestDetails.html", name=gname, memory = memory, vcpu = vcpu, arch = arch, devices= devices, emulator= emulator, vnc_port = vnc_port, vnc_passwd=vnc_passwd, active=active, permissions=permissions, users=users)
Example #6
0
def search(xml,tag,offset=0):
	"""Search XML Fragment for named tag"""
	xmltemp=xml.getElementsByTagName(tag)[offset]
	xmlval=xmltemp.childNodes[0].data
	return xmlval
Example #7
0
def parse(file):

    results = []
    i = 0

    for line in open(file, 'r').readlines():

        # determine valid flight or not
        boolean = valid_flight(line)
        if (boolean == True):
            flight = {}
            flight['segments'] = []
            flight['fares'] = []
            xml = parseString(line)

            #print line

            # parse segments
            segments = xml.getElementsByTagName("FlightSegment")
            for segment in segments:
                segment_array = {}
                segment_array['Origin'] = segment.getAttribute("Origin")
                segment_array['Destination'] = segment.getAttribute(
                    "Destination")
                segment_array['CarrierCode'] = segment.getAttribute(
                    "CarrierCode")
                segment_array['FlightNumber'] = segment.getAttribute(
                    "FlightNumber")
                segment_array['DepartureDateTime'] = segment.getAttribute(
                    "DepartureDateTime")
                segment_array['ArrivalDateTime'] = segment.getAttribute(
                    "ArrivalDateTime")
                segment_array['BookingCode'] = segment.getAttribute(
                    "BookingCode")
                segment_array['CabinClass'] = segment.getAttribute(
                    "CabinClass")
                segment_array['SeatsRemaining'] = segment.getAttribute(
                    "SeatsRemaining")
                flight['segments'].append(segment_array)

            # parse fares
            fares = xml.getElementsByTagName("Fare")
            for fare in fares:
                fare_array = {}
                fare_array['PassengerCode'] = fare.getAttribute(
                    "PassengerCode")
                fare_array['BaseAmount'] = fare.getAttribute("BaseAmount")
                fare_array['TaxAmount'] = fare.getAttribute("TaxAmount")
                fare_array['Currency'] = fare.getAttribute("Currency")
                fare_array['Refundable'] = fare.getAttribute("Refundable")
                fare_array['ETicketable'] = fare.getAttribute("ETicketable")
                flight['fares'].append(fare_array)

            results.append(flight)
            # first 20 flights
            if i > 20:
                print results
                sys.exit(0)
            else:
                i = i + 1

    return results