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)
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))
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))
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)
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))
def create_rule(self, name, conditions, actions): return int(post(self.baseurl + "/rules", name=name, conditions=conditions, actions=actions)["id"])
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
def create_group(self, name, light_ids): return post(self.baseurl + "/groups", name=name, lights=[str(i) for i in light_ids])
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
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))
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
def create_rule(API, name, conditions, actions): return int(post(API + "/rules", name=name, conditions=conditions, actions=actions)["id"])
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))