Skip to content

Commit 5576b39

Browse files
author
Fernando Ojeda
committed
Fixed the vs upgrade with flavor data
1 parent e4adae5 commit 5576b39

File tree

5 files changed

+11
-45
lines changed

5 files changed

+11
-45
lines changed

SoftLayer/fixtures/SoftLayer_Product_Package.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1367,3 +1367,5 @@
13671367
"packageId": 835
13681368
}
13691369
]
1370+
1371+
getAccountRestrictedActivePresets = []

SoftLayer/fixtures/SoftLayer_Virtual_Guest.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515
{'nextInvoiceTotalRecurringAmount': 1},
1616
],
1717
'package': {
18-
"id": 835
18+
"id": 835,
19+
"keyName": "PUBLIC_CLOUD_SERVER"
1920
},
2021
'orderItem': {
2122
'order': {

SoftLayer/managers/vs.py

Lines changed: 5 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ def get_instance(self, instance_id, **kwargs):
227227
'hourlyBillingFlag,'
228228
'userData,'
229229
'''billingItem[id,nextInvoiceTotalRecurringAmount,
230-
package['id'],
230+
package[id,keyName],
231231
children[categoryCode,nextInvoiceTotalRecurringAmount],
232232
orderItem[id,
233233
order.userRecord[username],
@@ -834,13 +834,11 @@ def upgrade(self, instance_id, cpus=None, memory=None,
834834

835835
if cpus is not None and preset is not None:
836836
raise exceptions.SoftLayerError("Do not use cpu, private and memory if you are using flavors")
837-
else:
838-
data['cpus'] = cpus
837+
data['cpus'] = cpus
839838

840839
if memory is not None and preset is not None:
841840
raise exceptions.SoftLayerError("Do not use memory, private or cpu if you are using flavors")
842-
else:
843-
data['memory'] = memory
841+
data['memory'] = memory
844842

845843
maintenance_window = datetime.datetime.now(utils.UTC())
846844
order = {
@@ -869,49 +867,14 @@ def upgrade(self, instance_id, cpus=None, memory=None,
869867
order['prices'] = prices
870868

871869
if preset is not None:
872-
presetId = self._get_active_presets(preset, instance_id)
873-
order['presetId'] = presetId
870+
vs_object = self.get_instance(instance_id)['billingItem']['package']
871+
order['presetId'] = self.ordering_manager.get_preset_by_key(vs_object['keyName'], preset)['id']
874872

875873
if prices or preset:
876874
self.client['Product_Order'].placeOrder(order)
877875
return True
878876
return False
879877

880-
def _get_active_presets(self, preset, instance_id):
881-
"""Following Method gets the active presets.
882-
883-
:param string preset: preset data to be upgrade de vs.
884-
:param int instance_id: To get the instance information.
885-
"""
886-
_filter = {
887-
'activePresets': {
888-
'keyName': {
889-
'operation': preset
890-
}
891-
},
892-
'accountRestrictedActivePresets': {
893-
'keyName': {
894-
'operation': preset
895-
}
896-
}
897-
}
898-
899-
vs_object = self.get_instance(instance_id, mask='mask[billingItem[package[id]]]')
900-
package = vs_object['billingItem']['package']
901-
packageId = package['id']
902-
903-
mask = 'mask[id]'
904-
active_presets = self.package_svc.getActivePresets(id=packageId, mask=mask, filter=_filter)
905-
906-
if len(active_presets) == 0:
907-
raise exceptions.SoftLayerError(
908-
"Preset {} does not exist in package {}".format(preset,
909-
packageId))
910-
911-
for presetId in active_presets:
912-
id = presetId['id']
913-
return id
914-
915878
def _get_package_items(self):
916879
"""Following Method gets all the item ids related to VS.
917880

tests/CLI/modules/vs_tests.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -909,7 +909,7 @@ def test_upgrade_with_flavor(self, confirm_mock):
909909
self.assert_called_with('SoftLayer_Product_Order', 'placeOrder')
910910
call = self.calls('SoftLayer_Product_Order', 'placeOrder')[0]
911911
order_container = call.args[0]
912-
self.assertEqual(801, order_container['presetId'])
912+
self.assertEqual(799, order_container['presetId'])
913913
self.assertIn({'id': 100}, order_container['virtualGuests'])
914914
self.assertEqual(order_container['virtualGuests'], [{'id': 100}])
915915

tests/managers/vs_tests.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -890,7 +890,7 @@ def test_upgrade_with_flavor(self):
890890
self.assert_called_with('SoftLayer_Product_Order', 'placeOrder')
891891
call = self.calls('SoftLayer_Product_Order', 'placeOrder')[0]
892892
order_container = call.args[0]
893-
self.assertEqual(801, order_container['presetId'])
893+
self.assertEqual(799, order_container['presetId'])
894894
self.assertIn({'id': 1}, order_container['virtualGuests'])
895895
self.assertIn({'id': 1122}, order_container['prices'])
896896
self.assertEqual(order_container['virtualGuests'], [{'id': 1}])

0 commit comments

Comments
 (0)