Skip to content

Commit 84eee06

Browse files
committed
add dynamicscalingenabled in listCapabilities response for Deploy/Edit VM
1 parent 0bd35a5 commit 84eee06

File tree

6 files changed

+17
-35
lines changed

6 files changed

+17
-35
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
@@ -73,6 +73,7 @@ public void execute() {
7373
response.setSharedFsVmMinCpuCount((Integer)capabilities.get(ApiConstants.SHAREDFSVM_MIN_CPU_COUNT));
7474
response.setSharedFsVmMinRamSize((Integer)capabilities.get(ApiConstants.SHAREDFSVM_MIN_RAM_SIZE));
7575
response.setInstanceLeaseEnabled((Boolean) capabilities.get(ApiConstants.INSTANCE_LEASE_ENABLED));
76+
response.setDynamicScalingEnabled((Boolean) capabilities.get(ApiConstants.DYNAMIC_SCALING_ENABLED));
7677
response.setObjectName("capability");
7778
response.setResponseName(getCommandName());
7879
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
@@ -140,6 +140,10 @@ public class CapabilitiesResponse extends BaseResponse {
140140
@Param(description = "true if instance lease feature is enabled", since = "4.21.0")
141141
private Boolean instanceLeaseEnabled;
142142

143+
@SerializedName(ApiConstants.DYNAMIC_SCALING_ENABLED)
144+
@Param(description = "true if dynamically scaling for instance is enabled", since = "4.21.0")
145+
private Boolean dynamicScalingEnabled;
146+
143147
public void setSecurityGroupsEnabled(boolean securityGroupsEnabled) {
144148
this.securityGroupsEnabled = securityGroupsEnabled;
145149
}
@@ -255,4 +259,8 @@ public void setSharedFsVmMinRamSize(Integer sharedFsVmMinRamSize) {
255259
public void setInstanceLeaseEnabled(Boolean instanceLeaseEnabled) {
256260
this.instanceLeaseEnabled = instanceLeaseEnabled;
257261
}
262+
263+
public void setDynamicScalingEnabled(Boolean dynamicScalingEnabled) {
264+
this.dynamicScalingEnabled = dynamicScalingEnabled;
265+
}
258266
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4683,6 +4683,7 @@ public Map<String, Object> listCapabilities(final ListCapabilitiesCmd cmd) {
46834683
capabilities.put(ApiConstants.INSTANCES_DISKS_STATS_RETENTION_ENABLED, StatsCollector.vmDiskStatsRetentionEnabled.value());
46844684
capabilities.put(ApiConstants.INSTANCES_DISKS_STATS_RETENTION_TIME, StatsCollector.vmDiskStatsMaxRetentionTime.value());
46854685
capabilities.put(ApiConstants.INSTANCE_LEASE_ENABLED, VMLeaseManager.InstanceLeaseEnabled.value());
4686+
capabilities.put(ApiConstants.DYNAMIC_SCALING_ENABLED, UserVmManager.EnableDynamicallyScaleVm.value());
46864687
if (apiLimitEnabled) {
46874688
capabilities.put("apiLimitInterval", apiLimitInterval);
46884689
capabilities.put("apiLimitMax", apiLimitMax);

ui/src/views/compute/DeployVM.vue

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -996,8 +996,7 @@ export default {
996996
keyboards: [],
997997
bootTypes: [],
998998
bootModes: [],
999-
ioPolicyTypes: [],
1000-
dynamicScalingVmConfig: false
999+
ioPolicyTypes: []
10011000
},
10021001
rowCount: {},
10031002
loading: {
@@ -1284,13 +1283,6 @@ export default {
12841283
},
12851284
field: 'hostid'
12861285
},
1287-
dynamicScalingVmConfig: {
1288-
list: 'listConfigurations',
1289-
options: {
1290-
zoneid: _.get(this.zone, 'id'),
1291-
name: 'enable.dynamic.scale.vm'
1292-
}
1293-
},
12941286
guestOsCategories: {
12951287
list: 'listOsCategories',
12961288
options: {
@@ -1449,7 +1441,7 @@ export default {
14491441
return Boolean('listUserData' in this.$store.getters.apis)
14501442
},
14511443
dynamicScalingVmConfigValue () {
1452-
return this.options.dynamicScalingVmConfig?.[0]?.value === 'true'
1444+
return this.$store.getters.features.dynamicscalingenabled
14531445
},
14541446
isCustomizedDiskIOPS () {
14551447
return this.diskSelected?.iscustomizediops || false
@@ -2508,7 +2500,7 @@ export default {
25082500
param.loading = true
25092501
param.opts = []
25102502
const options = param.options || {}
2511-
if (!('listall' in options) && !['zones', 'pods', 'clusters', 'hosts', 'dynamicScalingVmConfig', 'hypervisors'].includes(name)) {
2503+
if (!('listall' in options) && !['zones', 'pods', 'clusters', 'hosts', 'hypervisors'].includes(name)) {
25122504
options.listall = true
25132505
}
25142506
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
@@ -952,8 +952,7 @@ export default {
952952
keyboards: [],
953953
bootTypes: [],
954954
bootModes: [],
955-
ioPolicyTypes: [],
956-
dynamicScalingVmConfig: false
955+
ioPolicyTypes: []
957956
},
958957
rowCount: {},
959958
loading: {
@@ -1177,13 +1176,6 @@ export default {
11771176
},
11781177
field: 'hostid'
11791178
},
1180-
dynamicScalingVmConfig: {
1181-
list: 'listConfigurations',
1182-
options: {
1183-
zoneid: _.get(this.zone, 'id'),
1184-
name: 'enable.dynamic.scale.vm'
1185-
}
1186-
},
11871179
guestOsCategories: {
11881180
list: 'listOsCategories',
11891181
options: {
@@ -1330,7 +1322,7 @@ export default {
13301322
return Boolean('listUserData' in this.$store.getters.apis)
13311323
},
13321324
dynamicScalingVmConfigValue () {
1333-
return this.options.dynamicScalingVmConfig?.[0]?.value === 'true'
1325+
return this.$store.getters.features.dynamicscalingenabled
13341326
},
13351327
isCustomizedDiskIOPS () {
13361328
return this.diskSelected?.iscustomizediops || false
@@ -2479,7 +2471,7 @@ export default {
24792471
param.loading = true
24802472
param.opts = []
24812473
const options = param.options || {}
2482-
if (!('listall' in options) && !['zones', 'pods', 'clusters', 'hosts', 'dynamicScalingVmConfig', 'hypervisors'].includes(name)) {
2474+
if (!('listall' in options) && !['zones', 'pods', 'clusters', 'hosts', 'hypervisors'].includes(name)) {
24832475
options.listall = true
24842476
}
24852477
api(param.list, options).then((response) => {

ui/src/views/compute/EditVM.vue

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,6 @@ export default {
180180
template: {},
181181
userDataEnabled: false,
182182
securityGroupsEnabled: false,
183-
dynamicScalingVmConfig: false,
184183
loading: false,
185184
securitygroups: {
186185
loading: false,
@@ -239,7 +238,6 @@ export default {
239238
this.fetchInstaceGroups()
240239
this.fetchServiceOfferingData()
241240
this.fetchTemplateData()
242-
this.fetchDynamicScalingVmConfig()
243241
this.fetchUserData()
244242
},
245243
fetchZoneDetails () {
@@ -291,18 +289,8 @@ export default {
291289
this.template = templateResponses[0]
292290
})
293291
},
294-
fetchDynamicScalingVmConfig () {
295-
const params = {}
296-
params.name = 'enable.dynamic.scale.vm'
297-
params.zoneid = this.resource.zoneid
298-
var apiName = 'listConfigurations'
299-
api(apiName, params).then(json => {
300-
const configResponse = json.listconfigurationsresponse.configuration
301-
this.dynamicScalingVmConfig = configResponse[0]?.value === 'true'
302-
})
303-
},
304292
canDynamicScalingEnabled () {
305-
return this.template.isdynamicallyscalable && this.serviceOffering.dynamicscalingenabled && this.dynamicScalingVmConfig
293+
return this.template.isdynamicallyscalable && this.serviceOffering.dynamicscalingenabled && this.$store.getters.features.dynamicscalingenabled
306294
},
307295
fetchOsTypes () {
308296
this.osTypes.loading = true

0 commit comments

Comments
 (0)