Changeset 8e6fe4d for fedd/federation/remote_service.py
- Timestamp:
- Mar 5, 2010 4:58:48 AM (14 years ago)
- Branches:
- axis_example, compt_changes, info-ops, master, version-3.01, version-3.02
- Children:
- c5b28bf
- Parents:
- 444790d
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
fedd/federation/remote_service.py
r444790d r8e6fe4d 298 298 self.tracefile = tracefile 299 299 self.__call__ = self.call_service 300 self.max_retries = 5 300 301 301 302 def serialize_soap(self, req): … … 343 344 port = ServerProxy(url, transport=transport) 344 345 # Make the call, and convert faults back to service_errors 345 try: 346 remote_method = getattr(port, self.service_name, None) 347 if self.request_body_name: 348 resp = remote_method(self.apply_to_tags(\ 349 { self.request_body_name: r}, self.encap_fedids)) 350 else: 351 resp = remote_method(self.apply_to_tags(r, self.encap_fedids)) 352 except socket_error, e: 353 raise service_error(service_error.connect, 354 "Cannot connect to %s: %s" % (url, e[1])) 355 except SSLError, e: 356 raise service_error(service_error.connect, 357 "SSL error contacting %s: %s" % (url, e.message)) 358 except Fault, f: 359 raise service_error(f.faultCode, f.faultString) 360 except Error, e: 361 raise service_error(service_error.protocol, 362 "Remote XMLRPC Fault: %s" % e) 346 if self.request_body_name: 347 r = self.apply_to_tags(\ 348 { self.request_body_name: r}, self.encap_fedids) 349 else: 350 r = self.apply_to_tags(r, self.encap_fedids) 351 352 ok = False 353 retries = 0 354 355 while not ok and retries < self.max_retries: 356 try: 357 remote_method = getattr(port, self.service_name, None) 358 resp = remote_method(r) 359 except socket_error, e: 360 raise service_error(service_error.connect, 361 "Cannot connect to %s: %s" % (url, e[1])) 362 except SSLError, e: 363 print "SSL error contacting %s: %s" % (url, e.message) 364 retries += 1 365 except Fault, f: 366 raise service_error(f.faultCode, f.faultString) 367 except Error, e: 368 raise service_error(service_error.protocol, 369 "Remote XMLRPC Fault: %s" % e) 370 371 if retries > self.max_retries : 372 raise service_error(req.connect, "Too many SSL failures") 363 373 364 374 return self.apply_to_tags(resp, self.decap_fedids) … … 413 423 self.request_body_name) 414 424 set_element(self.pack_soap(msg, self.request_body_name, req)) 415 try: 416 resp = remote_method(msg) 417 except socket_error, e: 418 raise service_error(service_error.connect, 419 "Cannot connect to %s: %s" % (url, e[1])) 420 except SSLError, e: 421 raise service_error(service_error.connect, 422 "SSL error contacting %s: %s" % (url, e.message)) 423 except ParseException, e: 424 raise service_error(service_error.protocol, 425 "Bad format message (XMLRPC??): %s" % e) 426 except FaultException, e: 427 ee = self.unpack_soap(e.fault.detail[0]).get('FeddFaultBody', { }) 428 if ee: 429 raise service_error(ee['code'], ee['desc']) 430 else: 431 raise service_error(service_error.internal, 432 "Unexpected fault body") 425 ok = False 426 retries = 0 427 while not ok and retries < self.max_retries: 428 try: 429 resp = remote_method(msg) 430 ok = True 431 except socket_error, e: 432 raise service_error(service_error.connect, 433 "Cannot connect to %s: %s" % (url, e[1])) 434 except SSLError, e: 435 print "SSL error contacting %s: %s" % (url, e.message) 436 retries += 1 437 except ParseException, e: 438 raise service_error(service_error.protocol, 439 "Bad format message (XMLRPC??): %s" % e) 440 except FaultException, e: 441 ee = self.unpack_soap(e.fault.detail[0]).get('FeddFaultBody', 442 { }) 443 if ee: 444 raise service_error(ee['code'], ee['desc']) 445 else: 446 raise service_error(service_error.internal, 447 "Unexpected fault body") 448 449 if retries > self.max_retries : 450 raise service_error(req.connect, "Too many SSL failures") 451 433 452 # Unpack and convert fedids to objects 434 453 r = self.apply_to_tags(self.unpack_soap(resp), self.fedid_to_object) 454 435 455 # Make sure all strings are unicode 436 456 r = self.make_unicode(r)
Note: See TracChangeset
for help on using the changeset viewer.