@@ -50,6 +50,11 @@ def run(self):
50
50
return [self .state_machine .reporter .warning (
51
51
"Could not find any field related to the action [%s]" % self .arguments [0 ]
52
52
)]
53
+ if isinstance (fields , str ):
54
+ return [self .state_machine .reporter .warning (
55
+ "Error while fetching fields related to the action [%s]: %s" % (
56
+ self .arguments [0 ], fields ))]
57
+
53
58
whitelist = set (self .options .get ('only' , '' ).split ())
54
59
return [nodes .field_list ('' , * (
55
60
nodes .field ('' ,
@@ -118,7 +123,14 @@ def _submit(result_queue, xid, view='form'):
118
123
launcher .start ()
119
124
120
125
def _launcher ():
121
- info = xmlrpclib .ServerProxy ('https://demo.odoo.com/start' ).start ()
126
+ try :
127
+ info = xmlrpclib .ServerProxy ('https://demo.odoo.com/start' ).start ()
128
+ except xmlrpclib .Fault , e :
129
+ threading .Thread (
130
+ target = _fault_requests ,
131
+ args = ["Demo start() failed: %s" % e .faultString ],
132
+ name = "fields_get login failed" ).start ()
133
+ return
122
134
url , db , username , password = \
123
135
info ['host' ], info ['database' ], info ['user' ], info ['password' ]
124
136
@@ -134,6 +146,12 @@ def _launcher():
134
146
'url' : '{}/xmlrpc/2/object' .format (url )
135
147
}, name = "fields_get fetcher thread %d/%d" % (i , FETCH_THREADS )).start ()
136
148
149
+ def _fault_requests (error ):
150
+ while True :
151
+ task = work_queue .get ()
152
+ task .result .put (error )
153
+ work_queue .task_done ()
154
+
137
155
def _fetch_fields (url , db , uid , password ):
138
156
server = xmlrpclib .ServerProxy (url )
139
157
while True :
0 commit comments