You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by al...@apache.org on 2012/10/16 20:25:27 UTC

git commit: CLOUDSTACK-304: default number of concurrent snapshots is NULL (unlimited) - to provide backwards compatibility for existing customers.

Updated Branches:
  refs/heads/master f4d085d60 -> 9d07ad8ec


CLOUDSTACK-304: default number of concurrent snapshots is NULL (unlimited) - to provide backwards compatibility for existing customers.

Conflicts:

	setup/db/db/schema-305to306.sql


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

Branch: refs/heads/master
Commit: 9d07ad8ecb1547ee7cb4c376a794d141a4c34ce2
Parents: f4d085d
Author: Alena Prokharchyk <al...@citrix.com>
Authored: Tue Oct 16 10:34:40 2012 -0700
Committer: Alena Prokharchyk <al...@citrix.com>
Committed: Tue Oct 16 11:25:05 2012 -0700

----------------------------------------------------------------------
 server/src/com/cloud/api/ApiDispatcher.java    |   27 ++++++++++++++----
 server/src/com/cloud/configuration/Config.java |    4 +-
 2 files changed, 23 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/9d07ad8e/server/src/com/cloud/api/ApiDispatcher.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiDispatcher.java b/server/src/com/cloud/api/ApiDispatcher.java
index 9061dda..dfe4a1f 100755
--- a/server/src/com/cloud/api/ApiDispatcher.java
+++ b/server/src/com/cloud/api/ApiDispatcher.java
@@ -63,7 +63,7 @@ public class ApiDispatcher {
     ComponentLocator _locator;
     AsyncJobManager _asyncMgr;
     IdentityDao _identityDao;
-    long _createSnapshotQueueSizeLimit;
+    Long _createSnapshotQueueSizeLimit;
 
     // singleton class
     private static ApiDispatcher s_instance = new ApiDispatcher();
@@ -78,7 +78,16 @@ public class ApiDispatcher {
         _identityDao = _locator.getDao(IdentityDao.class);
         ConfigurationDao configDao = _locator.getDao(ConfigurationDao.class);
         Map<String, String> configs = configDao.getConfiguration();
-        _createSnapshotQueueSizeLimit = NumbersUtil.parseInt(configs.get(Config.ConcurrentSnapshotsThresholdPerHost.key()), 10);
+        String strSnapshotLimit = configs.get(Config.ConcurrentSnapshotsThresholdPerHost.key());
+        if (strSnapshotLimit != null) {
+            Long snapshotLimit = NumbersUtil.parseLong(strSnapshotLimit, 1L);
+            if (snapshotLimit <= 0) {
+                s_logger.debug("Global config parameter " + Config.ConcurrentSnapshotsThresholdPerHost.toString()
+                        + " is less or equal 0; defaulting to unlimited");
+            } else {
+                _createSnapshotQueueSizeLimit = snapshotLimit;
+            }
+        }
     }
 
     public void dispatchCreateCmd(BaseAsyncCreateCmd cmd, Map<String, String> params) {
@@ -138,14 +147,20 @@ public class ApiDispatcher {
                 ctx.setStartEventId(Long.valueOf(startEventId));
 
                 // Synchronise job on the object if needed
-                
                 if (asyncCmd.getJob() != null && asyncCmd.getSyncObjId() != null && asyncCmd.getSyncObjType() != null) {
-                    long queueSizeLimit = 1;
+                    Long queueSizeLimit = null;
                     if (asyncCmd.getSyncObjType() != null && asyncCmd.getSyncObjType().equalsIgnoreCase(BaseAsyncCmd.snapshotHostSyncObject)) {
                         queueSizeLimit = _createSnapshotQueueSizeLimit;
+                    } else {
+                        queueSizeLimit = 1L;
+                    }
+                    
+                    if (queueSizeLimit != null) {
+                        _asyncMgr.syncAsyncJobExecution(asyncCmd.getJob(), asyncCmd.getSyncObjType(), 
+                                asyncCmd.getSyncObjId().longValue(), queueSizeLimit);
+                    } else {
+                        s_logger.trace("The queue size is unlimited, skipping the synchronizing");
                     }
-                    _asyncMgr.syncAsyncJobExecution(asyncCmd.getJob(), asyncCmd.getSyncObjType(), 
-                            asyncCmd.getSyncObjId().longValue(), queueSizeLimit);
                 }
             }
 

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/9d07ad8e/server/src/com/cloud/configuration/Config.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/configuration/Config.java b/server/src/com/cloud/configuration/Config.java
index c214bd0..66ac276 100755
--- a/server/src/com/cloud/configuration/Config.java
+++ b/server/src/com/cloud/configuration/Config.java
@@ -350,8 +350,8 @@ public enum Config {
 	VpcCleanupInterval("Advanced", ManagementServer.class, Integer.class, "vpc.cleanup.interval", "3600", "The interval (in seconds) between cleanup for Inactive VPCs", null),
     VpcMaxNetworks("Advanced", ManagementServer.class, Integer.class, "vpc.max.networks", "3", "Maximum number of networks per vpc", null),
     
-	ConcurrentSnapshotsThresholdPerHost("Advanced", ManagementServer.class, String.class, "concurrent.snapshots.threshold.perhost",
-	                "10", "Limits number of snapshots that can be handled by the host concurrently", null);
+	ConcurrentSnapshotsThresholdPerHost("Advanced", ManagementServer.class, Long.class, "concurrent.snapshots.threshold.perhost",
+	                null, "Limits number of snapshots that can be handled by the host concurrently; default is NULL - unlimited", null);
 	
 	
 	private final String _category;