From 13e6383e7e99bd83f725a69754b6402c24534cc8 Mon Sep 17 00:00:00 2001 From: Albert Camacho Date: Fri, 22 Jun 2018 15:28:57 -0400 Subject: [PATCH 1/3] Adding order into orderContainers, unittests were also updated, it should fix the issue 966. --- SoftLayer/managers/ordering.py | 6 +++++- tests/managers/ordering_tests.py | 30 +++++++++++++++++------------- 2 files changed, 22 insertions(+), 14 deletions(-) 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/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() From a14537e7a016719ea5e9105ce2accd53791d8093 Mon Sep 17 00:00:00 2001 From: Albert Camacho Date: Fri, 22 Jun 2018 16:00:28 -0400 Subject: [PATCH 2/3] Adding "orderContainers" in CLI module, the table should be printed as before when "verify" is set --- SoftLayer/CLI/order/place.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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'], From d7b66febb22aeee174a0d23b454ad63e345b7eb4 Mon Sep 17 00:00:00 2001 From: Albert Camacho Date: Fri, 22 Jun 2018 17:59:25 -0400 Subject: [PATCH 3/3] Updating the unittests for the CLI module, I added support for "orderContainers" parameter --- tests/CLI/modules/order_tests.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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]}]}