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;