You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ao...@apache.org on 2014/09/16 21:10:47 UTC
[2/2] git commit: AMBARI-7327. After NameNode HA is enabled UI
doesn't load (aonishuk)
AMBARI-7327. After NameNode HA is enabled UI doesn't load (aonishuk)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/ceee5bfe
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/ceee5bfe
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/ceee5bfe
Branch: refs/heads/trunk
Commit: ceee5bfedd4a861594f74002ba7228e60803c7a6
Parents: db62322
Author: Andrew Onishuk <ao...@hortonworks.com>
Authored: Tue Sep 16 22:10:40 2014 +0300
Committer: Andrew Onishuk <ao...@hortonworks.com>
Committed: Tue Sep 16 22:10:40 2014 +0300
----------------------------------------------------------------------
.../server/api/util/StackExtensionHelper.java | 31 +-
.../api/util/StackExtensionHelperTest.java | 20 +
.../stacks/HDP/2.0.7/services/HDFS/metrics.json | 7840 ------------------
3 files changed, 44 insertions(+), 7847 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/ceee5bfe/ambari-server/src/main/java/org/apache/ambari/server/api/util/StackExtensionHelper.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/util/StackExtensionHelper.java b/ambari-server/src/main/java/org/apache/ambari/server/api/util/StackExtensionHelper.java
index d5d816e..a63be38 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/api/util/StackExtensionHelper.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/api/util/StackExtensionHelper.java
@@ -220,12 +220,16 @@ public class StackExtensionHelper {
mergedServiceInfo.setCustomCommands(mergedCustomCommands);
// metrics
- if (null == childService.getMetricsFile() && null != parentService.getMetricsFile())
+ if (null != childService.getMetricsFile())
+ mergedServiceInfo.setMetricsFile(childService.getMetricsFile());
+ else if (null != parentService.getMetricsFile())
mergedServiceInfo.setMetricsFile(parentService.getMetricsFile());
// alerts
- if (null == childService.getAlertsFile() && null != parentService.getAlertsFile())
- mergedServiceInfo.setAlertsFile(parentService.getAlertsFile());
+ if (null != childService.getAlertsFile())
+ mergedServiceInfo.setAlertsFile(childService.getAlertsFile());
+ else if (null != parentService.getAlertsFile())
+ mergedServiceInfo.setAlertsFile(parentService.getAlertsFile());
populateComponents(mergedServiceInfo, parentService, childService);
@@ -425,12 +429,24 @@ public class StackExtensionHelper {
// Map services with unique names
Map<String, ServiceInfo> serviceInfoMap = new HashMap<String,
ServiceInfo>();
+ List<ServiceInfo> serviceInfoList = null;
// Iterate with oldest parent first - all stacks are populated
+ StackInfo parentStack = null;
while(lt.hasPrevious()) {
- StackInfo parentStack = lt.previous();
- List<ServiceInfo> serviceInfoList = parentStack.getServices();
+ if (parentStack == null) {
+ parentStack = lt.previous();
+ serviceInfoList = parentStack.getServices();
+ for (ServiceInfo service : serviceInfoList){
+ if (!service.isDeleted()) {
+ serviceInfoMap.put(service.getName(), service);
+ }
+ }
+ continue;
+ }
+ StackInfo currentStackInfo = lt.previous();
+ serviceInfoList = currentStackInfo.getServices();
- mergeStacks(parentStack, stackInfo);
+ mergeStacks(parentStack, currentStackInfo);
for (ServiceInfo service : serviceInfoList) {
ServiceInfo existingService = serviceInfoMap.get(service.getName());
@@ -439,7 +455,7 @@ public class StackExtensionHelper {
continue;
}
- if (existingService == null) {
+ if (existingService == null && !service.isDeleted()) {
serviceInfoMap.put(service.getName(), service);
} else {
// Redefined service - merge with parent
@@ -467,6 +483,7 @@ public class StackExtensionHelper {
}
}
+ parentStack = currentStackInfo;
}
return new ArrayList<ServiceInfo>(serviceInfoMap.values());
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/ceee5bfe/ambari-server/src/test/java/org/apache/ambari/server/api/util/StackExtensionHelperTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/util/StackExtensionHelperTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/util/StackExtensionHelperTest.java
index 346202e..2219b6f 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/api/util/StackExtensionHelperTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/api/util/StackExtensionHelperTest.java
@@ -649,6 +649,26 @@ public class StackExtensionHelperTest {
}
@Test
+ public void testServiceInheritance() throws Exception {
+ File stackRoot = new File(stackRootStr);
+ StackInfo stackInfo = new StackInfo();
+ stackInfo.setName("HDP");
+ stackInfo.setVersion("2.0.6");
+ StackExtensionHelper helper = new StackExtensionHelper(injector, stackRoot);
+ helper.populateServicesForStack(stackInfo);
+ helper.fillInfo();
+ List<ServiceInfo> allServices = helper.getAllApplicableServices(stackInfo);
+ for (ServiceInfo serviceInfo : allServices) {
+ if (serviceInfo.getName().equals("HDFS")){
+ assertEquals("HDFS", serviceInfo.getName());
+ assertNotNull(serviceInfo.getMetricsFile());
+ }
+ }
+
+ }
+
+
+ @Test
public void testMergeComponentInfo() throws Exception {
File stackRoot = new File(stackRootStr);
StackExtensionHelper helper = new StackExtensionHelper(injector, stackRoot);