You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by sw...@apache.org on 2014/01/22 02:35:32 UTC
git commit: AMBARI-4378. Rolling restart toleration count - support
absolute values only. (swagle)
Updated Branches:
refs/heads/trunk c41796157 -> 4f00cb0bf
AMBARI-4378. Rolling restart toleration count - support absolute values only. (swagle)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/4f00cb0b
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/4f00cb0b
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/4f00cb0b
Branch: refs/heads/trunk
Commit: 4f00cb0bf819ecd70dcf673f57b3d1351e50a795
Parents: c417961
Author: Siddharth Wagle <sw...@hortonworks.com>
Authored: Tue Jan 21 17:34:25 2014 -0800
Committer: Siddharth Wagle <sw...@hortonworks.com>
Committed: Tue Jan 21 17:34:25 2014 -0800
----------------------------------------------------------------------
.../scheduler/ExecutionScheduleManager.java | 16 +++++++++-----
.../scheduler/ExecutionScheduleManagerTest.java | 23 ++++++++++----------
2 files changed, 22 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/4f00cb0b/ambari-server/src/main/java/org/apache/ambari/server/scheduler/ExecutionScheduleManager.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/scheduler/ExecutionScheduleManager.java b/ambari-server/src/main/java/org/apache/ambari/server/scheduler/ExecutionScheduleManager.java
index a3bae50..d6d0439 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/scheduler/ExecutionScheduleManager.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/scheduler/ExecutionScheduleManager.java
@@ -610,6 +610,15 @@ public class ExecutionScheduleManager {
return convertToBatchRequestResponse(response);
}
+ /**
+ * Check if the allowed threshold for failed tasks has exceeded.
+ * This needs to be an absolute value of tasks.
+ * @param executionId
+ * @param clusterName
+ * @param taskCounts
+ * @return
+ * @throws AmbariException
+ */
public boolean hasToleranceThresholdExceeded(Long executionId,
String clusterName, Map<String, Integer> taskCounts) throws AmbariException {
@@ -621,14 +630,11 @@ public class ExecutionScheduleManager {
+ executionId);
}
- int percentageFailed =
- (int) ((taskCounts.get(BatchRequestJob.BATCH_REQUEST_FAILED_TASKS_KEY) * 100.0f) /
- taskCounts.get(BatchRequestJob.BATCH_REQUEST_TOTAL_TASKS_KEY));
-
BatchSettings batchSettings = requestExecution.getBatch().getBatchSettings();
if (batchSettings != null
&& batchSettings.getTaskFailureToleranceLimit() != null) {
- return percentageFailed > batchSettings.getTaskFailureToleranceLimit();
+ return taskCounts.get(BatchRequestJob.BATCH_REQUEST_FAILED_TASKS_KEY) >
+ batchSettings.getTaskFailureToleranceLimit();
}
return false;
http://git-wip-us.apache.org/repos/asf/ambari/blob/4f00cb0b/ambari-server/src/test/java/org/apache/ambari/server/scheduler/ExecutionScheduleManagerTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/scheduler/ExecutionScheduleManagerTest.java b/ambari-server/src/test/java/org/apache/ambari/server/scheduler/ExecutionScheduleManagerTest.java
index 24e70eb..7b15c3b 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/scheduler/ExecutionScheduleManagerTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/scheduler/ExecutionScheduleManagerTest.java
@@ -487,13 +487,11 @@ public class ExecutionScheduleManagerTest {
String clusterName = "c1";
BatchSettings batchSettings = new BatchSettings();
- batchSettings.setTaskFailureToleranceLimit(10);
+ batchSettings.setTaskFailureToleranceLimit(1);
Map<Long, RequestExecution> executionMap = new HashMap<Long, RequestExecution>();
executionMap.put(executionId, requestExecutionMock);
-
-
expect(clustersMock.getCluster(clusterName)).andReturn(clusterMock).anyTimes();
expect(clusterMock.getAllRequestExecutions()).andReturn(executionMap).anyTimes();
expect(requestExecutionMock.getBatch()).andReturn(batchMock).anyTimes();
@@ -502,8 +500,9 @@ public class ExecutionScheduleManagerTest {
replay(clustersMock, clusterMock, configurationMock, requestExecutionMock,
executionSchedulerMock, batchMock);
- ExecutionScheduleManager scheduleManager = new ExecutionScheduleManager(configurationMock, executionSchedulerMock,
- tokenStorageMock, clustersMock, actionDBAccessorMock, gson);
+ ExecutionScheduleManager scheduleManager =
+ new ExecutionScheduleManager(configurationMock, executionSchedulerMock,
+ tokenStorageMock, clustersMock, actionDBAccessorMock, gson);
HashMap<String, Integer> taskCounts = new HashMap<String, Integer>() {{
put(BatchRequestJob.BATCH_REQUEST_FAILED_TASKS_KEY, 2);
@@ -527,6 +526,7 @@ public class ExecutionScheduleManagerTest {
Configuration configurationMock = createNiceMock(Configuration.class);
ExecutionScheduler executionSchedulerMock = createMock(ExecutionScheduler.class);
InternalTokenStorage tokenStorageMock = createMock(InternalTokenStorage.class);
+ ActionDBAccessor actionDBAccessorMock = createMock(ActionDBAccessor.class);
Gson gson = new Gson();
RequestExecution requestExecutionMock = createMock(RequestExecution.class);
Batch batchMock = createMock(Batch.class);
@@ -542,9 +542,10 @@ public class ExecutionScheduleManagerTest {
Map<Long, RequestExecution> executionMap = new HashMap<Long, RequestExecution>();
executionMap.put(executionId, requestExecutionMock);
- ExecutionScheduleManager scheduleManager = createMockBuilder(ExecutionScheduleManager.class).
- withConstructor(configurationMock, executionSchedulerMock,
- tokenStorageMock, clustersMock, gson).createMock();
+ ExecutionScheduleManager scheduleManager =
+ createMockBuilder(ExecutionScheduleManager.class).withConstructor
+ (configurationMock, executionSchedulerMock, tokenStorageMock,
+ clustersMock, actionDBAccessorMock, gson).createMock();
expectLastCall().anyTimes();
@@ -568,14 +569,12 @@ public class ExecutionScheduleManagerTest {
replay(clustersMock, clusterMock, configurationMock, requestExecutionMock,
executionSchedulerMock, scheduleManager, batchMock, batchRequestMock,
- triggerMock, jobDetailMock);
-
+ triggerMock, jobDetailMock, actionDBAccessorMock);
scheduleManager.finalizeBatch(executionId, clusterName);
-
verify(clustersMock, clusterMock, configurationMock, requestExecutionMock,
executionSchedulerMock, scheduleManager, batchMock, batchRequestMock,
- triggerMock, jobDetailMock);
+ triggerMock, jobDetailMock, actionDBAccessorMock);
}
}