Repository: ambari Updated Branches: refs/heads/trunk 32da806c9 -> 29b6542b0
AMBARI-15703: HostResourceProvider should include maintenance_state when a request is made directly with the host name Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/29b6542b Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/29b6542b Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/29b6542b Branch: refs/heads/trunk Commit: 29b6542b014a0d1c4183a055c6b3bb4600526c12 Parents: 32da806 Author: Nahappan Somasundaram <[email protected]> Authored: Mon Apr 4 15:46:51 2016 -0700 Committer: Nahappan Somasundaram <[email protected]> Committed: Tue Apr 5 11:24:07 2016 -0700 ---------------------------------------------------------------------- .../server/controller/internal/HostResourceProvider.java | 6 +++++- .../server/controller/AmbariManagementControllerTest.java | 5 +++++ .../server/controller/internal/HostResourceProviderTest.java | 7 +++++-- 3 files changed, 15 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/29b6542b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostResourceProvider.java index 1ffd3aa..322eab8 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostResourceProvider.java @@ -663,8 +663,12 @@ public class HostResourceProvider extends AbstractControllerResourceProvider { Set<Cluster> clustersForHost = clusters.getClustersForHost(h.getHostName()); //todo: host can only belong to a single cluster if (clustersForHost != null && clustersForHost.size() != 0) { - r.setClusterName(clustersForHost.iterator().next().getClusterName()); + Cluster clusterForHost = clustersForHost.iterator().next(); + r.setClusterName(clusterForHost.getClusterName()); + r.setDesiredHostConfigs(h.getDesiredHostConfigs(clusterForHost)); + r.setMaintenanceState(h.getMaintenanceState(clusterForHost.getClusterId())); } + response.add(r); } } http://git-wip-us.apache.org/repos/asf/ambari/blob/29b6542b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java index 1612233..d6fcba2 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java @@ -3044,16 +3044,20 @@ public class AmbariManagementControllerTest { if (resp.getHostname().equals("h1")) { Assert.assertEquals("c1", resp.getClusterName()); Assert.assertEquals(2, resp.getHostAttributes().size()); + Assert.assertEquals(MaintenanceState.OFF, resp.getMaintenanceState()); } else if (resp.getHostname().equals("h2")) { Assert.assertEquals("c1", resp.getClusterName()); Assert.assertEquals(2, resp.getHostAttributes().size()); + Assert.assertEquals(MaintenanceState.OFF, resp.getMaintenanceState()); } else if (resp.getHostname().equals("h3")) { Assert.assertEquals("c2", resp.getClusterName()); Assert.assertEquals(3, resp.getHostAttributes().size()); + Assert.assertEquals(MaintenanceState.OFF, resp.getMaintenanceState()); } else if (resp.getHostname().equals("h4")) { //todo: why wouldn't this be null? Assert.assertEquals("", resp.getClusterName()); Assert.assertEquals(4, resp.getHostAttributes().size()); + Assert.assertEquals(null, resp.getMaintenanceState()); } else { fail("Found invalid host"); } @@ -3067,6 +3071,7 @@ public class AmbariManagementControllerTest { HostResponse resp = resps.iterator().next(); Assert.assertEquals("h1", resp.getHostname()); Assert.assertEquals("c1", resp.getClusterName()); + Assert.assertEquals(MaintenanceState.OFF, resp.getMaintenanceState()); Assert.assertEquals(2, resp.getHostAttributes().size()); } http://git-wip-us.apache.org/repos/asf/ambari/blob/29b6542b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostResourceProviderTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostResourceProviderTest.java index 23524d7..c16013a 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostResourceProviderTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostResourceProviderTest.java @@ -217,8 +217,8 @@ public class HostResourceProviderTest extends EasyMockSupport { expect(managementController.getHostComponents(EasyMock.<Set<ServiceComponentHostRequest>>anyObject())) .andReturn(Collections.<ServiceComponentHostResponse>emptySet()).anyTimes(); expect(resourceProviderFactory.getHostResourceProvider(EasyMock.<Set<String>>anyObject(), - EasyMock.<Map<Resource.Type, String>>anyObject(), - eq(managementController))). + EasyMock.<Map<Resource.Type, String>>anyObject(), + eq(managementController))). andReturn(hostResourceProvider).anyTimes(); expect(clusters.getHosts()).andReturn(hosts).anyTimes(); @@ -236,6 +236,7 @@ public class HostResourceProviderTest extends EasyMockSupport { propertyIds.add(HostResourceProvider.HOST_CLUSTER_NAME_PROPERTY_ID); propertyIds.add(HostResourceProvider.HOST_NAME_PROPERTY_ID); + propertyIds.add(HostResourceProvider.HOST_MAINTENANCE_STATE_PROPERTY_ID); Predicate predicate = new PredicateBuilder().property(HostResourceProvider.HOST_CLUSTER_NAME_PROPERTY_ID).equals("Cluster100"). @@ -260,6 +261,8 @@ public class HostResourceProviderTest extends EasyMockSupport { for (Resource resource : resources) { String clusterName = (String) resource.getPropertyValue(HostResourceProvider.HOST_CLUSTER_NAME_PROPERTY_ID); Assert.assertEquals("Cluster100", clusterName); + MaintenanceState maintenanceState = (MaintenanceState)resource.getPropertyValue(HostResourceProvider.HOST_MAINTENANCE_STATE_PROPERTY_ID); + Assert.assertEquals(MaintenanceState.OFF, maintenanceState); } // verify
