@@ -38,23 +38,24 @@ func UpgradeVirtualGuest(
3838 when ... time.Time ,
3939) (datatypes.Container_Product_Order_Receipt , error ) {
4040
41+ // Get the packageID of the guest and use same during upgrade of guest.
42+ service := services .GetVirtualGuestService (sess )
43+ guestPackage , err := service .Id (* guest .Id ).Mask ("privateNetworkOnlyFlag,dedicatedAccountHostOnlyFlag,billingItem[package[id]]" ).GetObject ()
44+ if err != nil {
45+ return datatypes.Container_Product_Order_Receipt {}, err
46+ }
47+
4148 if guest .PrivateNetworkOnlyFlag == nil || guest .DedicatedAccountHostOnlyFlag == nil {
42- service := services .GetVirtualGuestService (sess )
43- guestForFlag , err := service .Id (* guest .Id ).Mask ("privateNetworkOnlyFlag,dedicatedAccountHostOnlyFlag" ).GetObject ()
44- if err != nil {
45- return datatypes.Container_Product_Order_Receipt {}, err
46- }
47-
48- guest .PrivateNetworkOnlyFlag = guestForFlag .PrivateNetworkOnlyFlag
49- guest .DedicatedAccountHostOnlyFlag = guestForFlag .DedicatedAccountHostOnlyFlag
49+ guest .PrivateNetworkOnlyFlag = guestPackage .PrivateNetworkOnlyFlag
50+ guest .DedicatedAccountHostOnlyFlag = guestPackage .DedicatedAccountHostOnlyFlag
5051 }
5152
52- pkg , err := product . GetPackageByType ( sess , "VIRTUAL_SERVER_INSTANCE" )
53- if err != nil {
54- return datatypes. Container_Product_Order_Receipt {}, err
53+ var packageID int
54+ if guestPackage . BillingItem != nil {
55+ packageID = * guestPackage . BillingItem . Package . Id
5556 }
5657
57- productItems , err := product .GetPackageProducts (sess , * pkg . Id )
58+ productItems , err := product .GetPackageProducts (sess , packageID )
5859 if err != nil {
5960 return datatypes.Container_Product_Order_Receipt {}, err
6061 }
@@ -70,7 +71,7 @@ func UpgradeVirtualGuest(
7071 Container_Product_Order_Virtual_Guest : datatypes.Container_Product_Order_Virtual_Guest {
7172 Container_Product_Order_Hardware_Server : datatypes.Container_Product_Order_Hardware_Server {
7273 Container_Product_Order : datatypes.Container_Product_Order {
73- PackageId : pkg . Id ,
74+ PackageId : & packageID ,
7475 VirtualGuests : []datatypes.Virtual_Guest {
7576 * guest ,
7677 },
@@ -103,25 +104,26 @@ func UpgradeVirtualGuestWithPreset(
103104 when ... time.Time ,
104105) (datatypes.Container_Product_Order_Receipt , error ) {
105106
107+ // Get the packageID of the guest and use same during upgrade of guest.
108+ service := services .GetVirtualGuestService (sess )
109+ guestPackage , err := service .Id (* guest .Id ).Mask ("privateNetworkOnlyFlag,dedicatedAccountHostOnlyFlag,billingItem[package[id]]" ).GetObject ()
110+ if err != nil {
111+ return datatypes.Container_Product_Order_Receipt {}, err
112+ }
113+
106114 if guest .PrivateNetworkOnlyFlag == nil || guest .DedicatedAccountHostOnlyFlag == nil {
107- service := services .GetVirtualGuestService (sess )
108- guestForFlag , err := service .Id (* guest .Id ).Mask ("privateNetworkOnlyFlag,dedicatedAccountHostOnlyFlag" ).GetObject ()
109- if err != nil {
110- return datatypes.Container_Product_Order_Receipt {}, err
111- }
112-
113- guest .PrivateNetworkOnlyFlag = guestForFlag .PrivateNetworkOnlyFlag
114- guest .DedicatedAccountHostOnlyFlag = guestForFlag .DedicatedAccountHostOnlyFlag
115+ guest .PrivateNetworkOnlyFlag = guestPackage .PrivateNetworkOnlyFlag
116+ guest .DedicatedAccountHostOnlyFlag = guestPackage .DedicatedAccountHostOnlyFlag
115117 }
116118
117- pkg , err := product . GetPackageByKeyName ( sess , "PUBLIC_CLOUD_SERVER" )
118- if err != nil {
119- return datatypes. Container_Product_Order_Receipt {}, err
119+ var packageID int
120+ if guestPackage . BillingItem != nil {
121+ packageID = * guestPackage . BillingItem . Package . Id
120122 }
121123
122- preset , _ := product .GetPresetByKeyName (sess , * pkg . Id , presetKeyName )
124+ preset , _ := product .GetPresetByKeyName (sess , packageID , presetKeyName )
123125
124- productItems , err := product .GetPackageProducts (sess , * pkg . Id )
126+ productItems , err := product .GetPackageProducts (sess , packageID )
125127 if err != nil {
126128 return datatypes.Container_Product_Order_Receipt {}, err
127129 }
@@ -137,7 +139,7 @@ func UpgradeVirtualGuestWithPreset(
137139 Container_Product_Order_Virtual_Guest : datatypes.Container_Product_Order_Virtual_Guest {
138140 Container_Product_Order_Hardware_Server : datatypes.Container_Product_Order_Hardware_Server {
139141 Container_Product_Order : datatypes.Container_Product_Order {
140- PackageId : pkg . Id ,
142+ PackageId : & packageID ,
141143 VirtualGuests : []datatypes.Virtual_Guest {
142144 * guest ,
143145 },
0 commit comments