From 75a7fc01d3dd6932b34e20274b97663eca74ef89 Mon Sep 17 00:00:00 2001 From: Sergio Carlos Morales Angeles Date: Wed, 21 Mar 2018 17:36:39 -0500 Subject: [PATCH] Allow ordering of account restricted presets --- .../fixtures/SoftLayer_Product_Package.py | 28 +++++++++++++------ SoftLayer/managers/hardware.py | 5 ++-- tests/CLI/modules/server_tests.py | 4 ++- tests/managers/hardware_tests.py | 14 +++++++--- 4 files changed, 36 insertions(+), 15 deletions(-) diff --git a/SoftLayer/fixtures/SoftLayer_Product_Package.py b/SoftLayer/fixtures/SoftLayer_Product_Package.py index 4b01ef423..9b891582d 100644 --- a/SoftLayer/fixtures/SoftLayer_Product_Package.py +++ b/SoftLayer/fixtures/SoftLayer_Product_Package.py @@ -666,15 +666,27 @@ ] } +activePreset1 = { + 'description': 'Single Xeon 1270, 8GB Ram, 2x1TB SATA disks, Non-RAID', + 'id': 64, + 'isActive': '1', + 'keyName': 'S1270_8GB_2X1TBSATA_NORAID', + 'name': 'S1270 8GB 2X1TBSATA NORAID', + 'packageId': 200 +} + +activePreset2 = { + 'description': 'Dual Xeon Gold, 384GB Ram, 4x960GB SSD, RAID 10', + 'id': 65, + 'isActive': '1', + 'keyName': 'DGOLD_6140_384GB_4X960GB_SSD_SED_RAID_10', + 'name': 'DGOLD 6140 384GB 4X960GB SSD SED RAID 10', + 'packageId': 200 +} + getAllObjects = [{ - 'activePresets': [{ - 'description': 'Single Xeon 1270, 8GB Ram, 2x1TB SATA disks, Non-RAID', - 'id': 64, - 'isActive': '1', - 'keyName': 'S1270_8GB_2X1TBSATA_NORAID', - 'name': 'S1270 8GB 2X1TBSATA NORAID', - 'packageId': 200 - }], + 'activePresets': [activePreset1], + 'accountRestrictedActivePresets': [activePreset2], 'description': 'Bare Metal Server', 'firstOrderStepId': 1, 'id': 200, diff --git a/SoftLayer/managers/hardware.py b/SoftLayer/managers/hardware.py index 02f67f746..70f2bfd9c 100644 --- a/SoftLayer/managers/hardware.py +++ b/SoftLayer/managers/hardware.py @@ -359,7 +359,7 @@ def get_create_options(self): # Sizes sizes = [] - for preset in package['activePresets']: + for preset in package['activePresets'] + package['accountRestrictedActivePresets']: sizes.append({ 'name': preset['description'], 'key': preset['keyName'] @@ -418,6 +418,7 @@ def _get_package(self): prices ], activePresets, + accountRestrictedActivePresets, regions[location[location[priceGroups]]] ''' @@ -774,7 +775,7 @@ def _get_location(package, location): def _get_preset_id(package, size): """Get the preset id given the keyName of the preset.""" - for preset in package['activePresets']: + for preset in package['activePresets'] + package['accountRestrictedActivePresets']: if preset['keyName'] == size or preset['id'] == size: return preset['id'] diff --git a/tests/CLI/modules/server_tests.py b/tests/CLI/modules/server_tests.py index 5f8c85d31..a97f20e0a 100644 --- a/tests/CLI/modules/server_tests.py +++ b/tests/CLI/modules/server_tests.py @@ -264,7 +264,9 @@ def test_create_options(self): expected = [ [{'datacenter': 'Washington 1', 'value': 'wdc01'}], [{'size': 'Single Xeon 1270, 8GB Ram, 2x1TB SATA disks, Non-RAID', - 'value': 'S1270_8GB_2X1TBSATA_NORAID'}], + 'value': 'S1270_8GB_2X1TBSATA_NORAID'}, + {'size': 'Dual Xeon Gold, 384GB Ram, 4x960GB SSD, RAID 10', + 'value': 'DGOLD_6140_384GB_4X960GB_SSD_SED_RAID_10'}], [{'operating_system': 'Ubuntu / 14.04-64', 'value': 'UBUNTU_14_64'}], [{'port_speed': '10 Mbps Public & Private Network Uplinks', diff --git a/tests/managers/hardware_tests.py b/tests/managers/hardware_tests.py index d9d432be8..ae62bdc81 100644 --- a/tests/managers/hardware_tests.py +++ b/tests/managers/hardware_tests.py @@ -126,10 +126,16 @@ def test_get_create_options(self): 'key': '10', 'name': '10 Mbps Public & Private Network Uplinks' }], - 'sizes': [{ - 'key': 'S1270_8GB_2X1TBSATA_NORAID', - 'name': 'Single Xeon 1270, 8GB Ram, 2x1TB SATA disks, Non-RAID' - }] + 'sizes': [ + { + 'key': 'S1270_8GB_2X1TBSATA_NORAID', + 'name': 'Single Xeon 1270, 8GB Ram, 2x1TB SATA disks, Non-RAID' + }, + { + 'key': 'DGOLD_6140_384GB_4X960GB_SSD_SED_RAID_10', + 'name': 'Dual Xeon Gold, 384GB Ram, 4x960GB SSD, RAID 10' + } + ] } self.assertEqual(options, expected)