comparison service/tomatoWifi/wifi.py @ 52:875a37be1228

fix fetch calls in tomatowifi Ignore-this: 7b9a676be589b2400a18a16b1d194343
author drewp@bigasterisk.com
date Mon, 31 Dec 2012 17:53:42 -0800
parents d2842eedd56d
children f8cc3d1baa85
comparison
equal deleted inserted replaced
51:d2842eedd56d 52:875a37be1228
42 name = url 42 name = url
43 for k, v in repl.items(): 43 for k, v in repl.items():
44 url = url.replace(k, v) 44 url = url.replace(k, v)
45 45
46 r = Router() 46 r = Router()
47 r.url = url.replace('root:admin@', '') 47 http, tail = url.split('//', 1)
48 r.headers = {'Authorization': ['Basic cm9vdDphZG1pbg==']} 48 userPass, tail = tail.split("@", 1)
49 r.url = http + '//' + tail
50 r.headers = {'Authorization': ['Basic %s' % userPass.encode('base64').strip()]}
49 r.name = {'tomato1' : 'bigasterisk3', 51 r.name = {'tomato1' : 'bigasterisk3',
50 'tomato2' : 'bigasterisk4'}[name.split('/')[1]] 52 'tomato2' : 'bigasterisk4'}[name.split('/')[1]]
51 self.routers.append(r) 53 self.routers.append(r)
52 54
53 @inlineCallbacks 55 @inlineCallbacks
56 byMac = {} # mac : [ip] 58 byMac = {} # mac : [ip]
57 59
58 for router in self.routers: 60 for router in self.routers:
59 log.debug("GET %s", router) 61 log.debug("GET %s", router)
60 try: 62 try:
61 data = yield fetch(router.url, headers=router.headers, 63 resp = yield fetch(router.url, headers=router.headers,
62 timeout=2) 64 timeout=2)
63 except socket.error: 65 except socket.error:
64 log.warn("get on %s failed" % router) 66 log.warn("get on %s failed" % router)
65 continue 67 continue
68 data = resp.body
66 69
67 for (ip, mac, iface) in jsValue(data, 'arplist'): 70 for (ip, mac, iface) in jsValue(data, 'arplist'):
68 aboutIp.setdefault(ip, {}).update(dict( 71 aboutIp.setdefault(ip, {}).update(dict(
69 ip=ip, 72 ip=ip,
70 router=router.name, 73 router=router.name,