Skip to content

Commit c2d7f8f

Browse files
committed
Fix for dynamic scaling toggle for instance
1 parent 06c80cd commit c2d7f8f

File tree

6 files changed

+18
-36
lines changed

6 files changed

+18
-36
lines changed

api/src/main/java/org/apache/cloudstack/api/command/user/config/ListCapabilitiesCmd.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ public void execute() {
7171
response.setInstancesStatsUserOnly((Boolean) capabilities.get(ApiConstants.INSTANCES_STATS_USER_ONLY));
7272
response.setInstancesDisksStatsRetentionEnabled((Boolean) capabilities.get(ApiConstants.INSTANCES_DISKS_STATS_RETENTION_ENABLED));
7373
response.setInstancesDisksStatsRetentionTime((Integer) capabilities.get(ApiConstants.INSTANCES_DISKS_STATS_RETENTION_TIME));
74+
response.setDynamicScalingEnabled((Boolean) capabilities.get(ApiConstants.DYNAMIC_SCALING_ENABLED));
7475
response.setObjectName("capability");
7576
response.setResponseName(getCommandName());
7677
this.setResponseObject(response);

api/src/main/java/org/apache/cloudstack/api/response/CapabilitiesResponse.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,10 @@ public class CapabilitiesResponse extends BaseResponse {
124124
@Param(description = "the retention time for Instances disks stats", since = "4.18.0")
125125
private Integer instancesDisksStatsRetentionTime;
126126

127+
@SerializedName(ApiConstants.DYNAMIC_SCALING_ENABLED)
128+
@Param(description = "true if dynamically scaling for instances is enabled", since = "4.19.4")
129+
private Boolean dynamicScalingEnabled;
130+
127131
public void setSecurityGroupsEnabled(boolean securityGroupsEnabled) {
128132
this.securityGroupsEnabled = securityGroupsEnabled;
129133
}
@@ -223,4 +227,8 @@ public void setInstancesDisksStatsRetentionTime(Integer instancesDisksStatsReten
223227
public void setCustomHypervisorDisplayName(String customHypervisorDisplayName) {
224228
this.customHypervisorDisplayName = customHypervisorDisplayName;
225229
}
230+
231+
public void setDynamicScalingEnabled(Boolean dynamicScalingEnabled) {
232+
this.dynamicScalingEnabled = dynamicScalingEnabled;
233+
}
226234
}

server/src/main/java/com/cloud/server/ManagementServerImpl.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4408,6 +4408,7 @@ public Map<String, Object> listCapabilities(final ListCapabilitiesCmd cmd) {
44084408
capabilities.put(ApiConstants.INSTANCES_STATS_USER_ONLY, StatsCollector.vmStatsCollectUserVMOnly.value());
44094409
capabilities.put(ApiConstants.INSTANCES_DISKS_STATS_RETENTION_ENABLED, StatsCollector.vmDiskStatsRetentionEnabled.value());
44104410
capabilities.put(ApiConstants.INSTANCES_DISKS_STATS_RETENTION_TIME, StatsCollector.vmDiskStatsMaxRetentionTime.value());
4411+
capabilities.put(ApiConstants.DYNAMIC_SCALING_ENABLED, UserVmManager.EnableDynamicallyScaleVm.value());
44114412
if (apiLimitEnabled) {
44124413
capabilities.put("apiLimitInterval", apiLimitInterval);
44134414
capabilities.put("apiLimitMax", apiLimitMax);

ui/src/views/compute/DeployVM.vue

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -944,8 +944,7 @@ export default {
944944
keyboards: [],
945945
bootTypes: [],
946946
bootModes: [],
947-
ioPolicyTypes: [],
948-
dynamicScalingVmConfig: false
947+
ioPolicyTypes: []
949948
},
950949
rowCount: {},
951950
loading: {
@@ -1175,13 +1174,6 @@ export default {
11751174
type: 'Routing'
11761175
},
11771176
field: 'hostid'
1178-
},
1179-
dynamicScalingVmConfig: {
1180-
list: 'listConfigurations',
1181-
options: {
1182-
zoneid: _.get(this.zone, 'id'),
1183-
name: 'enable.dynamic.scale.vm'
1184-
}
11851177
}
11861178
}
11871179
},
@@ -1312,7 +1304,7 @@ export default {
13121304
return Boolean('listUserData' in this.$store.getters.apis)
13131305
},
13141306
dynamicScalingVmConfigValue () {
1315-
return this.options.dynamicScalingVmConfig?.[0]?.value === 'true'
1307+
return this.$store.getters.features.dynamicscalingenabled
13161308
},
13171309
isCustomizedDiskIOPS () {
13181310
return this.diskSelected?.iscustomizediops || false
@@ -2215,7 +2207,7 @@ export default {
22152207
param.loading = true
22162208
param.opts = []
22172209
const options = param.options || {}
2218-
if (!('listall' in options) && !['zones', 'pods', 'clusters', 'hosts', 'dynamicScalingVmConfig', 'hypervisors'].includes(name)) {
2210+
if (!('listall' in options) && !['zones', 'pods', 'clusters', 'hosts', 'hypervisors'].includes(name)) {
22192211
options.listall = true
22202212
}
22212213
api(param.list, options).then((response) => {

ui/src/views/compute/DeployVnfAppliance.vue

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -960,8 +960,7 @@ export default {
960960
keyboards: [],
961961
bootTypes: [],
962962
bootModes: [],
963-
ioPolicyTypes: [],
964-
dynamicScalingVmConfig: false
963+
ioPolicyTypes: []
965964
},
966965
rowCount: {},
967966
loading: {
@@ -1194,13 +1193,6 @@ export default {
11941193
type: 'Routing'
11951194
},
11961195
field: 'hostid'
1197-
},
1198-
dynamicScalingVmConfig: {
1199-
list: 'listConfigurations',
1200-
options: {
1201-
zoneid: _.get(this.zone, 'id'),
1202-
name: 'enable.dynamic.scale.vm'
1203-
}
12041196
}
12051197
}
12061198
},
@@ -1332,7 +1324,7 @@ export default {
13321324
return Boolean('listUserData' in this.$store.getters.apis)
13331325
},
13341326
dynamicScalingVmConfigValue () {
1335-
return this.options.dynamicScalingVmConfig?.[0]?.value === 'true'
1327+
return this.$store.getters.features.dynamicscalingenabled
13361328
},
13371329
isCustomizedDiskIOPS () {
13381330
return this.diskSelected?.iscustomizediops || false
@@ -2403,7 +2395,7 @@ export default {
24032395
param.loading = true
24042396
param.opts = []
24052397
const options = param.options || {}
2406-
if (!('listall' in options) && !['zones', 'pods', 'clusters', 'hosts', 'dynamicScalingVmConfig', 'hypervisors'].includes(name)) {
2398+
if (!('listall' in options) && !['zones', 'pods', 'clusters', 'hosts', 'hypervisors'].includes(name)) {
24072399
options.listall = true
24082400
}
24092401
api(param.list, options).then((response) => {

ui/src/views/compute/EditVM.vue

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,6 @@ export default {
145145
template: {},
146146
userDataEnabled: false,
147147
securityGroupsEnabled: false,
148-
dynamicScalingVmConfig: false,
149148
loading: false,
150149
securitygroups: {
151150
loading: false,
@@ -189,7 +188,6 @@ export default {
189188
this.fetchInstaceGroups()
190189
this.fetchServiceOfferingData()
191190
this.fetchTemplateData()
192-
this.fetchDynamicScalingVmConfig()
193191
this.fetchUserData()
194192
},
195193
fetchZoneDetails () {
@@ -241,18 +239,8 @@ export default {
241239
this.template = templateResponses[0]
242240
})
243241
},
244-
fetchDynamicScalingVmConfig () {
245-
const params = {}
246-
params.name = 'enable.dynamic.scale.vm'
247-
params.zoneid = this.resource.zoneid
248-
var apiName = 'listConfigurations'
249-
api(apiName, params).then(json => {
250-
const configResponse = json.listconfigurationsresponse.configuration
251-
this.dynamicScalingVmConfig = configResponse[0]?.value === 'true'
252-
})
253-
},
254-
canDynamicScalingEnabled () {
255-
return this.template.isdynamicallyscalable && this.serviceOffering.dynamicscalingenabled && this.dynamicScalingVmConfig
242+
isDynamicScalingEnabled () {
243+
return this.template.isdynamicallyscalable && this.serviceOffering.dynamicscalingenabled && this.$store.getters.features.dynamicscalingenabled
256244
},
257245
fetchOsTypes () {
258246
this.osTypes.loading = true

0 commit comments

Comments
 (0)