Mercurial > code > home > repos > homeauto
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, |