You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ds...@apache.org on 2014/09/22 19:18:16 UTC
git commit: AMBARI-7355 Add possibility to filter config groups
through api by host name (dsen)
Repository: ambari
Updated Branches:
refs/heads/trunk 57030a4d1 -> 802df768a
AMBARI-7355 Add possibility to filter config groups through api by host name (dsen)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/802df768
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/802df768
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/802df768
Branch: refs/heads/trunk
Commit: 802df768ac0415e91e951c61592ea370a5975957
Parents: 57030a4
Author: Dmytro Sen <ds...@hortonworks.com>
Authored: Mon Sep 22 20:18:13 2014 +0300
Committer: Dmytro Sen <ds...@hortonworks.com>
Committed: Mon Sep 22 20:18:13 2014 +0300
----------------------------------------------------------------------
.../internal/ConfigGroupResourceProvider.java | 15 ++++++--
.../ConfigGroupResourceProviderTest.java | 37 ++++++++++++++++++--
2 files changed, 48 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/802df768/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProvider.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProvider.java
index 46e9016..c73a8d4 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProvider.java
@@ -78,6 +78,8 @@ public class ConfigGroupResourceProvider extends
.getPropertyId("ConfigGroup", "service_config_version_note");
protected static final String CONFIGGROUP_HOSTNAME_PROPERTY_ID =
PropertyHelper.getPropertyId(null, "host_name");
+ protected static final String CONFIGGROUP_HOSTS_HOSTNAME_PROPERTY_ID =
+ PropertyHelper.getPropertyId("ConfigGroup", "hosts/host_name");
public static final String CONFIGGROUP_HOSTS_PROPERTY_ID = PropertyHelper
.getPropertyId("ConfigGroup", "hosts");
public static final String CONFIGGROUP_CONFIGS_PROPERTY_ID =
@@ -138,6 +140,10 @@ public class ConfigGroupResourceProvider extends
Set<String> requestedIds = getRequestPropertyIds(request, predicate);
Set<Resource> resources = new HashSet<Resource>();
+ if (requestedIds.contains(CONFIGGROUP_HOSTS_HOSTNAME_PROPERTY_ID)) {
+ requestedIds.add(CONFIGGROUP_HOSTS_PROPERTY_ID);
+ }
+
for (ConfigGroupResponse response : responses) {
Resource resource = new ResourceImpl(Resource.Type.ConfigGroup);
@@ -618,14 +624,19 @@ public class ConfigGroupResourceProvider extends
Map<String, Config> configurations = new HashMap<String, Config>();
Set<String> hosts = new HashSet<String>();
+ String hostnameKey = CONFIGGROUP_HOSTNAME_PROPERTY_ID;
Object hostObj = properties.get(CONFIGGROUP_HOSTS_PROPERTY_ID);
+ if (hostObj == null) {
+ hostnameKey = CONFIGGROUP_HOSTS_HOSTNAME_PROPERTY_ID;
+ hostObj = properties.get(CONFIGGROUP_HOSTS_HOSTNAME_PROPERTY_ID);
+ }
if (hostObj != null) {
if (hostObj instanceof HashSet<?>) {
try {
Set<Map<String, String>> hostsSet = (Set<Map<String, String>>) hostObj;
for (Map<String, String> hostMap : hostsSet) {
- if (hostMap.containsKey(CONFIGGROUP_HOSTNAME_PROPERTY_ID)) {
- String hostname = hostMap.get(CONFIGGROUP_HOSTNAME_PROPERTY_ID);
+ if (hostMap.containsKey(hostnameKey)) {
+ String hostname = hostMap.get(hostnameKey);
hosts.add(hostname);
}
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/802df768/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProviderTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProviderTest.java
index 4194979..db324e5 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProviderTest.java
@@ -432,7 +432,7 @@ public class ConfigGroupResourceProviderTest {
assertEquals("t3", resources.iterator().next().getPropertyValue
(ConfigGroupResourceProvider.CONFIGGROUP_TAG_PROPERTY_ID));
- // Read by hostname
+ // Read by hostname (hosts=h1)
predicate = new PredicateBuilder().property(ConfigGroupResourceProvider
.CONFIGGROUP_CLUSTER_NAME_PROPERTY_ID).equals("Cluster100").and()
.property(ConfigGroupResourceProvider.CONFIGGROUP_HOSTS_PROPERTY_ID)
@@ -448,8 +448,24 @@ public class ConfigGroupResourceProviderTest {
assertEquals("h1", hostSet.iterator().next().get
(ConfigGroupResourceProvider.CONFIGGROUP_HOSTNAME_PROPERTY_ID));
+ // Read by hostname (hosts/host_name=h1)
+ predicate = new PredicateBuilder().property(ConfigGroupResourceProvider
+ .CONFIGGROUP_CLUSTER_NAME_PROPERTY_ID).equals("Cluster100").and()
+ .property(ConfigGroupResourceProvider.CONFIGGROUP_HOSTS_HOSTNAME_PROPERTY_ID)
+ .equals("h1").toPredicate();
+
+ resources = resourceProvider.getResources(request, predicate);
- // Read by tag and hostname - Positive
+ assertEquals(1, resources.size());
+ hostSet = (Set<Map<String, Object>>)
+ resources.iterator().next()
+ .getPropertyValue(ConfigGroupResourceProvider
+ .CONFIGGROUP_HOSTS_PROPERTY_ID);
+ assertEquals("h1", hostSet.iterator().next().get
+ (ConfigGroupResourceProvider.CONFIGGROUP_HOSTNAME_PROPERTY_ID));
+
+
+ // Read by tag and hostname (hosts=h1) - Positive
predicate = new PredicateBuilder().property(ConfigGroupResourceProvider
.CONFIGGROUP_CLUSTER_NAME_PROPERTY_ID).equals("Cluster100").and()
.property(ConfigGroupResourceProvider.CONFIGGROUP_TAG_PROPERTY_ID)
@@ -466,6 +482,23 @@ public class ConfigGroupResourceProviderTest {
assertEquals("h1", hostSet.iterator().next().get
(ConfigGroupResourceProvider.CONFIGGROUP_HOSTNAME_PROPERTY_ID));
+ // Read by tag and hostname (hosts/host_name=h1) - Positive
+ predicate = new PredicateBuilder().property(ConfigGroupResourceProvider
+ .CONFIGGROUP_CLUSTER_NAME_PROPERTY_ID).equals("Cluster100").and()
+ .property(ConfigGroupResourceProvider.CONFIGGROUP_TAG_PROPERTY_ID)
+ .equals("t4").and().property(ConfigGroupResourceProvider
+ .CONFIGGROUP_HOSTS_HOSTNAME_PROPERTY_ID).equals("h1").toPredicate();
+
+ resources = resourceProvider.getResources(request, predicate);
+
+ assertEquals(1, resources.size());
+ hostSet = (Set<Map<String, Object>>)
+ resources.iterator().next()
+ .getPropertyValue(ConfigGroupResourceProvider
+ .CONFIGGROUP_HOSTS_PROPERTY_ID);
+ assertEquals("h1", hostSet.iterator().next().get
+ (ConfigGroupResourceProvider.CONFIGGROUP_HOSTNAME_PROPERTY_ID));
+
// Read by id
predicate = new PredicateBuilder().property(ConfigGroupResourceProvider
.CONFIGGROUP_ID_PROPERTY_ID).equals(11L).and().property