Repository: cloudstack Updated Branches: refs/heads/4.3 2b264e6b5 -> 8de489469
CLOUDSTACK-5962: 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. (cherry picked from commit 883d7f17f78433b37e4f20103b532b3b20582014) Signed-off-by: Rohit Yadav <rohit.ya...@shapeblue.com> Conflicts: api/src/org/apache/cloudstack/api/response/CapabilitiesResponse.java server/src/com/cloud/server/ManagementServerImpl.java Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/17c3e83c Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/17c3e83c Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/17c3e83c Branch: refs/heads/4.3 Commit: 17c3e83cae5e21b9d69cc84216c504766d0ef0a2 Parents: 2b264e6 Author: Gabor Apati-Nagy <gabor.apati-n...@citrix.com> Authored: Fri Mar 28 14:39:02 2014 +0000 Committer: Rohit Yadav <rohit.ya...@shapeblue.com> Committed: Wed Nov 26 21:59:16 2014 +0530 ---------------------------------------------------------------------- api/src/org/apache/cloudstack/api/ApiConstants.java | 1 + .../api/command/user/config/ListCapabilitiesCmd.java | 1 + .../cloudstack/api/response/CapabilitiesResponse.java | 13 +++++++++++-- server/src/com/cloud/server/ManagementServerImpl.java | 2 ++ ui/index.jsp | 2 +- ui/scripts/instanceWizard.js | 6 ++++++ ui/scripts/ui-custom/instanceWizard.js | 7 ++++++- 7 files changed, 28 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/17c3e83c/api/src/org/apache/cloudstack/api/ApiConstants.java ---------------------------------------------------------------------- diff --git a/api/src/org/apache/cloudstack/api/ApiConstants.java b/api/src/org/apache/cloudstack/api/ApiConstants.java index 68abf8d..b7ac97b 100755 --- a/api/src/org/apache/cloudstack/api/ApiConstants.java +++ b/api/src/org/apache/cloudstack/api/ApiConstants.java @@ -400,6 +400,7 @@ public class ApiConstants { public static final String INSTANCE_NAME = "instancename"; public static final String START_VM = "startvm"; public static final String HA_HOST = "hahost"; + public static final String CUSTOM_DISK_OFF_MIN_SIZE = "customdiskofferingminsize"; public static final String CUSTOM_DISK_OFF_MAX_SIZE = "customdiskofferingmaxsize"; public static final String DEFAULT_ZONE_ID = "defaultzoneid"; public static final String LIVE_MIGRATE = "livemigrate"; http://git-wip-us.apache.org/repos/asf/cloudstack/blob/17c3e83c/api/src/org/apache/cloudstack/api/command/user/config/ListCapabilitiesCmd.java ---------------------------------------------------------------------- diff --git a/api/src/org/apache/cloudstack/api/command/user/config/ListCapabilitiesCmd.java b/api/src/org/apache/cloudstack/api/command/user/config/ListCapabilitiesCmd.java index 2176bc0..78d5be9 100644 --- a/api/src/org/apache/cloudstack/api/command/user/config/ListCapabilitiesCmd.java +++ b/api/src/org/apache/cloudstack/api/command/user/config/ListCapabilitiesCmd.java @@ -52,6 +52,7 @@ public class ListCapabilitiesCmd extends BaseCmd { response.setSupportELB((String)capabilities.get("supportELB")); response.setProjectInviteRequired((Boolean)capabilities.get("projectInviteRequired")); response.setAllowUsersCreateProjects((Boolean)capabilities.get("allowusercreateprojects")); + response.setDiskOffMinSize((Long)capabilities.get("customDiskOffMinSize")); response.setDiskOffMaxSize((Long)capabilities.get("customDiskOffMaxSize")); response.setRegionSecondaryEnabled((Boolean)capabilities.get("regionSecondaryEnabled")); response.setKVMSnapshotEnabled((Boolean)capabilities.get("KVMSnapshotEnabled")); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/17c3e83c/api/src/org/apache/cloudstack/api/response/CapabilitiesResponse.java ---------------------------------------------------------------------- diff --git a/api/src/org/apache/cloudstack/api/response/CapabilitiesResponse.java b/api/src/org/apache/cloudstack/api/response/CapabilitiesResponse.java index 3ce31b5..b64ebdd 100644 --- a/api/src/org/apache/cloudstack/api/response/CapabilitiesResponse.java +++ b/api/src/org/apache/cloudstack/api/response/CapabilitiesResponse.java @@ -43,9 +43,14 @@ public class CapabilitiesResponse extends BaseResponse { @SerializedName(ApiConstants.ALLOW_USER_CREATE_PROJECTS) @Param(description="true if regular user is allowed to create projects") private Boolean allowUsersCreateProjects; - @SerializedName(ApiConstants.CUSTOM_DISK_OFF_MAX_SIZE) @Param(description="maximum size that can be specified when " + - "create disk from disk offering with custom size") + @SerializedName(ApiConstants.CUSTOM_DISK_OFF_MIN_SIZE) + @Param(description = "minimum size that can be specified when " + "create disk from disk offering with custom size") + private Long diskOffMinSize; + + @SerializedName(ApiConstants.CUSTOM_DISK_OFF_MAX_SIZE) + @Param(description = "maximum size that can be specified when " + "create disk from disk offering with custom size") private Long diskOffMaxSize; + @SerializedName("regionsecondaryenabled") @Param(description = "true if region wide secondary is enabled, false otherwise") private boolean regionSecondaryEnabled; @@ -83,6 +88,10 @@ public class CapabilitiesResponse extends BaseResponse { this.allowUsersCreateProjects = allowUsersCreateProjects; } + public void setDiskOffMinSize(Long diskOffMinSize) { + this.diskOffMinSize = diskOffMinSize; + } + public void setDiskOffMaxSize(Long diskOffMaxSize) { this.diskOffMaxSize = diskOffMaxSize; } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/17c3e83c/server/src/com/cloud/server/ManagementServerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/server/ManagementServerImpl.java b/server/src/com/cloud/server/ManagementServerImpl.java index afa50b0..b2ffa16 100755 --- a/server/src/com/cloud/server/ManagementServerImpl.java +++ b/server/src/com/cloud/server/ManagementServerImpl.java @@ -3318,6 +3318,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe } } + long diskOffMinSize = _volumeMgr.CustomDiskOfferingMinSize.value(); long diskOffMaxSize = _volumeMgr.CustomDiskOfferingMaxSize.value(); KVMSnapshotEnabled = Boolean.parseBoolean(_configDao.getValue("KVM.snapshot.enabled")); @@ -3341,6 +3342,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe capabilities.put("supportELB", supportELB); capabilities.put("projectInviteRequired", _projectMgr.projectInviteRequired()); capabilities.put("allowusercreateprojects", _projectMgr.allowUserToCreateProject()); + capabilities.put("customDiskOffMinSize", diskOffMinSize); capabilities.put("customDiskOffMaxSize", diskOffMaxSize); capabilities.put("regionSecondaryEnabled", regionSecondaryEnabled); capabilities.put("KVMSnapshotEnabled", KVMSnapshotEnabled); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/17c3e83c/ui/index.jsp ---------------------------------------------------------------------- diff --git a/ui/index.jsp b/ui/index.jsp index 0cd5dc5a..672e82a 100644 --- a/ui/index.jsp +++ b/ui/index.jsp @@ -241,7 +241,7 @@ <label><fmt:message key="label.disk.size"/></label> <!-- Slider --> - <label class="size">1 GB</label> + <label class="size min"><span></span> GB</label> <div class="slider custom-size"></div> <label class="size max"><span></span> GB</label> http://git-wip-us.apache.org/repos/asf/cloudstack/blob/17c3e83c/ui/scripts/instanceWizard.js ---------------------------------------------------------------------- diff --git a/ui/scripts/instanceWizard.js b/ui/scripts/instanceWizard.js index 4708866..807f075 100644 --- a/ui/scripts/instanceWizard.js +++ b/ui/scripts/instanceWizard.js @@ -22,6 +22,12 @@ var step6ContainerType = 'nothing-to-select'; //'nothing-to-select', 'select-network', 'select-security-group', 'select-advanced-sg'(advanced sg-enabled zone) cloudStack.instanceWizard = { + //min disk offering size when custom disk size is used + minDiskOfferingSize: function() { + return g_capabilities.customdiskofferingminsize; + }, + + //max disk offering size when custom disk size is used maxDiskOfferingSize: function() { return g_capabilities.customdiskofferingmaxsize; }, http://git-wip-us.apache.org/repos/asf/cloudstack/blob/17c3e83c/ui/scripts/ui-custom/instanceWizard.js ---------------------------------------------------------------------- diff --git a/ui/scripts/ui-custom/instanceWizard.js b/ui/scripts/ui-custom/instanceWizard.js index d5203c8..5704278 100644 --- a/ui/scripts/ui-custom/instanceWizard.js +++ b/ui/scripts/ui-custom/instanceWizard.js @@ -1046,17 +1046,22 @@ $futureSteps.removeClass('loaded'); }); + var minCustomDiskSize = args.minDiskOfferingSize ? + args.minDiskOfferingSize() : 1; + var maxCustomDiskSize = args.maxDiskOfferingSize ? args.maxDiskOfferingSize() : 100; // Setup tabs and slider + $wizard.find('.section.custom-size .size.min span').html(minCustomDiskSize); + $wizard.find('.section.custom-size input[type=text]').val(minCustomDiskSize); $wizard.find('.section.custom-size .size.max span').html(maxCustomDiskSize); $wizard.find('.tab-view').tabs(); $wizard.find('.slider').each(function() { var $slider = $(this); $slider.slider({ - min: 1, + min: minCustomDiskSize, max: maxCustomDiskSize, start: function(event) { $slider.closest('.section.custom-size').find('input[type=radio]').click();