Exemple #1
0
def scrape(url, areas, areasID, locations):
	# Acquire hot soup
	soup = serve_soup(mainUrl+url)
	# Retrieve area data and initialize areaID
	areaData = scrape_area(soup, url, areas, areasID, locations)
	areaID = None
	if apiFlag:
		# Get area's id and remove quotes
		areaID = rest.post('/areas', areaData).text[1:-1]

	links = get_area_links(soup)

	if len(links) > 0:
		for link in links:
			# If location is a unique value, add it to locations. Otherwise, just send locations
			currentLocation = areaData["location"]
			nextLocations = locations if areaData["locationInherited"] and currentLocation == None else locations+[currentLocation]
			time.sleep(0.5)
			# Recursively repeat this function with the found areas
			scrape(link.attrs["href"], areas+[link.getText()], areasID+[areaID], nextLocations)
	else:
		links = get_route_links(soup)
		for link in links:
			print(link.getText())
			if routeFlag:
				time.sleep(0.1)
				routeData = scrape_route(link, areas, areasID+[areaID])
				if apiFlag:
					rest.post('/routes', routeData)
Exemple #2
0
    def create_campaign(url):
      data = [{
	u'fields': {
	  u'accepted_count': -1,
	  u'addr_filter': None,
	  u'devclass_filter': None,
	  u'dongle_name': u'Test Dongle',
	  u'enabled': True,
	  u'end': None,
	  u'fixed_channel': None,
	  u'name': u'Test Campaign',
	  u'name_filter': u'Test Name',
	  u'pin_code': u'test',
	  u'rejected_count': 2,
	  u'rejected_timeout': -1,
	  u'rssi_max': None,
	  u'rssi_min': None,
	  u'service': 0,
	  u'start': None,
	  u'tries_count': -1,
	  u'tries_timeout': 0
	},
	u'model': u'openproximity.marketingcampaign',
	u'pk': 1
      }]
      print "creating test campaign"
      data=json.dumps(data)
      data=json.loads(rest.post(url, 'openproximity/marketingcampaign', data))
      print "created"
      return data[0]['pk']
def test(url):
    print "registered campaigns"
    pp=pprint.PrettyPrinter(indent=4)
    pp.pprint(list(url))

    data = [{
	u'fields': {
	  u'accepted_count': -1,
	  u'addr_filter': None,
	  u'concurrent_scanning': False,
	  u'devclass_filter': None,
	  u'dongle_name': u'Test Dongle',
	  u'enabled': True,
	  u'end': None,
	  u'fixed_channel': None,
	  u'name': u'Test Campaign',
	  u'name_filter': u'Test Name',
	  u'pin_code': u'test',
	  u'rejected_count': 2,
	  u'rejected_timeout': -1,
	  u'rssi_max': None,
	  u'rssi_min': None,
	  u'service': 0,
	  u'start': None,
	  u'tries_count': -1,
	  u'tries_timeout': 0,
	  u'upload_on_discovered': False
	},
	u'model': u'openproximity.marketingcampaign',
	u'pk': 1
    }]
    
    print "creating campaign"
    data=json.dumps(data)
    data = json.loads(rest.post(url, klass, data))
    pp.pprint(data)
    print "created"
    
    print "editing campaign"
    data[0][u'fields'][u'name']=u'Test 2'
    pk=data[0]['pk']
    data=json.dumps(data)
    data = rest.put(url, klass, pk, data)
    data=json.loads(data)
    pp.pprint(data)

    print "deleting campaign"
    pp.pprint(delete(url, pk))
Exemple #4
0
def test(url):
    print "registered campaigns"
    pp = pprint.PrettyPrinter(indent=4)
    pp.pprint(list(url))

    data = [{
        u'fields': {
            u'accepted_count': -1,
            u'addr_filter': None,
            u'concurrent_scanning': False,
            u'devclass_filter': None,
            u'dongle_name': u'Test Dongle',
            u'enabled': True,
            u'end': None,
            u'fixed_channel': None,
            u'name': u'Test Campaign',
            u'name_filter': u'Test Name',
            u'pin_code': u'test',
            u'rejected_count': 2,
            u'rejected_timeout': -1,
            u'rssi_max': None,
            u'rssi_min': None,
            u'service': 0,
            u'start': None,
            u'tries_count': -1,
            u'tries_timeout': 0,
            u'upload_on_discovered': False
        },
        u'model': u'openproximity.marketingcampaign',
        u'pk': 1
    }]

    print "creating campaign"
    data = json.dumps(data)
    data = json.loads(rest.post(url, klass, data))
    pp.pprint(data)
    print "created"

    print "editing campaign"
    data[0][u'fields'][u'name'] = u'Test 2'
    pk = data[0]['pk']
    data = json.dumps(data)
    data = rest.put(url, klass, pk, data)
    data = json.loads(data)
    pp.pprint(data)

    print "deleting campaign"
    pp.pprint(delete(url, pk))
Exemple #5
0
def post(url, campaign, chance, data, *args, **kwargs):
    b=( 
	('file', open(data, 'rb')),
	('campaign', campaign),
	('chance', chance),
    )

    datagen, headers = multipart_encode(b)

    return json.loads(
	rest.post(
	    url=url, 
	    klass=klass, 
	    data=''.join(datagen),
	    headers=headers
	)
   )
