You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ad...@apache.org on 2019/01/31 15:51:21 UTC

[ambari] branch branch-2.6 updated: AMBARI-25136. Scale hosts ignores rack_info (#2800)

This is an automated email from the ASF dual-hosted git repository.

adoroszlai pushed a commit to branch branch-2.6
in repository https://gitbox.apache.org/repos/asf/ambari.git


The following commit(s) were added to refs/heads/branch-2.6 by this push:
     new cde0c47  AMBARI-25136. Scale hosts ignores rack_info (#2800)
cde0c47 is described below

commit cde0c47195b723d0bc211c22dacf8c450d865111
Author: Doroszlai, Attila <64...@users.noreply.github.com>
AuthorDate: Thu Jan 31 16:51:15 2019 +0100

    AMBARI-25136. Scale hosts ignores rack_info (#2800)
---
 .../controller/internal/ScaleClusterRequest.java      |  2 ++
 .../controller/internal/ScaleClusterRequestTest.java  | 19 +++++++++++++++++++
 2 files changed, 21 insertions(+)

diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ScaleClusterRequest.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ScaleClusterRequest.java
index 9434f3b..7a799bd 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ScaleClusterRequest.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ScaleClusterRequest.java
@@ -180,6 +180,8 @@ public class ScaleClusterRequest extends BaseClusterRequest {
     String rackInfo = null;
     if (properties.containsKey(HostResourceProvider.HOST_RACK_INFO_PROPERTY_ID)) {
       rackInfo = (String) properties.get(HostResourceProvider.HOST_RACK_INFO_PROPERTY_ID);
+    } else if (properties.containsKey(HostResourceProvider.RACK_INFO_PROPERTY_ID)) {
+      rackInfo = (String) properties.get(HostResourceProvider.RACK_INFO_PROPERTY_ID);
     } else {
       LOGGER.debug("No rack info provided");
     }
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ScaleClusterRequestTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ScaleClusterRequestTest.java
index 3f96944..5069994 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ScaleClusterRequestTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ScaleClusterRequestTest.java
@@ -50,6 +50,8 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
+import com.google.common.collect.ImmutableMap;
+
 /**
  * Unit tests for ScaleClusterRequest.
  */
@@ -64,6 +66,7 @@ public class ScaleClusterRequestTest {
   private static final String GROUP2_NAME = "group2";
   private static final String GROUP3_NAME = "group3";
   private static final String PREDICATE = "test/prop=foo";
+  private static final String RACK_A = "/rack/a";
 
   private static final BlueprintFactory blueprintFactory = createStrictMock(BlueprintFactory.class);
   private static final Blueprint blueprint = createNiceMock(Blueprint.class);
@@ -130,6 +133,14 @@ public class ScaleClusterRequestTest {
     assertTrue(group1Info.getHostNames().contains(HOST1_NAME));
     assertEquals(1, group1Info.getRequestedHostCount());
     assertNull(group1Info.getPredicate());
+    assertEquals(ImmutableMap.of(HOST1_NAME, RACK_A), group1Info.getHostRackInfo());
+  }
+
+  @Test
+  public void acceptsRackInfo() throws Exception {
+    Map<String, Object> props = createScaleClusterPropertiesGroup1_HostName(CLUSTER_NAME, BLUEPRINT_NAME);
+    addSingleHostByName(props);
+    addSingleHostByName(replaceWithPlainRackInfoKey(props));
   }
 
   @Test
@@ -350,6 +361,7 @@ public class ScaleClusterRequestTest {
     properties.put(HostResourceProvider.BLUEPRINT_PROPERTY_ID, blueprintName);
     properties.put(HostResourceProvider.HOST_GROUP_PROPERTY_ID, GROUP1_NAME);
     properties.put(HostResourceProvider.HOST_HOST_NAME_PROPERTY_ID, HOST1_NAME);
+    properties.put(HostResourceProvider.HOST_RACK_INFO_PROPERTY_ID, RACK_A);
 
     return properties;
   }
@@ -361,6 +373,13 @@ public class ScaleClusterRequestTest {
     return properties;
   }
 
+  // include rack info under "rack_info" key instead of "Hosts/rack_info"
+  private static Map<String, Object> replaceWithPlainRackInfoKey(Map<String, Object> properties) {
+    Object value = properties.remove(HostResourceProvider.HOST_RACK_INFO_PROPERTY_ID);
+    properties.put(HostResourceProvider.RACK_INFO_PROPERTY_ID, value);
+    return properties;
+  }
+
   public static Map<String, Object> createScaleClusterPropertiesGroup1_HostCount(String clusterName, String blueprintName) {
     Map<String, Object> properties = new LinkedHashMap<>();