AMBARI-21619. More ResourceManager HA host group placeholders in blueprints
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/0eee38e7 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/0eee38e7 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/0eee38e7 Branch: refs/heads/feature-branch-AMBARI-21307 Commit: 0eee38e7cd612cb6d57352b32074beed9b115b39 Parents: 11aadf5 Author: Attila Doroszlai <adorosz...@hortonworks.com> Authored: Tue Aug 1 14:22:37 2017 +0200 Committer: Attila Doroszlai <adorosz...@hortonworks.com> Committed: Tue Aug 1 14:22:37 2017 +0200 ---------------------------------------------------------------------- .../BlueprintConfigurationProcessor.java | 18 +++++------ .../BlueprintConfigurationProcessorTest.java | 34 +++++++++++++------- 2 files changed, 31 insertions(+), 21 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/0eee38e7/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessor.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessor.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessor.java index 46ace32..34102b6 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessor.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessor.java @@ -917,14 +917,14 @@ public class BlueprintConfigurationProcessor { Map<String, String> yarnSiteConfig = clusterTopology.getConfiguration().getFullProperties().get("yarn-site"); // generate the property names based on the current HA config for the ResourceManager deployments for (String resourceManager : parseResourceManagers(yarnSiteConfig)) { - final String rmHostPropertyName = "yarn.resourcemanager.hostname." + resourceManager; - yarnSiteUpdatersForAvailability.put(rmHostPropertyName, new SingleHostTopologyUpdater("RESOURCEMANAGER")); - - final String rmHTTPAddress = "yarn.resourcemanager.webapp.address." + resourceManager; - yarnSiteUpdatersForAvailability.put(rmHTTPAddress, new SingleHostTopologyUpdater("RESOURCEMANAGER")); - - final String rmHTTPSAddress = "yarn.resourcemanager.webapp.https.address." + resourceManager; - yarnSiteUpdatersForAvailability.put(rmHTTPSAddress, new SingleHostTopologyUpdater("RESOURCEMANAGER")); + SingleHostTopologyUpdater updater = new SingleHostTopologyUpdater("RESOURCEMANAGER"); + yarnSiteUpdatersForAvailability.put("yarn.resourcemanager.hostname." + resourceManager, updater); + yarnSiteUpdatersForAvailability.put("yarn.resourcemanager.address." + resourceManager, updater); + yarnSiteUpdatersForAvailability.put("yarn.resourcemanager.admin.address." + resourceManager, updater); + yarnSiteUpdatersForAvailability.put("yarn.resourcemanager.resource-tracker.address." + resourceManager, updater); + yarnSiteUpdatersForAvailability.put("yarn.resourcemanager.scheduler.address." + resourceManager, updater); + yarnSiteUpdatersForAvailability.put("yarn.resourcemanager.webapp.address." + resourceManager, updater); + yarnSiteUpdatersForAvailability.put("yarn.resourcemanager.webapp.https.address." + resourceManager, updater); } return highAvailabilityUpdaters; @@ -1371,7 +1371,7 @@ public class BlueprintConfigurationProcessor { /** * Component name */ - private String component; + private final String component; /** * Constructor. http://git-wip-us.apache.org/repos/asf/ambari/blob/0eee38e7/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessorTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessorTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessorTest.java index 8a55136..34cd8a5 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessorTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessorTest.java @@ -3406,6 +3406,14 @@ public class BlueprintConfigurationProcessorTest extends EasyMockSupport { yarnSiteProperties.put("yarn.resourcemanager.ha.rm-ids", "rm1, rm2"); yarnSiteProperties.put("yarn.resourcemanager.hostname.rm1", expectedHostName); yarnSiteProperties.put("yarn.resourcemanager.hostname.rm2", expectedHostNameTwo); + yarnSiteProperties.put("yarn.resourcemanager.address.rm1", expectedHostName + ":" + expectedPortNum); + yarnSiteProperties.put("yarn.resourcemanager.address.rm2", expectedHostNameTwo + ":" + expectedPortNum); + yarnSiteProperties.put("yarn.resourcemanager.admin.address.rm1", expectedHostName + ":" + expectedPortNum); + yarnSiteProperties.put("yarn.resourcemanager.admin.address.rm2", expectedHostNameTwo + ":" + expectedPortNum); + yarnSiteProperties.put("yarn.resourcemanager.resource-tracker.address.rm1", expectedHostName + ":" + expectedPortNum); + yarnSiteProperties.put("yarn.resourcemanager.resource-tracker.address.rm2", expectedHostNameTwo + ":" + expectedPortNum); + yarnSiteProperties.put("yarn.resourcemanager.scheduler.address.rm1", expectedHostName + ":" + expectedPortNum); + yarnSiteProperties.put("yarn.resourcemanager.scheduler.address.rm2", expectedHostNameTwo + ":" + expectedPortNum); yarnSiteProperties.put("yarn.resourcemanager.webapp.address.rm1", expectedHostName + ":" + expectedPortNum); yarnSiteProperties.put("yarn.resourcemanager.webapp.address.rm2", expectedHostNameTwo + ":" + expectedPortNum); yarnSiteProperties.put("yarn.resourcemanager.webapp.https.address.rm1", expectedHostName + ":" + expectedPortNum); @@ -3458,18 +3466,20 @@ public class BlueprintConfigurationProcessorTest extends EasyMockSupport { createExportedHostName(expectedHostGroupName, expectedPortNum), yarnSiteProperties.get("yarn.timeline-service.webapp.https.address")); // verify that dynamically-named RM HA properties are exported as expected - assertEquals("Yarn ResourceManager rm1 hostname not exported properly", - createExportedHostName(expectedHostGroupName), yarnSiteProperties.get("yarn.resourcemanager.hostname.rm1")); - assertEquals("Yarn ResourceManager rm2 hostname not exported properly", - createExportedHostName(expectedHostGroupNameTwo), yarnSiteProperties.get("yarn.resourcemanager.hostname.rm2")); - assertEquals("Yarn ResourceManager rm1 web address not exported properly", - createExportedHostName(expectedHostGroupName, expectedPortNum), yarnSiteProperties.get("yarn.resourcemanager.webapp.address.rm1")); - assertEquals("Yarn ResourceManager rm2 web address not exported properly", - createExportedHostName(expectedHostGroupNameTwo, expectedPortNum), yarnSiteProperties.get("yarn.resourcemanager.webapp.address.rm2")); - assertEquals("Yarn ResourceManager rm1 HTTPS address not exported properly", - createExportedHostName(expectedHostGroupName, expectedPortNum), yarnSiteProperties.get("yarn.resourcemanager.webapp.https.address.rm1")); - assertEquals("Yarn ResourceManager rm2 HTTPS address not exported properly", - createExportedHostName(expectedHostGroupNameTwo, expectedPortNum), yarnSiteProperties.get("yarn.resourcemanager.webapp.https.address.rm2")); + List<String> properties = Arrays.asList( + "yarn.resourcemanager.address", + "yarn.resourcemanager.admin.address", + "yarn.resourcemanager.resource-tracker.address", + "yarn.resourcemanager.scheduler.address", + "yarn.resourcemanager.webapp.address", + "yarn.resourcemanager.webapp.https.address" + ); + for (String property : properties) { + String propertyWithID = property + ".rm1"; + assertEquals(propertyWithID, createExportedHostName(expectedHostGroupName, expectedPortNum), yarnSiteProperties.get(propertyWithID)); + propertyWithID = property + ".rm2"; + assertEquals(propertyWithID, createExportedHostName(expectedHostGroupNameTwo, expectedPortNum), yarnSiteProperties.get(propertyWithID)); + } assertEquals("Yarn Zookeeper address property not exported properly", createExportedHostName(expectedHostGroupName, "2181") + "," + createExportedHostName(expectedHostGroupNameTwo, "2181"),