@@ -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
0 commit comments