Skip to content

Commit 6ef39db

Browse files
committed
Add getting package by key for use in hardware manager
1 parent ee66567 commit 6ef39db

File tree

2 files changed

+27
-5
lines changed

2 files changed

+27
-5
lines changed

SoftLayer/managers/hardware.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -411,13 +411,13 @@ def _get_package(self):
411411
regions[location[location[priceGroups]]]
412412
'''
413413

414-
package_type = 'BARE_METAL_CPU_FAST_PROVISION'
415-
packages = self.ordering_manager.get_packages_of_type([package_type],
416-
mask=mask)
417-
if len(packages) != 1:
414+
package_keyname = 'BARE_METAL_SERVER'
415+
package = self.ordering_manager.get_package_by_key(package_keyname,
416+
mask=mask)
417+
if package is None:
418418
raise SoftLayer.SoftLayerError("Ordering package not found")
419419

420-
return packages[0]
420+
return package
421421

422422
def _generate_create_dict(self,
423423
size=None,

SoftLayer/managers/ordering.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,3 +199,25 @@ def order_quote(self, quote_id, extra, quantity=1):
199199
container = self.generate_order_template(quote_id, extra,
200200
quantity=quantity)
201201
return self.client['Product_Order'].placeOrder(container)
202+
203+
def get_package_by_key(self, package_keyname, mask=None):
204+
"""Get a single package with a given key.
205+
206+
If no packages are found, returns None
207+
208+
:param package_keyname string representing the package key name
209+
we are interested in.
210+
:param string mask: Mask to specify the properties we want to retrieve
211+
"""
212+
package_service = self.client['Product_Package']
213+
_filter = {
214+
'keyName': {
215+
'operation': package_keyname,
216+
},
217+
}
218+
219+
packages = package_service.getAllObjects(mask=mask, filter=_filter)
220+
if len(packages) == 0:
221+
return None
222+
else:
223+
return packages.pop()

0 commit comments

Comments
 (0)