Skip to content

Commit 77b299f

Browse files
Merge pull request #986 from acamacho82/fix-issue-966
Fix issue 966 - order NETWORK_GATEWAY_APPLINCE with slcli but meet error Price does not have an id
2 parents c05f4a0 + d7b66fe commit 77b299f

File tree

4 files changed

+26
-18
lines changed

4 files changed

+26
-18
lines changed

SoftLayer/CLI/order/place.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ def cli(env, package_keyname, location, preset, verify, billing, complex_type,
8888
if verify:
8989
table = formatting.Table(COLUMNS)
9090
order_to_place = manager.verify_order(*args, **kwargs)
91-
for price in order_to_place['prices']:
91+
for price in order_to_place['orderContainers'][0]['prices']:
9292
cost_key = 'hourlyRecurringFee' if billing == 'hourly' else 'recurringFee'
9393
table.add_row([
9494
price['item']['keyName'],

SoftLayer/managers/ordering.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,7 @@ def generate_order(self, package_keyname, location, item_keynames, complex_type=
445445
:param int quantity: The number of resources to order
446446
447447
"""
448+
container = {}
448449
order = {}
449450
extras = extras or {}
450451

@@ -470,7 +471,10 @@ def generate_order(self, package_keyname, location, item_keynames, complex_type=
470471

471472
price_ids = self.get_price_id_list(package_keyname, item_keynames)
472473
order['prices'] = [{'id': price_id} for price_id in price_ids]
473-
return order
474+
475+
container['orderContainers'] = [order]
476+
477+
return container
474478

475479
def package_locations(self, package_keyname):
476480
"""List datacenter locations for a package keyname

tests/CLI/modules/order_tests.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ def test_verify_hourly(self):
133133
self.assert_called_with('SoftLayer_Product_Order', 'verifyOrder')
134134
expected_results = []
135135

136-
for price in order['prices']:
136+
for price in order['orderContainers'][0]['prices']:
137137
expected_results.append({'keyName': price['item']['keyName'],
138138
'description': price['item']['description'],
139139
'cost': price['hourlyRecurringFee']})
@@ -160,7 +160,7 @@ def test_verify_monthly(self):
160160
self.assert_called_with('SoftLayer_Product_Order', 'verifyOrder')
161161
expected_results = []
162162

163-
for price in order['prices']:
163+
for price in order['orderContainers'][0]['prices']:
164164
expected_results.append({'keyName': price['item']['keyName'],
165165
'description': price['item']['description'],
166166
'cost': price['recurringFee']})
@@ -222,4 +222,4 @@ def _get_verified_order_return(self):
222222
'recurringFee': '120'}
223223
price2 = {'item': item2, 'hourlyRecurringFee': '0.05',
224224
'recurringFee': '150'}
225-
return {'prices': [price1, price2]}
225+
return {'orderContainers': [{'prices': [price1, price2]}]}

tests/managers/ordering_tests.py

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -321,13 +321,15 @@ def test_generate_order_with_preset(self):
321321
complex_type = 'SoftLayer_Container_Foo'
322322
items = ['ITEM1', 'ITEM2']
323323
preset = 'PRESET_KEYNAME'
324-
expected_order = {'complexType': 'SoftLayer_Container_Foo',
325-
'location': 1854895,
326-
'packageId': 1234,
327-
'presetId': 5678,
328-
'prices': [{'id': 1111}, {'id': 2222}],
329-
'quantity': 1,
330-
'useHourlyPricing': True}
324+
expected_order = {'orderContainers': [
325+
{'complexType': 'SoftLayer_Container_Foo',
326+
'location': 1854895,
327+
'packageId': 1234,
328+
'presetId': 5678,
329+
'prices': [{'id': 1111}, {'id': 2222}],
330+
'quantity': 1,
331+
'useHourlyPricing': True}
332+
]}
331333

332334
mock_pkg, mock_preset, mock_get_ids = self._patch_for_generate()
333335

@@ -342,12 +344,14 @@ def test_generate_order(self):
342344
pkg = 'PACKAGE_KEYNAME'
343345
items = ['ITEM1', 'ITEM2']
344346
complex_type = 'My_Type'
345-
expected_order = {'complexType': 'My_Type',
346-
'location': 1854895,
347-
'packageId': 1234,
348-
'prices': [{'id': 1111}, {'id': 2222}],
349-
'quantity': 1,
350-
'useHourlyPricing': True}
347+
expected_order = {'orderContainers': [
348+
{'complexType': 'My_Type',
349+
'location': 1854895,
350+
'packageId': 1234,
351+
'prices': [{'id': 1111}, {'id': 2222}],
352+
'quantity': 1,
353+
'useHourlyPricing': True}
354+
]}
351355

352356
mock_pkg, mock_preset, mock_get_ids = self._patch_for_generate()
353357

0 commit comments

Comments
 (0)