diff --git a/SoftLayer/CLI/order/place.py b/SoftLayer/CLI/order/place.py index f042e2517..1e21e544a 100644 --- a/SoftLayer/CLI/order/place.py +++ b/SoftLayer/CLI/order/place.py @@ -88,7 +88,7 @@ def cli(env, package_keyname, location, preset, verify, billing, complex_type, if verify: table = formatting.Table(COLUMNS) order_to_place = manager.verify_order(*args, **kwargs) - for price in order_to_place['prices']: + for price in order_to_place['orderContainers'][0]['prices']: cost_key = 'hourlyRecurringFee' if billing == 'hourly' else 'recurringFee' table.add_row([ price['item']['keyName'], diff --git a/SoftLayer/managers/ordering.py b/SoftLayer/managers/ordering.py index 58860627b..b4988488d 100644 --- a/SoftLayer/managers/ordering.py +++ b/SoftLayer/managers/ordering.py @@ -445,6 +445,7 @@ def generate_order(self, package_keyname, location, item_keynames, complex_type= :param int quantity: The number of resources to order """ + container = {} order = {} extras = extras or {} @@ -470,7 +471,10 @@ def generate_order(self, package_keyname, location, item_keynames, complex_type= price_ids = self.get_price_id_list(package_keyname, item_keynames) order['prices'] = [{'id': price_id} for price_id in price_ids] - return order + + container['orderContainers'] = [order] + + return container def package_locations(self, package_keyname): """List datacenter locations for a package keyname diff --git a/tests/CLI/modules/order_tests.py b/tests/CLI/modules/order_tests.py index cde0abc31..a5eb58b77 100644 --- a/tests/CLI/modules/order_tests.py +++ b/tests/CLI/modules/order_tests.py @@ -133,7 +133,7 @@ def test_verify_hourly(self): self.assert_called_with('SoftLayer_Product_Order', 'verifyOrder') expected_results = [] - for price in order['prices']: + for price in order['orderContainers'][0]['prices']: expected_results.append({'keyName': price['item']['keyName'], 'description': price['item']['description'], 'cost': price['hourlyRecurringFee']}) @@ -160,7 +160,7 @@ def test_verify_monthly(self): self.assert_called_with('SoftLayer_Product_Order', 'verifyOrder') expected_results = [] - for price in order['prices']: + for price in order['orderContainers'][0]['prices']: expected_results.append({'keyName': price['item']['keyName'], 'description': price['item']['description'], 'cost': price['recurringFee']}) @@ -222,4 +222,4 @@ def _get_verified_order_return(self): 'recurringFee': '120'} price2 = {'item': item2, 'hourlyRecurringFee': '0.05', 'recurringFee': '150'} - return {'prices': [price1, price2]} + return {'orderContainers': [{'prices': [price1, price2]}]} diff --git a/tests/managers/ordering_tests.py b/tests/managers/ordering_tests.py index c27a9ce71..8836ca0aa 100644 --- a/tests/managers/ordering_tests.py +++ b/tests/managers/ordering_tests.py @@ -321,13 +321,15 @@ def test_generate_order_with_preset(self): complex_type = 'SoftLayer_Container_Foo' items = ['ITEM1', 'ITEM2'] preset = 'PRESET_KEYNAME' - expected_order = {'complexType': 'SoftLayer_Container_Foo', - 'location': 1854895, - 'packageId': 1234, - 'presetId': 5678, - 'prices': [{'id': 1111}, {'id': 2222}], - 'quantity': 1, - 'useHourlyPricing': True} + expected_order = {'orderContainers': [ + {'complexType': 'SoftLayer_Container_Foo', + 'location': 1854895, + 'packageId': 1234, + 'presetId': 5678, + 'prices': [{'id': 1111}, {'id': 2222}], + 'quantity': 1, + 'useHourlyPricing': True} + ]} mock_pkg, mock_preset, mock_get_ids = self._patch_for_generate() @@ -342,12 +344,14 @@ def test_generate_order(self): pkg = 'PACKAGE_KEYNAME' items = ['ITEM1', 'ITEM2'] complex_type = 'My_Type' - expected_order = {'complexType': 'My_Type', - 'location': 1854895, - 'packageId': 1234, - 'prices': [{'id': 1111}, {'id': 2222}], - 'quantity': 1, - 'useHourlyPricing': True} + expected_order = {'orderContainers': [ + {'complexType': 'My_Type', + 'location': 1854895, + 'packageId': 1234, + 'prices': [{'id': 1111}, {'id': 2222}], + 'quantity': 1, + 'useHourlyPricing': True} + ]} mock_pkg, mock_preset, mock_get_ids = self._patch_for_generate()