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/05/31 20:25:37 UTC
[1/2] git commit: AMBARI-5981. Hosts API should provide count of
filtered hosts. Changed key. (swagle)
Repository: ambari
Updated Branches:
refs/heads/trunk 11dd9df85 -> 0028d667c
AMBARI-5981. Hosts API should provide count of filtered hosts. Changed key. (swagle)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/0028d667
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/0028d667
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/0028d667
Branch: refs/heads/trunk
Commit: 0028d667ca01cbf7460f4ec7ddd2e6706deb018a
Parents: 0972cf0
Author: Siddharth Wagle <sw...@hortonworks.com>
Authored: Sat May 31 10:54:37 2014 -0700
Committer: Siddharth Wagle <sw...@hortonworks.com>
Committed: Sat May 31 10:54:53 2014 -0700
----------------------------------------------------------------------
.../ambari/server/api/services/serializers/JsonSerializer.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/0028d667/ambari-server/src/main/java/org/apache/ambari/server/api/services/serializers/JsonSerializer.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/serializers/JsonSerializer.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/serializers/JsonSerializer.java
index c9ec368..59d5a8a 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/serializers/JsonSerializer.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/serializers/JsonSerializer.java
@@ -218,7 +218,7 @@ public class JsonSerializer implements ResultSerializer {
private void writeItemCount(TreeNode<Resource> node) throws IOException {
String countProp = node.getProperty("count");
if (countProp != null) {
- m_generator.writeStringField("itemCount", countProp);
+ m_generator.writeStringField("itemTotal", countProp);
// Write once
node.setProperty("count", null);
}
[2/2] git commit: AMBARI-5981. Hosts API should provide count of
filtered hosts. (swagle)
Posted by sw...@apache.org.
AMBARI-5981. Hosts API should provide count of filtered hosts. (swagle)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/0972cf07
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/0972cf07
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/0972cf07
Branch: refs/heads/trunk
Commit: 0972cf07ebd0668de12336645ce47c50fdcfb93b
Parents: 11dd9df
Author: Siddharth Wagle <sw...@hortonworks.com>
Authored: Fri May 30 23:19:24 2014 -0700
Committer: Siddharth Wagle <sw...@hortonworks.com>
Committed: Sat May 31 10:54:53 2014 -0700
----------------------------------------------------------------------
.../apache/ambari/server/api/query/QueryImpl.java | 1 +
.../server/api/resources/BaseResourceDefinition.java | 1 -
.../api/services/serializers/JsonSerializer.java | 15 ++++++++++++++-
.../controller/internal/ClusterControllerImpl.java | 14 +++++++++++---
.../server/controller/internal/PageResponseImpl.java | 13 ++++++++++---
.../ambari/server/controller/spi/PageResponse.java | 6 ++++++
.../internal/ClusterControllerImplTest.java | 6 ++++++
.../controller/internal/PageResponseImplTest.java | 8 ++++----
8 files changed, 52 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/0972cf07/ambari-server/src/main/java/org/apache/ambari/server/api/query/QueryImpl.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/query/QueryImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/api/query/QueryImpl.java
index 73ad19a..63426cb 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/api/query/QueryImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/api/query/QueryImpl.java
@@ -674,6 +674,7 @@ public class QueryImpl implements Query, ResourceInstance {
pageRequest, sortRequest
);
iterResource = pageResponse.getIterable();
+ tree.setProperty("count", pageResponse.getTotalResourceCount().toString());
}
int count = 1;
http://git-wip-us.apache.org/repos/asf/ambari/blob/0972cf07/ambari-server/src/main/java/org/apache/ambari/server/api/resources/BaseResourceDefinition.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/resources/BaseResourceDefinition.java b/ambari-server/src/main/java/org/apache/ambari/server/api/resources/BaseResourceDefinition.java
index 1db8518..1642264 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/api/resources/BaseResourceDefinition.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/api/resources/BaseResourceDefinition.java
@@ -68,7 +68,6 @@ public abstract class BaseResourceDefinition implements ResourceDefinition {
public List<PostProcessor> getPostProcessors() {
List<PostProcessor> listProcessors = new ArrayList<PostProcessor>();
listProcessors.add(new BaseHrefPostProcessor());
-
return listProcessors;
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/0972cf07/ambari-server/src/main/java/org/apache/ambari/server/api/services/serializers/JsonSerializer.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/serializers/JsonSerializer.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/serializers/JsonSerializer.java
index 35a9856..c9ec368 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/serializers/JsonSerializer.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/serializers/JsonSerializer.java
@@ -61,7 +61,8 @@ public class JsonSerializer implements ResultSerializer {
return serializeError(result.getStatus());
}
- processNode(result.getResultTree());
+ TreeNode<Resource> treeNode = result.getResultTree();
+ processNode(treeNode);
m_generator.close();
return bytesOut.toString("UTF-8");
@@ -105,12 +106,14 @@ public class JsonSerializer implements ResultSerializer {
m_generator.writeStartObject();
writeHref(node);
+ writeItemCount(node);
Resource r = node.getObject();
if (r != null) {
handleResourceProperties(getTreeProperties(r.getPropertiesMap()));
}
}
+
if (isArray(node)) {
m_generator.writeArrayFieldStart(node.getName());
}
@@ -122,6 +125,7 @@ public class JsonSerializer implements ResultSerializer {
if (isArray(node)) {
m_generator.writeEndArray();
}
+
if (isObject(node)) {
m_generator.writeEndObject();
}
@@ -210,4 +214,13 @@ public class JsonSerializer implements ResultSerializer {
m_generator.writeStringField("href", hrefProp);
}
}
+
+ private void writeItemCount(TreeNode<Resource> node) throws IOException {
+ String countProp = node.getProperty("count");
+ if (countProp != null) {
+ m_generator.writeStringField("itemCount", countProp);
+ // Write once
+ node.setProperty("count", null);
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/0972cf07/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterControllerImpl.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterControllerImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterControllerImpl.java
index b057334..a54b303 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterControllerImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterControllerImpl.java
@@ -175,6 +175,7 @@ public class ClusterControllerImpl implements ClusterController {
ResourcePredicateEvaluator evaluator = provider instanceof ResourcePredicateEvaluator ?
(ResourcePredicateEvaluator) provider : DEFAULT_RESOURCE_PREDICATE_EVALUATOR;
+ int totalCount = 0;
if (!providerResources.isEmpty()) {
Comparator<Resource> resourceComparator = comparator;
if (sortRequest != null) {
@@ -184,6 +185,7 @@ public class ClusterControllerImpl implements ClusterController {
TreeSet<Resource> sortedResources = new TreeSet<Resource>(resourceComparator);
sortedResources.addAll(providerResources);
+ totalCount = sortedResources.size();
if (pageRequest != null) {
switch (pageRequest.getStartingPoint()) {
@@ -207,9 +209,11 @@ public class ClusterControllerImpl implements ClusterController {
resources = sortedResources;
} else {
resources = providerResources;
+ totalCount = providerResources.size();
}
- return new PageResponseImpl(new ResourceIterable(resources, predicate, evaluator), 0, null, null);
+ return new PageResponseImpl(new ResourceIterable(resources, predicate,
+ evaluator), 0, null, null, totalCount);
}
/**
@@ -565,7 +569,9 @@ public class ClusterControllerImpl implements ClusterController {
predicate, evaluator),
currentOffset,
previous,
- iterator.hasNext() ? iterator.next() : null);
+ iterator.hasNext() ? iterator.next() : null,
+ resources.size()
+ );
}
/**
@@ -606,7 +612,9 @@ public class ClusterControllerImpl implements ClusterController {
LinkedHashSet<Resource>(pageResources), predicate, evaluator),
currentOffset + 1,
iterator.hasNext() ? iterator.next() : null,
- next);
+ next,
+ resources.size()
+ );
}
/**
http://git-wip-us.apache.org/repos/asf/ambari/blob/0972cf07/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/PageResponseImpl.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/PageResponseImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/PageResponseImpl.java
index f115ee2..544f612 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/PageResponseImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/PageResponseImpl.java
@@ -25,18 +25,20 @@ import org.apache.ambari.server.controller.spi.Resource;
* Basic page response implementation.
*/
public class PageResponseImpl implements PageResponse{
-
-
private final Iterable<Resource> iterable;
private final int offset;
private final Resource previousResource;
private final Resource nextResource;
+ private final Integer totalResourceCount;
- public PageResponseImpl(Iterable<Resource> iterable, int offset, Resource previousResource, Resource nextResource) {
+ public PageResponseImpl(Iterable<Resource> iterable, int offset,
+ Resource previousResource, Resource nextResource,
+ Integer totalResourceCount) {
this.iterable = iterable;
this.offset = offset;
this.previousResource = previousResource;
this.nextResource = nextResource;
+ this.totalResourceCount = totalResourceCount;
}
@Override
@@ -58,4 +60,9 @@ public class PageResponseImpl implements PageResponse{
public Resource getNextResource() {
return nextResource;
}
+
+ @Override
+ public Integer getTotalResourceCount() {
+ return totalResourceCount;
+ }
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/0972cf07/ambari-server/src/main/java/org/apache/ambari/server/controller/spi/PageResponse.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/spi/PageResponse.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/spi/PageResponse.java
index 1d67927..9e4d6ab 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/spi/PageResponse.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/spi/PageResponse.java
@@ -49,4 +49,10 @@ public interface PageResponse {
* @return the next resource after this page; null if this is the last page
*/
public Resource getNextResource();
+
+ /**
+ * Get the count of total resources without account for paging request.
+ * @return total count
+ */
+ public Integer getTotalResourceCount();
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/0972cf07/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterControllerImplTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterControllerImplTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterControllerImplTest.java
index f2b1487..4458799 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterControllerImplTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterControllerImplTest.java
@@ -309,6 +309,8 @@ public class ClusterControllerImplTest {
Assert.assertEquals(Resource.Type.Host, list.get(1).getType());
Assert.assertEquals("host:2", (String) list.get(2).getPropertyValue(PropertyHelper.getPropertyId("Hosts", "host_name")));
Assert.assertEquals(Resource.Type.Host, list.get(2).getType());
+ // Check total count
+ Assert.assertEquals(4, pageResponse.getTotalResourceCount().intValue());
}
@Test
@@ -352,6 +354,8 @@ public class ClusterControllerImplTest {
Assert.assertEquals(Resource.Type.Host, list.get(1).getType());
Assert.assertEquals("host:3", (String) list.get(2).getPropertyValue(PropertyHelper.getPropertyId("Hosts", "host_name")));
Assert.assertEquals(Resource.Type.Host, list.get(2).getType());
+ // Check total count
+ Assert.assertEquals(4, pageResponse.getTotalResourceCount().intValue());
}
@Test
@@ -403,6 +407,8 @@ public class ClusterControllerImplTest {
Assert.assertEquals(Resource.Type.Host, list.get(1).getType());
Assert.assertEquals("host:2", (String) list.get(2).getPropertyValue(PropertyHelper.getPropertyId("Hosts", "host_name")));
Assert.assertEquals(Resource.Type.Host, list.get(2).getType());
+ // Check total count
+ Assert.assertEquals(4, pageResponse.getTotalResourceCount().intValue());
}
@Test
http://git-wip-us.apache.org/repos/asf/ambari/blob/0972cf07/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/PageResponseImplTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/PageResponseImplTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/PageResponseImplTest.java
index 3177e88..c6716d4 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/PageResponseImplTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/PageResponseImplTest.java
@@ -36,7 +36,7 @@ public class PageResponseImplTest {
Resource prev = new ResourceImpl(Resource.Type.Cluster);
Resource next = new ResourceImpl(Resource.Type.Cluster);
- PageResponse response = new PageResponseImpl(iterable, 99, prev, next);
+ PageResponse response = new PageResponseImpl(iterable, 99, prev, next, 0);
Assert.assertEquals(iterable, response.getIterable());
}
@@ -47,7 +47,7 @@ public class PageResponseImplTest {
Resource prev = new ResourceImpl(Resource.Type.Cluster);
Resource next = new ResourceImpl(Resource.Type.Cluster);
- PageResponse response = new PageResponseImpl(iterable, 99, prev, next);
+ PageResponse response = new PageResponseImpl(iterable, 99, prev, next, 0);
Assert.assertEquals(99, response.getOffset());
}
@@ -58,7 +58,7 @@ public class PageResponseImplTest {
Resource prev = new ResourceImpl(Resource.Type.Cluster);
Resource next = new ResourceImpl(Resource.Type.Cluster);
- PageResponse response = new PageResponseImpl(iterable, 99, prev, next);
+ PageResponse response = new PageResponseImpl(iterable, 99, prev, next, 0);
Assert.assertEquals(prev, response.getPreviousResource());
}
@@ -69,7 +69,7 @@ public class PageResponseImplTest {
Resource prev = new ResourceImpl(Resource.Type.Cluster);
Resource next = new ResourceImpl(Resource.Type.Cluster);
- PageResponse response = new PageResponseImpl(iterable, 99, prev, next);
+ PageResponse response = new PageResponseImpl(iterable, 99, prev, next, 0);
Assert.assertEquals(next, response.getNextResource());
}