Skip to content

Commit 34f6daf

Browse files
#1602 initParams working
1 parent 955eacb commit 34f6daf

2 files changed

Lines changed: 34 additions & 0 deletions

File tree

SoftLayer/transports/soap.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,17 @@ def __call__(self, request):
102102
headers.append(xsdFilter(**request.filter))
103103

104104

105+
106+
if request.identifier:
107+
initParam = f"{request.service}InitParameters"
108+
initParamType = client.get_type(f"{{{self.soapNS}}}{initParam}")
109+
xsdInitParam = xsd.Element(
110+
f"{{{self.soapNS}}}{initParam}", initParamType
111+
)
112+
# Might want to check if its an id or globalIdentifier at some point, for now only id.
113+
headers.append(xsdInitParam(id=request.identifier))
114+
115+
# TODO Add params... maybe
105116
try:
106117
method = getattr(client.service, request.method)
107118
except AttributeError as ex:

tests/transports/soap_tests.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,4 +92,27 @@ def test_objectFilter(self):
9292

9393
self.assertEqual(package.get('type').get('keyName'), "BARE_METAL_CPU")
9494

95+
def test_virtualGuest(self):
96+
accountRequest = Request()
97+
accountRequest.service = "SoftLayer_Account"
98+
accountRequest.method = "getVirtualGuests"
99+
accountRequest.limit = 5
100+
accountRequest.offset = 0
101+
accountRequest.mask = "mask[id,hostname,domain]"
102+
accountRequest.transport_user = self.user
103+
accountRequest.transport_password = self.password
104+
105+
vsis = self.transport(accountRequest)
106+
for vsi in vsis:
107+
self.assertGreater(vsi.get('id'), 1)
108+
vsiRequest = Request()
109+
vsiRequest.service = "SoftLayer_Virtual_Guest"
110+
vsiRequest.method = "getObject"
111+
vsiRequest.identifier = vsi.get('id')
112+
vsiRequest.mask = "mask[id,hostname,domain]"
113+
vsiRequest.transport_user = self.user
114+
vsiRequest.transport_password = self.password
115+
thisVsi = self.transport(vsiRequest)
116+
self.assertEqual(thisVsi.get('id'), vsi.get('id'))
117+
95118
## TODO MORE COMPLEX OBJECT FILTERS!

0 commit comments

Comments
 (0)