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());
   }