You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by mr...@apache.org on 2017/10/30 19:05:00 UTC
[24/30] ambari git commit: AMBARI-22297 Fix getComponentInfo (benyoka)
AMBARI-22297 Fix getComponentInfo (benyoka)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/c118e515
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/c118e515
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/c118e515
Branch: refs/heads/branch-feature-AMBARI-14714-ui
Commit: c118e515ab1973603362d149d253269c8b7c17a4
Parents: e1fb736
Author: Balazs Bence Sari <be...@apache.org>
Authored: Wed Oct 25 12:00:08 2017 +0200
Committer: Balazs Bence Sari <be...@apache.org>
Committed: Wed Oct 25 12:18:28 2017 +0200
----------------------------------------------------------------------
.../ambari/server/controller/StackV2.java | 18 ++++-------
.../server/controller/StackV2Factory.java | 34 +++++++++++++++++++-
2 files changed, 39 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/c118e515/ambari-server/src/main/java/org/apache/ambari/server/controller/StackV2.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/StackV2.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/StackV2.java
index 040e604..0b0329c 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/StackV2.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/StackV2.java
@@ -91,6 +91,8 @@ public class StackV2 {
/** Map of service to set of excluded config types */
private final Map<String, Set<String>> excludedConfigurationTypes;
+ private final Map<String, ComponentInfo> componentInfos;
+
public StackV2(String name,
String version,
String repoVersion,
@@ -101,7 +103,8 @@ public class StackV2 {
Map<String, Map<String, Map<String, ConfigProperty>>> serviceConfigurations,
Map<String, Map<String, Map<String, ConfigProperty>>> requiredServiceConfigurations,
Map<String, Map<String, ConfigProperty>> stackConfigurations,
- Map<String, Set<String>> excludedConfigurationTypes) {
+ Map<String, Set<String>> excludedConfigurationTypes,
+ Map<String, ComponentInfo> componentInfos) {
this.name = name;
this.version = version;
this.repoVersion = repoVersion;
@@ -128,6 +131,7 @@ public class StackV2 {
this.requiredServiceConfigurations = requiredServiceConfigurations;
this.stackConfigurations = stackConfigurations;
this.excludedConfigurationTypes = excludedConfigurationTypes;
+ this.componentInfos = componentInfos;
}
/** @return stack name */
@@ -181,17 +185,7 @@ public class StackV2 {
*/
@Deprecated
public ComponentInfo getComponentInfo(String component) {
- ComponentInfo componentInfo = null;
-// String service = getServiceForComponent(component);
-// if (service != null) {
-// try {
-// componentInfo = controller.getAmbariMetaInfo().getComponent(
-// getName(), getVersion(), service, component);
-// } catch (AmbariException e) {
-// // just return null if component doesn't exist
-// }
-// }
- return componentInfo;
+ return componentInfos.get(component);
}
/**
http://git-wip-us.apache.org/repos/asf/ambari/blob/c118e515/ambari-server/src/main/java/org/apache/ambari/server/controller/StackV2Factory.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/StackV2Factory.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/StackV2Factory.java
index ed1bbf8..784b368 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/StackV2Factory.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/StackV2Factory.java
@@ -18,20 +18,29 @@
package org.apache.ambari.server.controller;
+import static java.util.AbstractMap.SimpleImmutableEntry;
+
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.stream.Collectors;
import org.apache.ambari.server.AmbariException;
import org.apache.ambari.server.orm.entities.StackEntity;
import org.apache.ambari.server.state.AutoDeployInfo;
+import org.apache.ambari.server.state.ComponentInfo;
import org.apache.ambari.server.state.DependencyInfo;
import org.apache.ambari.server.state.StackId;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class StackV2Factory {
+ private final static Logger LOG = LoggerFactory.getLogger(StackV2Factory.class);
+
private AmbariManagementController controller;
@@ -64,9 +73,30 @@ public class StackV2Factory {
//todo: already done for each service
parseStackConfigurations(stackData);
+ getComponentInfos(stackData);
+
return new StackV2(name, version, stackData.repoVersion /* TODO */, stackData.serviceComponents, stackData.dependencies,
stackData.dbDependencyInfo, stackData.componentAutoDeployInfo, stackData.serviceConfigurations,
- stackData.requiredServiceConfigurations, stackData.stackConfigurations, stackData.excludedConfigurationTypes);
+ stackData.requiredServiceConfigurations, stackData.stackConfigurations, stackData.excludedConfigurationTypes,
+ stackData.componentInfos);
+ }
+
+ private void getComponentInfos(StackData stackData) {
+ List<Map.Entry<String, String>> componentServices = stackData.serviceComponents.entrySet().stream().
+ flatMap(e -> e.getValue().stream().map( v -> new SimpleImmutableEntry<>(e.getKey(), v))).
+ collect(Collectors.toList());
+ componentServices.stream().forEach( componentService -> {
+ try {
+ ComponentInfo componentInfo = controller.getAmbariMetaInfo().getComponent(stackData.stackName,
+ stackData.stackVersion, componentService.getKey(), componentService.getValue());
+ if (null != componentInfo) {
+ stackData.componentInfos.put(componentService.getKey(), componentInfo);
+ }
+ } catch (AmbariException e) {
+ LOG.debug("No component info for service: {}, component: {}, stack name: {}, stack version: {}, Exception: {}",
+ componentService.getKey(), componentService.getValue(), stackData.stackName, stackData.stackVersion, e);
+ }
+ });
}
/**
@@ -172,6 +202,7 @@ public class StackV2Factory {
stackData.masterComponents.add(componentName);
}
}
+
stackData.serviceComponents.put(service, componentSet);
}
@@ -215,5 +246,6 @@ public class StackV2Factory {
final Map<String, String> dbDependencyInfo = new HashMap<>();
final Map<String, Set<String>> excludedConfigurationTypes = new HashMap<>();
final Map<String, Map<String, StackV2.ConfigProperty>> stackConfigurations = new HashMap<>();
+ final Map<String, ComponentInfo> componentInfos = new HashMap<>();
}
}