You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by nc...@apache.org on 2014/01/03 19:18:30 UTC
git commit: AMBARI-4223. Cluster topology is hard-coded (ncole)
Updated Branches:
refs/heads/trunk 80751f135 -> 0df2b1817
AMBARI-4223. Cluster topology is hard-coded (ncole)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/0df2b181
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/0df2b181
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/0df2b181
Branch: refs/heads/trunk
Commit: 0df2b18171763d484c7fea35aff4de2522ded27e
Parents: 80751f1
Author: Nate Cole <nc...@hortonworks.com>
Authored: Fri Jan 3 12:54:13 2014 -0500
Committer: Nate Cole <nc...@hortonworks.com>
Committed: Fri Jan 3 13:18:13 2014 -0500
----------------------------------------------------------------------
.../apache/ambari/server/utils/StageUtils.java | 64 +++++++++-----------
.../ambari/server/utils/TestStageUtils.java | 11 +++-
.../HDP/1.3.1/services/NONAME/metainfo.xml | 30 +++++++++
3 files changed, 69 insertions(+), 36 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/0df2b181/ambari-server/src/main/java/org/apache/ambari/server/utils/StageUtils.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/utils/StageUtils.java b/ambari-server/src/main/java/org/apache/ambari/server/utils/StageUtils.java
index 4ea8fa6..1c0a66c 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/utils/StageUtils.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/utils/StageUtils.java
@@ -109,20 +109,16 @@ public class StageUtils {
componentToClusterInfoKeyMap.put("HBASE_REGIONSERVER", "hbase_rs_hosts");
componentToClusterInfoKeyMap.put("HIVE_SERVER", "hive_server_host");
componentToClusterInfoKeyMap.put("OOZIE_SERVER", "oozie_server");
- componentToClusterInfoKeyMap.put("WEBHCAT_SERVER",
- "webhcat_server_host");
- componentToClusterInfoKeyMap.put(Role.MYSQL_SERVER.toString(),
- "hive_mysql_host");
+ componentToClusterInfoKeyMap.put("WEBHCAT_SERVER", "webhcat_server_host");
+ componentToClusterInfoKeyMap.put("MYSQL_SERVER", "hive_mysql_host");
componentToClusterInfoKeyMap.put("DASHBOARD", "dashboard_host");
componentToClusterInfoKeyMap.put("NAGIOS_SERVER", "nagios_server_host");
- componentToClusterInfoKeyMap.put("GANGLIA_SERVER",
- "ganglia_server_host");
+ componentToClusterInfoKeyMap.put("GANGLIA_SERVER", "ganglia_server_host");
componentToClusterInfoKeyMap.put("DATANODE", "slave_hosts");
componentToClusterInfoKeyMap.put("TASKTRACKER", "mapred_tt_hosts");
componentToClusterInfoKeyMap.put("HBASE_REGIONSERVER", "hbase_rs_hosts");
componentToClusterInfoKeyMap.put("KERBEROS_SERVER", "kdc_host");
- componentToClusterInfoKeyMap.put("KERBEROS_ADMIN_CLIENT",
- "kerberos_adminclient_host");
+ componentToClusterInfoKeyMap.put("KERBEROS_ADMIN_CLIENT", "kerberos_adminclient_host");
}
public static String getActionId(long requestId, long stageId) {
@@ -233,38 +229,36 @@ public class StageUtils {
ServiceComponent serviceComponent = serviceComponentEntry.getValue();
String componentName = serviceComponent.getName();
-
- for (final String hostName:serviceComponent.getServiceComponentHosts().keySet()) {
-
- if (componentToClusterInfoKeyMap.containsKey(componentName)) {
-
- String roleName = componentToClusterInfoKeyMap.get(componentName);
- SortedSet<Integer> hostsForComponentsHost = hostRolesInfo.get(roleName);
-
- if (hostsForComponentsHost == null) {
- hostsForComponentsHost = new TreeSet<Integer>();
- hostRolesInfo.put(roleName, hostsForComponentsHost);
- }
-
- int hostIndex = hostsList.indexOf(hostName);
- //Add index of host to current host role
- hostsForComponentsHost.add(hostIndex);
+
+ String roleName = componentToClusterInfoKeyMap.get(componentName);
+ if (null == roleName && !serviceComponent.isClientComponent())
+ roleName = componentName.toLowerCase() + "_hosts";
+
+ if (null == roleName)
+ continue;
+
+ for (String hostName : serviceComponent.getServiceComponentHosts().keySet()) {
+
+ SortedSet<Integer> hostsForComponentsHost = hostRolesInfo.get(roleName);
+
+ if (hostsForComponentsHost == null) {
+ hostsForComponentsHost = new TreeSet<Integer>();
+ hostRolesInfo.put(roleName, hostsForComponentsHost);
}
+
+ int hostIndex = hostsList.indexOf(hostName);
+ //Add index of host to current host role
+ hostsForComponentsHost.add(hostIndex);
}
}
}
- for (String roleName : componentToClusterInfoKeyMap.values()) {
- if (hostRolesInfo.containsKey(roleName)) {
-
- TreeSet<Integer> sortedSet =
- new TreeSet<Integer>(hostRolesInfo.get(roleName));
-
- Set<String> replacedRangesSet = replaceRanges(sortedSet);
-
- clusterHostInfo.put(roleName, replacedRangesSet);
-
- }
+ for (Entry<String, SortedSet<Integer>> entry : hostRolesInfo.entrySet()) {
+ TreeSet<Integer> sortedSet = new TreeSet<Integer>(entry.getValue());
+
+ Set<String> replacedRangesSet = replaceRanges(sortedSet);
+
+ clusterHostInfo.put(entry.getKey(), replacedRangesSet);
}
clusterHostInfo.put(HOSTS_LIST, hostsSet);
http://git-wip-us.apache.org/repos/asf/ambari/blob/0df2b181/ambari-server/src/test/java/org/apache/ambari/server/utils/TestStageUtils.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/utils/TestStageUtils.java b/ambari-server/src/test/java/org/apache/ambari/server/utils/TestStageUtils.java
index 5c2d315..5452681 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/utils/TestStageUtils.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/utils/TestStageUtils.java
@@ -210,6 +210,13 @@ public class TestStageUtils {
mrTopology.put("TASKTRACKER", taskTrackerIndexes);
addService(fsm.getCluster("c1"), hostList, mrTopology , "MAPREDUCE", injector);
+
+ //Add NONAME service
+ Map<String, List<Integer>> nonameTopology = new HashMap<String, List<Integer>>();
+ nonameTopology.put("NONAME_SERVER", Collections.singletonList(7));
+ addService(fsm.getCluster("c1"), hostList, nonameTopology , "NONAME", injector);
+
+
//Get cluster host info
Map<String, Set<String>> info = StageUtils.getClusterHostInfo(fsm.getHostsForCluster("c1"),
fsm.getCluster("c1"), new HostsMap(injector.getInstance(Configuration.class)),
@@ -244,7 +251,6 @@ public class TestStageUtils {
Set<String> actualPingPorts = info.get("all_ping_ports");
-
if (pingPorts.contains(null))
assertEquals(new HashSet<Integer>(pingPorts).size(), actualPingPorts.size() + 1);
else
@@ -262,6 +268,9 @@ public class TestStageUtils {
}
assertEquals(pingPorts, reindexedPorts);
+
+ // check for no-name in the list
+ assertTrue(info.containsKey("noname_server_hosts"));
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/0df2b181/ambari-server/src/test/resources/stacks/HDP/1.3.1/services/NONAME/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/resources/stacks/HDP/1.3.1/services/NONAME/metainfo.xml b/ambari-server/src/test/resources/stacks/HDP/1.3.1/services/NONAME/metainfo.xml
new file mode 100644
index 0000000..47e7291
--- /dev/null
+++ b/ambari-server/src/test/resources/stacks/HDP/1.3.1/services/NONAME/metainfo.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<metainfo>
+ <user>root</user>
+ <comment>No-name service</comment>
+ <version>1.0.0</version>
+ <components>
+ <component>
+ <name>NONAME_SERVER</name>
+ <category>MASTER</category>
+ </component>
+ </components>
+
+
+</metainfo>