def setup_cloud(wait_for_cloud_ready=True, config_file=None):

    if suite_vars.skip_cloud_config:
        logger.info(
            "Skipping cloud config as skip_cloud_config is set to True")
        return
    setup_tb_configuration(pre=True)
    config = get_config()
    ctrl_clouds = config.testbed[config.site_name].cloud
    if config_file:
        config_clouds = get_parsed_json_cloud(config_file)
        if ctrl_clouds:
            ctrl_clouds.append(config_clouds)
        else:
            ctrl_clouds = config_clouds
    if ctrl_clouds:
        for cloud in ctrl_clouds:
            logger.debug('cloud data %s' % cloud)
            name = cloud['name']
            logger.info("Setting Cloud: %s" % name)
            logger.debug("Setting Cloud with %s" % cloud)
            vtype = cloud['vtype']
            if vtype == 'CLOUD_AWS':
                config = get_config()
                tb_name = config.testbed[config.get_mode(key='site_name')].name
                cloud['custom_tags'] = [{
                    'tag_key': 'avitest_tb_tag',
                    'tag_val': tb_name
                }]
            try:
                status_code, data = put('cloud',
                                        name=name,
                                        data=json.dumps(cloud),
                                        check_status_code=False)
            except:
                status_code, data = post('cloud', data=json.dumps(cloud))
            logger.debug("Received for cloud create: %s" % status_code)

            if cloud['vtype'] == "CLOUD_VCENTER":
                setup_vcenter_cloud_mgmt_network(cloud)

    if wait_for_cloud_ready and ctrl_clouds:
        check_cloud_state(clouds=ctrl_clouds)
    setup_tb_configuration()
 def postResponse(self, reqURL, data):
     '''
     method calling REST POST request
     :param reqURL: REST resource url
     :type reqURL: string
     :param data: data body for the request
     :type data: JSON format
     :return: dictionary containing returnCode and buffer
     :rtype: dictionary
     '''
     if self.verbose:
         print 'Req URL: ', reqURL
     res = rest.post(self.switch_ip, reqURL, data, self.verbose)
     if isinstance(res, urllib2.URLError):
         return (555, res.reason)
     else:
         try:
             return (res["response"].status, res["data"])
         except:
             return (res["response"].status, res["response"].reason)
Exemple #8
0
 def postResponse(self, reqURL, data):
     '''
     method calling REST POST request
     :param reqURL: REST resource url
     :type reqURL: string
     :param data: data body for the request
     :type data: JSON format
     :return: dictionary containing returnCode and buffer
     :rtype: dictionary
     '''
     if self.verbose:
         print 'Req URL: ', reqURL
     res = rest.post(self.switch_ip, reqURL, data, self.verbose)
     if isinstance(res, urllib2.URLError):
         return (555, res.reason)
     else:
         try:
             return (res["response"].status, res["data"])
         except:
             return (res["response"].status, res["response"].reason)
import csv
import rest


def get_con_data(key, row):
	con_data = {}
	for i in range(len(key)):
		con_data[key[i]] = row[i]
	return con_data


count = 0
with open('data/constellation_names.csv') as f:
	reader = csv.reader(f)
	key = next(reader)
	for row in reader:
		con_data = get_con_data(key, row)
		print(con_data)
		rest.post('/constellations', con_data)
		count+=1

print('Constellation Count: {}'.format(count))
Exemple #10
0
 def create_rule(self, name, conditions, actions):
     return int(post(self.baseurl + "/rules", name=name, conditions=conditions, actions=actions)["id"])
Exemple #11
0
def post(url, data, *args, **kwargs):
    data = json.dumps(eval(file(data).read()))
    data, url = rest.post(url, klass, data)
    return json.loads(data), url
Exemple #12
0
 def create_group(self, name, light_ids):
     return post(self.baseurl + "/groups", name=name, lights=[str(i) for i in light_ids])
Exemple #13
0
 def create(self, **data):
     return post(self.baseurl + "/sensors", **data)
def post(url, data, *args, **kwargs):
    data=json.dumps(eval(file(data).read()))
    data, url = rest.post(url, klass, data)
    return json.loads(data), url
Exemple #15
0
import csv
import rest


def get_con_data(key, row):
    con_data = {}
    for i in range(len(key)):
        con_data[key[i]] = row[i]
    return con_data


count = 0
with open('data/constellation_names.csv') as f:
    reader = csv.reader(f)
    key = next(reader)
    for row in reader:
        con_data = get_con_data(key, row)
        print(con_data)
        rest.post('/constellations', con_data)
        count += 1

print('Constellation Count: {}'.format(count))
Exemple #16
0
 def ping(self, dateTime, pilotBeaconId, power, chronoId):
   "This adds a Ping"
   data = {'dateTime': formatDatetime(dateTime), 'power': str(power)}
   url = self.restApiUrl + '/create?chronoId=' + str(chronoId) + '&beaconId=' + str(pilotBeaconId)
   response = post(data, url)
   return response
Exemple #17
0
def create_rule(API, name, conditions, actions):
    return int(post(API + "/rules", name=name, conditions=conditions, actions=actions)["id"])
Exemple #18
0
import csv
import rest

MAX_MAGNITUDE = 7

def get_star_data(key, row):
	star_data = {}
	for i in range(len(key)):
		star_data[key[i]] = row[i]
	return star_data


count = 0
with open('data/hygdata_v3.csv') as f:
	reader = csv.reader(f)
	key = next(reader)
	for row in reader:
		star_data = get_star_data(key, row)
		if float(star_data['mag']) <= MAX_MAGNITUDE:
			rest.post('/stars', star_data)
			count+=1

print('Star Count: {}'.format(count))