From eae491de61e6e70b3741fe0b892c2f416685dd52 Mon Sep 17 00:00:00 2001 From: Anthony Monthe Date: Thu, 17 Aug 2017 15:24:21 +0100 Subject: [PATCH] Allow `hardware.place_order` with size ID (and name) --- SoftLayer/managers/hardware.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/SoftLayer/managers/hardware.py b/SoftLayer/managers/hardware.py index e137ee6f3..edbc25f5c 100644 --- a/SoftLayer/managers/hardware.py +++ b/SoftLayer/managers/hardware.py @@ -290,7 +290,7 @@ def place_order(self, **kwargs): See get_create_options() for valid arguments. - :param string size: server size name + :param string size: server size name or presetId :param string hostname: server hostname :param string domain: server domain name :param string location: location (datacenter) name @@ -467,13 +467,18 @@ def _generate_create_dict(self, 'hostname': hostname, 'domain': domain, } - + try: + size = _get_preset_id(package, size) + except SoftLayer.SoftLayerError as err: + if not err.message.startswith('Could not find valid size for'): + raise + size = size order = { 'hardware': [hardware], 'location': location['keyname'], 'prices': [{'id': price} for price in prices], 'packageId': package['id'], - 'presetId': _get_preset_id(package, size), + 'presetId': size, 'useHourlyPricing': hourly, }