cloudstack-4308 Add API listCapabilities for KVMSnapshotEnabled so that UI can 
use it for recurring snapshot.


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/8df22d18
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/8df22d18
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/8df22d18

Branch: refs/heads/4.2
Commit: 8df22d1818c120716bea5fce39854da38f61055b
Parents: c850f0a
Author: Fang Wang <[email protected]>
Authored: Tue Aug 13 17:15:33 2013 -0700
Committer: Vijayendra Bhamidipati <[email protected]>
Committed: Tue Aug 13 12:48:24 2013 -0700

----------------------------------------------------------------------
 .../api/command/user/config/ListCapabilitiesCmd.java          | 1 +
 .../apache/cloudstack/api/response/CapabilitiesResponse.java  | 7 +++++++
 server/src/com/cloud/server/ManagementServerImpl.java         | 3 +++
 3 files changed, 11 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8df22d18/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 a30e26c..57ff4eb 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.setProjectInviteRequired((Boolean)capabilities.get("projectInviteRequired"));
         
response.setAllowUsersCreateProjects((Boolean)capabilities.get("allowusercreateprojects"));
         
response.setDiskOffMaxSize((Long)capabilities.get("customDiskOffMaxSize"));
+        
response.setKVMSnapshotEnabled((Boolean)capabilities.get("KVMSnapshotEnabled"));
         if (capabilities.containsKey("apiLimitInterval")) {
             response.setApiLimitInterval((Integer) 
capabilities.get("apiLimitInterval"));
         }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8df22d18/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 c2996f0..5c31571 100644
--- a/api/src/org/apache/cloudstack/api/response/CapabilitiesResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/CapabilitiesResponse.java
@@ -46,6 +46,9 @@ public class CapabilitiesResponse extends BaseResponse {
             "create disk from disk offering with custom size")
     private Long diskOffMaxSize;
 
+    @SerializedName("KVMsnapshotenabled") @Param(description = "true if 
snapshot is supported for KVM host, false otherwise")
+    private boolean KVMSnapshotEnabled;
+
     @SerializedName("apilimitinterval") @Param(description="time interval (in 
seconds) to reset api count")
     private Integer apiLimitInterval;
 
@@ -81,6 +84,10 @@ public class CapabilitiesResponse extends BaseResponse {
         this.diskOffMaxSize = diskOffMaxSize;
     }
 
+    public void setKVMSnapshotEnabled(boolean KVMSnapshotEnabled) {
+        this.KVMSnapshotEnabled = KVMSnapshotEnabled;
+    }
+
     public void setApiLimitInterval(Integer apiLimitInterval) {
         this.apiLimitInterval = apiLimitInterval;
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8df22d18/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 622e167..8b78aed 100755
--- a/server/src/com/cloud/server/ManagementServerImpl.java
+++ b/server/src/com/cloud/server/ManagementServerImpl.java
@@ -3254,6 +3254,7 @@ public class ManagementServerImpl extends ManagerBase 
implements ManagementServe
         Account caller = UserContext.current().getCaller();
         boolean securityGroupsEnabled = false;
         boolean elasticLoadBalancerEnabled = false;
+        boolean KVMSnapshotEnabled = false;
         String supportELB = "false";
         List<NetworkVO> networks = 
_networkDao.listSecurityGroupEnabledNetworks();
         if (networks != null && !networks.isEmpty()) {
@@ -3269,6 +3270,7 @@ public class ManagementServerImpl extends ManagerBase 
implements ManagementServe
         }
 
         long diskOffMaxSize = 
Long.valueOf(_configDao.getValue(Config.CustomDiskOfferingMaxSize.key()));
+        KVMSnapshotEnabled = 
Boolean.parseBoolean(_configDao.getValue("KVM.snapshot.enabled"));
 
         String userPublicTemplateEnabled = 
_configServer.getConfigValue(Config.AllowPublicUserTemplates.key(), 
Config.ConfigurationParameterScope.account.toString(), caller.getId());
 
@@ -3285,6 +3287,7 @@ public class ManagementServerImpl extends ManagerBase 
implements ManagementServe
         capabilities.put("projectInviteRequired", 
_projectMgr.projectInviteRequired());
         capabilities.put("allowusercreateprojects", 
_projectMgr.allowUserToCreateProject());
         capabilities.put("customDiskOffMaxSize", diskOffMaxSize);
+        capabilities.put("KVMSnapshotEnabled", KVMSnapshotEnabled);
         if (apiLimitEnabled) {
             capabilities.put("apiLimitInterval", apiLimitInterval);
             capabilities.put("apiLimitMax", apiLimitMax);

Reply via email to