@@ -45,18 +45,17 @@ def do_POST(self):
45
45
req .args = args [1 :]
46
46
req .filter = _item_by_key_postfix (headers , 'ObjectFilter' ) or None
47
47
req .mask = _item_by_key_postfix (headers , 'ObjectMask' ).get ('mask' )
48
- req .identifier = _item_by_key_postfix (headers ,
49
- 'InitParameters' ).get ('id' )
50
- req .transport_headers = dict (((k .lower (), v )
51
- for k , v in self .headers .items ()))
48
+ req .identifier = _item_by_key_postfix (headers , 'InitParameters' ).get ('id' )
49
+ req .transport_headers = dict (((k .lower (), v ) for k , v in self .headers .items ()))
52
50
req .headers = headers
53
51
54
52
# Get response
55
53
response = self .server .transport (req )
56
54
57
- response_body = xmlrpc .client .dumps ((response ,),
58
- allow_none = True ,
59
- methodresponse = True )
55
+ # Need to convert BACK to list, so xmlrpc can dump it out properly.
56
+ if isinstance (response , SoftLayer .transports .transport .SoftLayerListResult ):
57
+ response = list (response )
58
+ response_body = xmlrpc .client .dumps ((response ,), allow_none = True , methodresponse = True )
60
59
61
60
self .send_response (200 )
62
61
self .send_header ("Content-type" , "application/xml; charset=UTF-8" )
@@ -70,18 +69,14 @@ def do_POST(self):
70
69
self .send_response (200 )
71
70
self .end_headers ()
72
71
response = xmlrpc .client .Fault (404 , str (ex ))
73
- response_body = xmlrpc .client .dumps (response ,
74
- allow_none = True ,
75
- methodresponse = True )
72
+ response_body = xmlrpc .client .dumps (response , allow_none = True , methodresponse = True )
76
73
self .wfile .write (response_body .encode ('utf-8' ))
77
74
78
75
except SoftLayer .SoftLayerAPIError as ex :
79
76
self .send_response (200 )
80
77
self .end_headers ()
81
78
response = xmlrpc .client .Fault (ex .faultCode , str (ex .reason ))
82
- response_body = xmlrpc .client .dumps (response ,
83
- allow_none = True ,
84
- methodresponse = True )
79
+ response_body = xmlrpc .client .dumps (response , allow_none = True , methodresponse = True )
85
80
self .wfile .write (response_body .encode ('utf-8' ))
86
81
except Exception :
87
82
self .send_response (500 )
@@ -103,7 +98,6 @@ def _item_by_key_postfix(dictionary, key_prefix):
103
98
def create_test_server (transport , host = 'localhost' , port = 0 ):
104
99
"""Create a test XML-RPC server in a new thread."""
105
100
server = TestServer (transport , (host , port ), TestHandler )
106
- thread = threading .Thread (target = server .serve_forever ,
107
- kwargs = {'poll_interval' : 0.01 })
101
+ thread = threading .Thread (target = server .serve_forever , kwargs = {'poll_interval' : 0.01 })
108
102
thread .start ()
109
103
return server
0 commit comments