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 2013/03/22 21:34:57 UTC
svn commit: r1459973 - in /incubator/ambari/trunk: ./
ambari-server/src/main/java/org/apache/ambari/server/actionmanager/
ambari-server/src/main/java/org/apache/ambari/server/controller/
ambari-server/src/main/java/org/apache/ambari/server/controller/i...
Author: swagle
Date: Fri Mar 22 20:34:57 2013
New Revision: 1459973
URL: http://svn.apache.org/r1459973
Log:
AMBARI-1688. API support to return 10 most recent requests. (swagle)
Modified:
incubator/ambari/trunk/CHANGES.txt
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/ActionDBAccessorImpl.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RequestResourceProvider.java
incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostRoleCommandDAO.java
incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/actionmanager/TestActionDBAccessorImpl.java
Modified: incubator/ambari/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/CHANGES.txt?rev=1459973&r1=1459972&r2=1459973&view=diff
==============================================================================
--- incubator/ambari/trunk/CHANGES.txt (original)
+++ incubator/ambari/trunk/CHANGES.txt Fri Mar 22 20:34:57 2013
@@ -509,6 +509,8 @@ Trunk (unreleased changes):
BUG FIXES
+ AMBARI-1688. API support to return 10 most recent requests. (swagle)
+
AMBARI-1439. rrd file location should be read from global config.
New patch for reopened bug. (swagle)
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/ActionDBAccessorImpl.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/ActionDBAccessorImpl.java?rev=1459973&r1=1459972&r2=1459973&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/ActionDBAccessorImpl.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/ActionDBAccessorImpl.java Fri Mar 22 20:34:57 2013
@@ -323,21 +323,22 @@ public class ActionDBAccessorImpl implem
@Override
public List<Long> getRequestsByStatus(RequestStatus status) {
boolean match = true;
+ boolean checkAllTasks = false;
Set<HostRoleStatus> statuses = new HashSet<HostRoleStatus>();
if (status == RequestStatus.IN_PROGRESS) {
statuses.addAll( Arrays.asList(HostRoleStatus.PENDING,
HostRoleStatus.IN_PROGRESS, HostRoleStatus.QUEUED));
} else if (status == RequestStatus.COMPLETED) {
match = false;
+ checkAllTasks = true;
statuses.addAll( Arrays.asList(HostRoleStatus.PENDING,
HostRoleStatus.IN_PROGRESS, HostRoleStatus.QUEUED,
HostRoleStatus.ABORTED, HostRoleStatus.FAILED,
- HostRoleStatus.FAILED, HostRoleStatus.TIMEDOUT));
+ HostRoleStatus.TIMEDOUT));
} else if (status == RequestStatus.FAILED) {
statuses.addAll( Arrays.asList(HostRoleStatus.ABORTED,
- HostRoleStatus.FAILED, HostRoleStatus.FAILED,
- HostRoleStatus.TIMEDOUT));
+ HostRoleStatus.FAILED, HostRoleStatus.TIMEDOUT));
}
- return hostRoleCommandDAO.getRequestsByTaskStatus(statuses, match);
+ return hostRoleCommandDAO.getRequestsByTaskStatus(statuses, match, checkAllTasks);
}
}
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java?rev=1459973&r1=1459972&r2=1459973&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java Fri Mar 22 20:34:57 2013
@@ -3497,7 +3497,7 @@ public class AmbariManagementControllerI
RequestStatusRequest request) throws AmbariException{
Set<RequestStatusResponse> response = new HashSet<RequestStatusResponse>();
if (request.getRequestId() == null) {
- RequestStatus requestStatus = RequestStatus.IN_PROGRESS;
+ RequestStatus requestStatus = null;
if (request.getRequestStatus() != null) {
requestStatus = RequestStatus.valueOf(request.getRequestStatus());
}
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RequestResourceProvider.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RequestResourceProvider.java?rev=1459973&r1=1459972&r2=1459973&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RequestResourceProvider.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RequestResourceProvider.java Fri Mar 22 20:34:57 2013
@@ -100,6 +100,9 @@ class RequestResourceProvider extends Ab
setResourceProperty(resource, REQUEST_CLUSTER_NAME_PROPERTY_ID, clusterName, requestedIds);
setResourceProperty(resource, REQUEST_ID_PROPERTY_ID, response.getRequestId(), requestedIds);
setResourceProperty(resource, REQUEST_CONTEXT_ID, response.getRequestContext(), requestedIds);
+ if (requestStatusRequest.getRequestStatus() != null) {
+ setResourceProperty(resource, REQUEST_STATUS_PROPERTY_ID, requestStatusRequest.getRequestStatus(), requestedIds);
+ }
resources.add(resource);
}
return resources;
Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostRoleCommandDAO.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostRoleCommandDAO.java?rev=1459973&r1=1459972&r2=1459973&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostRoleCommandDAO.java (original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostRoleCommandDAO.java Fri Mar 22 20:34:57 2013
@@ -148,18 +148,45 @@ public class HostRoleCommandDAO {
@Transactional
public List<Long> getRequestsByTaskStatus(
- Collection<HostRoleStatus> statuses, boolean match) {
- String queryStr = "SELECT DISTINCT command.requestId "
- + " FROM HostRoleCommandEntity command WHERE "
- + " command.status";
- if (!match) {
- queryStr += " NOT";
+ Collection<HostRoleStatus> statuses, boolean match, boolean checkAllTasks) {
+ List<Long> results = null;
+ StringBuilder queryStr = new StringBuilder();
+ Integer resultsLimit = null;
+ queryStr.append("SELECT DISTINCT command.requestId ").append(
+ "FROM HostRoleCommandEntity command ");
+ if (statuses != null && !statuses.isEmpty()) {
+ queryStr.append("WHERE ");
+
+ if (checkAllTasks) {
+ queryStr.append("command.requestId ");
+ if (!match) {
+ queryStr.append("NOT ");
+ }
+ queryStr.append("IN (").append("SELECT c.requestId ")
+ .append("FROM HostRoleCommandEntity c ")
+ .append("WHERE c.requestId = command.requestId ")
+ .append("AND c.status IN ?1) ");
+ } else {
+ queryStr.append("command.status ");
+ if (!match) {
+ queryStr.append("NOT ");
+ }
+ queryStr.append("IN ?1 ");
+ }
+ resultsLimit = 20;
}
- queryStr += " IN ?1"
- + " ORDER BY command.requestId DESC";
- TypedQuery<Long> query = entityManagerProvider.get().createQuery(queryStr,
+ queryStr.append("ORDER BY command.requestId DESC");
+ TypedQuery<Long> query = entityManagerProvider.get().createQuery(queryStr.toString(),
Long.class);
- return daoUtils.selectList(query, statuses);
+ if (resultsLimit != null) {
+ query.setMaxResults(resultsLimit);
+ }
+ if (statuses != null && !statuses.isEmpty()) {
+ results = daoUtils.selectList(query, statuses);
+ } else {
+ results = daoUtils.selectList(query);
+ }
+ return results;
}
}
Modified: incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/actionmanager/TestActionDBAccessorImpl.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/actionmanager/TestActionDBAccessorImpl.java?rev=1459973&r1=1459972&r2=1459973&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/actionmanager/TestActionDBAccessorImpl.java (original)
+++ incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/actionmanager/TestActionDBAccessorImpl.java Fri Mar 22 20:34:57 2013
@@ -209,6 +209,21 @@ public class TestActionDBAccessorImpl {
}
+ @Test
+ public void testGetRequestsByStatus() throws AmbariException {
+ List<Long> requestIds = new ArrayList<Long>();
+ requestIds.add(requestId + 1);
+ requestIds.add(requestId);
+ populateActionDB(db, hostName, requestId, stageId);
+ clusters.addHost("host2");
+ clusters.getHost("host2").persist();
+ populateActionDB(db, hostName, requestId + 1, stageId);
+ List<Long> requestIdsResult = db.getRequestsByStatus(null);
+
+ assertNotNull("List of request IDs is null", requestIdsResult);
+ assertEquals("Request IDs not matches", requestIds, requestIdsResult);
+ }
+
private void populateActionDB(ActionDBAccessor db, String hostname,
long requestId, long stageId) {
Stage s = new Stage(requestId, "/a/b", "cluster1", "action db accessor test");