Skip to content

Commit eb86ed6

Browse files
GaborApatiNagybfederle
authored andcommitted
Value of Global parameter "custom.diskoffering.size.min" is not reflected in UI during new instance creation.
Added fields to /api and /server classes for CustomDiskOfferingMinSize to be available in CapabilitiesResponse. Fixed UI code in Instance Wizard to have this config value as the minimum selectable option when we are in custom disk size mode.
1 parent 90117f0 commit eb86ed6

7 files changed

Lines changed: 25 additions & 2 deletions

File tree

api/src/org/apache/cloudstack/api/ApiConstants.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -419,6 +419,7 @@ public class ApiConstants {
419419
public static final String INSTANCE_NAME = "instancename";
420420
public static final String START_VM = "startvm";
421421
public static final String HA_HOST = "hahost";
422+
public static final String CUSTOM_DISK_OFF_MIN_SIZE = "customdiskofferingminsize";
422423
public static final String CUSTOM_DISK_OFF_MAX_SIZE = "customdiskofferingmaxsize";
423424
public static final String DEFAULT_ZONE_ID = "defaultzoneid";
424425
public static final String LIVE_MIGRATE = "livemigrate";

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ public void execute() {
5353
response.setSupportELB((String)capabilities.get("supportELB"));
5454
response.setProjectInviteRequired((Boolean)capabilities.get("projectInviteRequired"));
5555
response.setAllowUsersCreateProjects((Boolean)capabilities.get("allowusercreateprojects"));
56+
response.setDiskOffMinSize((Long)capabilities.get("customDiskOffMinSize"));
5657
response.setDiskOffMaxSize((Long)capabilities.get("customDiskOffMaxSize"));
5758
response.setRegionSecondaryEnabled((Boolean)capabilities.get("regionSecondaryEnabled"));
5859
response.setKVMSnapshotEnabled((Boolean)capabilities.get("KVMSnapshotEnabled"));

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,10 @@ public class CapabilitiesResponse extends BaseResponse {
4949
@Param(description = "true if regular user is allowed to create projects")
5050
private Boolean allowUsersCreateProjects;
5151

52+
@SerializedName(ApiConstants.CUSTOM_DISK_OFF_MIN_SIZE)
53+
@Param(description = "minimum size that can be specified when " + "create disk from disk offering with custom size")
54+
private Long diskOffMinSize;
55+
5256
@SerializedName(ApiConstants.CUSTOM_DISK_OFF_MAX_SIZE)
5357
@Param(description = "maximum size that can be specified when " + "create disk from disk offering with custom size")
5458
private Long diskOffMaxSize;
@@ -93,6 +97,10 @@ public void setAllowUsersCreateProjects(Boolean allowUsersCreateProjects) {
9397
this.allowUsersCreateProjects = allowUsersCreateProjects;
9498
}
9599

100+
public void setDiskOffMinSize(Long diskOffMinSize) {
101+
this.diskOffMinSize = diskOffMinSize;
102+
}
103+
96104
public void setDiskOffMaxSize(Long diskOffMaxSize) {
97105
this.diskOffMaxSize = diskOffMaxSize;
98106
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3342,6 +3342,7 @@ public Map<String, Object> listCapabilities(ListCapabilitiesCmd cmd) {
33423342
}
33433343
}
33443344

3345+
long diskOffMinSize = VolumeOrchestrationService.CustomDiskOfferingMinSize.value();
33453346
long diskOffMaxSize = VolumeOrchestrationService.CustomDiskOfferingMaxSize.value();
33463347
KVMSnapshotEnabled = Boolean.parseBoolean(_configDao.getValue("KVM.snapshot.enabled"));
33473348

@@ -3365,6 +3366,7 @@ public Map<String, Object> listCapabilities(ListCapabilitiesCmd cmd) {
33653366
capabilities.put("supportELB", supportELB);
33663367
capabilities.put("projectInviteRequired", _projectMgr.projectInviteRequired());
33673368
capabilities.put("allowusercreateprojects", _projectMgr.allowUserToCreateProject());
3369+
capabilities.put("customDiskOffMinSize", diskOffMinSize);
33683370
capabilities.put("customDiskOffMaxSize", diskOffMaxSize);
33693371
capabilities.put("regionSecondaryEnabled", regionSecondaryEnabled);
33703372
capabilities.put("KVMSnapshotEnabled", KVMSnapshotEnabled);

ui/index.jsp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@
254254
<label><fmt:message key="label.disk.size"/></label>
255255

256256
<!-- Slider -->
257-
<label class="size">1 GB</label>
257+
<label class="size min"><span></span> GB</label>
258258
<div class="slider custom-size"></div>
259259
<label class="size max"><span></span> GB</label>
260260

ui/scripts/instanceWizard.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,12 @@
2222
var step6ContainerType = 'nothing-to-select'; //'nothing-to-select', 'select-network', 'select-security-group', 'select-advanced-sg'(advanced sg-enabled zone)
2323

2424
cloudStack.instanceWizard = {
25+
//min disk offering size when custom disk size is used
26+
minDiskOfferingSize: function() {
27+
return g_capabilities.customdiskofferingminsize;
28+
},
29+
30+
//max disk offering size when custom disk size is used
2531
maxDiskOfferingSize: function() {
2632
return g_capabilities.customdiskofferingmaxsize;
2733
},

ui/scripts/ui-custom/instanceWizard.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1105,17 +1105,22 @@
11051105
$futureSteps.removeClass('loaded');
11061106
});
11071107

1108+
var minCustomDiskSize = args.minDiskOfferingSize ?
1109+
args.minDiskOfferingSize() : 1;
1110+
11081111
var maxCustomDiskSize = args.maxDiskOfferingSize ?
11091112
args.maxDiskOfferingSize() : 100;
11101113

11111114
// Setup tabs and slider
1115+
$wizard.find('.section.custom-size .size.min span').html(minCustomDiskSize);
1116+
$wizard.find('.section.custom-size input[type=text]').val(minCustomDiskSize);
11121117
$wizard.find('.section.custom-size .size.max span').html(maxCustomDiskSize);
11131118
$wizard.find('.tab-view').tabs();
11141119
$wizard.find('.slider').each(function() {
11151120
var $slider = $(this);
11161121

11171122
$slider.slider({
1118-
min: 1,
1123+
min: minCustomDiskSize,
11191124
max: maxCustomDiskSize,
11201125
start: function(event) {
11211126
$slider.closest('.section.custom-size').find('input[type=radio]').click();

0 commit comments

Comments
 (0)