Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(954)

Side by Side Diff: server/site_wlan_connect.py

Issue 2746010: Proper handling of org.chromium.flimflam.Error.InProgress, dbus exception (Closed) Base URL: ssh://gitrw.chromium.org/autotest.git
Patch Set: Change the sleep during "in progress" errors Created 10 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 import dbus, dbus.mainloop.glib, gobject, logging, re, sys, time, subprocess 1 import dbus, dbus.mainloop.glib, gobject, logging, re, sys, time, subprocess
2 2
3 ssid = sys.argv[1] 3 ssid = sys.argv[1]
4 security = sys.argv[2] 4 security = sys.argv[2]
5 psk = sys.argv[3] 5 psk = sys.argv[3]
6 assoc_timeout = float(sys.argv[4]) 6 assoc_timeout = float(sys.argv[4])
7 config_timeout = float(sys.argv[5]) 7 config_timeout = float(sys.argv[5])
8 reset_timeout = float(sys.argv[6]) if len(sys.argv) > 6 else assoc_timeout 8 reset_timeout = float(sys.argv[6]) if len(sys.argv) > 6 else assoc_timeout
9 9
10 bus_loop = dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) 10 bus_loop = dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
(...skipping 15 matching lines...) Expand all
26 "org.chromium.flimflam.Service") 26 "org.chromium.flimflam.Service")
27 except Exception, e: 27 except Exception, e:
28 print "FAIL(GetService): ssid %s exception %s" %(ssid, e) 28 print "FAIL(GetService): ssid %s exception %s" %(ssid, e)
29 sys.exit(1) 29 sys.exit(1)
30 30
31 return (path, service) 31 return (path, service)
32 32
33 33
34 def ParseProps(props): 34 def ParseProps(props):
35 proplist = [] 35 proplist = []
36 for p in props: 36 if props is not None:
37 proplist.append("'%s': '%s'" % (str(p), str(props[p]))) 37 for p in props:
38 return '{ %s }' % ', '.join(proplist) 38 proplist.append("'%s': '%s'" % (str(p), str(props[p])))
39 return '{ %s }' % ', '.join(proplist)
40 else:
41 return 'None'
39 42
40 43
41 def ResetService(init_state): 44 def ResetService(init_state):
42 wait_time = 0 45 wait_time = 0
43 46
44 if init_state == 'idle': 47 if init_state == 'idle':
45 # If we are already idle, we have nothing to do 48 # If we are already idle, we have nothing to do
46 return 49 return
47 if init_state == 'ready': 50 if init_state == 'ready':
48 # flimflam is already connected. Disconnect. 51 # flimflam is already connected. Disconnect.
(...skipping 29 matching lines...) Expand all
78 connect_quirks['lost_dbus'] = 1 81 connect_quirks['lost_dbus'] = 1
79 print>>sys.stderr, "We just lost the service handle!" 82 print>>sys.stderr, "We just lost the service handle!"
80 return (None, 'DBUSFAIL') 83 return (None, 'DBUSFAIL')
81 84
82 ResetService(init_state) 85 ResetService(init_state)
83 86
84 # print "INIT_STATUS1: %s" % service.GetProperties().get("State", None) 87 # print "INIT_STATUS1: %s" % service.GetProperties().get("State", None)
85 88
86 try: 89 try:
87 service.Connect() 90 service.Connect()
88 except org.chromium.flimflam.Error.InProgress, e: 91 except dbus.exceptions.DBusException, e:
89 # We can hope that a ResetService in the next call will solve this 92 if e.get_dbus_name() == 'org.chromium.flimflam.Error.InProgress':
90 connect_quirks['in_progress'] = 1 93 # We can hope that a ResetService in the next call will solve this
91 print>>sys.stderr, "Previous connect is still in progress!" 94 connect_quirks['in_progress'] = 1
92 time.sleep(.5) 95 print>>sys.stderr, "Previous connect is still in progress!"
93 return (None, 'FAIL') 96 time.sleep(5)
Sam Leffler 2010/06/11 22:11:01 These arbitrary sleeps will skew results. But I g
97 return (None, 'FAIL')
98 # What is this exception?
99 print "FAIL(Connect): ssid %s DBus exception %s" %(ssid, e)
100 sys.exit(2)
94 except Exception, e: 101 except Exception, e:
95 print "FAIL(Connect): ssid %s exception %s" %(ssid, e) 102 print "FAIL(Connect): ssid %s exception %s" %(ssid, e)
96 sys.exit(2) 103 sys.exit(2)
97 104
98 properties = None 105 properties = None
99 # wait up to assoc_timeout seconds to associate 106 # wait up to assoc_timeout seconds to associate
100 while assoc_time < assoc_timeout: 107 while assoc_time < assoc_timeout:
101 properties = service.GetProperties() 108 properties = service.GetProperties()
102 status = properties.get("State", None) 109 status = properties.get("State", None)
103 # print>>sys.stderr, "time %3.1f state %s" % (assoc_time, status) 110 # print>>sys.stderr, "time %3.1f state %s" % (assoc_time, status)
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 if config_time >= config_timeout: 198 if config_time >= config_timeout:
192 print "TIMEOUT(config): ssid %s assoc %3.1f config %3.1f secs" \ 199 print "TIMEOUT(config): ssid %s assoc %3.1f config %3.1f secs" \
193 %(ssid, assoc_time, config_time) 200 %(ssid, assoc_time, config_time)
194 DumpLogs(logs) 201 DumpLogs(logs)
195 sys.exit(6) 202 sys.exit(6)
196 203
197 print "OK %3.1f %3.1f %s (assoc and config times in sec, quirks)" \ 204 print "OK %3.1f %3.1f %s (assoc and config times in sec, quirks)" \
198 %(assoc_time, config_time, str(connect_quirks.keys())) 205 %(assoc_time, config_time, str(connect_quirks.keys()))
199 sys.exit(0) 206 sys.exit(0)
200 207
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698