You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ja...@apache.org on 2015/05/05 22:30:55 UTC
[6/6] ambari git commit: AMBARI-10939. MapReduce2 stack service
endpoint exposes YARN service's widget descriptor. (Ivan via Jaimin)
AMBARI-10939. MapReduce2 stack service endpoint exposes YARN service's widget descriptor. (Ivan via Jaimin)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/81f1b978
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/81f1b978
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/81f1b978
Branch: refs/heads/trunk
Commit: 81f1b978c80fee92727a04eaafd52efb76c721ac
Parents: 8a42b23
Author: Jaimin Jetly <ja...@hortonworks.com>
Authored: Tue May 5 13:29:20 2015 -0700
Committer: Jaimin Jetly <ja...@hortonworks.com>
Committed: Tue May 5 13:30:03 2015 -0700
----------------------------------------------------------------------
.../ambari/server/stack/ServiceDirectory.java | 33 +-
.../ambari/server/stack/ServiceModule.java | 4 +-
.../apache/ambari/server/state/ServiceInfo.java | 22 +
.../YARN/2.1.0.2.0/MAPREDUCE2_metrics.json | 2596 +++++++++
.../YARN/2.1.0.2.0/YARN_metrics.json | 2589 +++++++++
.../YARN/2.1.0.2.0/YARN_widgets.json | 687 +++
.../common-services/YARN/2.1.0.2.0/metainfo.xml | 4 +
.../common-services/YARN/2.1.0.2.0/metrics.json | 5183 ------------------
.../common-services/YARN/2.1.0.2.0/widgets.json | 687 ---
.../ambari/server/stack/ServiceModuleTest.java | 4 +-
.../ambari/server/state/ServiceInfoTest.java | 29 +
11 files changed, 5952 insertions(+), 5886 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/81f1b978/ambari-server/src/main/java/org/apache/ambari/server/stack/ServiceDirectory.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/stack/ServiceDirectory.java b/ambari-server/src/main/java/org/apache/ambari/server/stack/ServiceDirectory.java
index e1fa524..25c2260 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/stack/ServiceDirectory.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/stack/ServiceDirectory.java
@@ -20,12 +20,15 @@ package org.apache.ambari.server.stack;
import org.apache.ambari.server.AmbariException;
import org.apache.ambari.server.api.services.AmbariMetaInfo;
+import org.apache.ambari.server.state.ServiceInfo;
import org.apache.ambari.server.state.stack.ServiceMetainfoXml;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.xml.bind.JAXBException;
import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
/**
* Encapsulates IO operations on a stack definition service directory.
@@ -34,7 +37,7 @@ public abstract class ServiceDirectory extends StackDefinitionDirectory {
/**
* metrics file
*/
- private File metricsFile;
+ private Map<String, File> metricsFileMap = new HashMap<String, File>();
/**
* alerts file
@@ -54,7 +57,7 @@ public abstract class ServiceDirectory extends StackDefinitionDirectory {
/**
* widgets descriptor file
*/
- private File widgetsDescriptorFile;
+ private Map<String, File> widgetsDescriptorFileMap = new HashMap<String, File>();
/**
* package directory path
@@ -102,10 +105,6 @@ public abstract class ServiceDirectory extends StackDefinitionDirectory {
super(servicePath);
parsePath();
- File mf = new File(directory.getAbsolutePath()
- + File.separator + AmbariMetaInfo.SERVICE_METRIC_FILE_NAME);
- metricsFile = mf.exists() ? mf : null;
-
File af = new File(directory.getAbsolutePath()
+ File.separator + AmbariMetaInfo.SERVICE_ALERT_FILE_NAME);
alertsFile = af.exists() ? af : null;
@@ -114,9 +113,17 @@ public abstract class ServiceDirectory extends StackDefinitionDirectory {
+ File.separator + AmbariMetaInfo.KERBEROS_DESCRIPTOR_FILE_NAME);
kerberosDescriptorFile = kdf.exists() ? kdf : null;
- File wdf = new File(directory.getAbsolutePath()
- + File.separator + AmbariMetaInfo.WIDGETS_DESCRIPTOR_FILE_NAME);
- widgetsDescriptorFile = wdf.exists() ? wdf : null;
+ if (metaInfoXml.getServices() != null) {
+ for (ServiceInfo serviceInfo : metaInfoXml.getServices()) {
+ File mf = new File(directory.getAbsolutePath()
+ + File.separator + serviceInfo.getMetricsFileName());
+ metricsFileMap.put(serviceInfo.getName(), mf.exists() ? mf : null);
+
+ File wdf = new File(directory.getAbsolutePath()
+ + File.separator + serviceInfo.getWidgetsFileName());
+ widgetsDescriptorFileMap.put(serviceInfo.getName(), wdf.exists() ? wdf : null);
+ }
+ }
File themeFile = new File(directory.getAbsolutePath() + File.separator + AmbariMetaInfo.SERVICE_THEME_FILE_NAME);
this.themeFile = themeFile.exists() ? themeFile : null;
@@ -136,8 +143,8 @@ public abstract class ServiceDirectory extends StackDefinitionDirectory {
*
* @return metrics file
*/
- public File getMetricsFile() {
- return metricsFile;
+ public File getMetricsFile(String serviceName) {
+ return metricsFileMap.get(serviceName);
}
/**
@@ -171,8 +178,8 @@ public abstract class ServiceDirectory extends StackDefinitionDirectory {
*
* @return Widgets Descriptor file
*/
- public File getWidgetsDescriptorFile() {
- return widgetsDescriptorFile;
+ public File getWidgetsDescriptorFile(String serviceName) {
+ return widgetsDescriptorFileMap.get(serviceName);
}
/**
http://git-wip-us.apache.org/repos/asf/ambari/blob/81f1b978/ambari-server/src/main/java/org/apache/ambari/server/stack/ServiceModule.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/stack/ServiceModule.java b/ambari-server/src/main/java/org/apache/ambari/server/stack/ServiceModule.java
index c79dda1..e51eb21 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/stack/ServiceModule.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/stack/ServiceModule.java
@@ -108,10 +108,10 @@ public class ServiceModule extends BaseModule<ServiceModule, ServiceInfo> implem
this.serviceDirectory = serviceDirectory;
this.isCommonService = isCommonService;
- serviceInfo.setMetricsFile(serviceDirectory.getMetricsFile());
+ serviceInfo.setMetricsFile(serviceDirectory.getMetricsFile(serviceInfo.getName()));
serviceInfo.setAlertsFile(serviceDirectory.getAlertsFile());
serviceInfo.setKerberosDescriptorFile(serviceDirectory.getKerberosDescriptorFile());
- serviceInfo.setWidgetsDescriptorFile(serviceDirectory.getWidgetsDescriptorFile());
+ serviceInfo.setWidgetsDescriptorFile(serviceDirectory.getWidgetsDescriptorFile(serviceInfo.getName()));
serviceInfo.setSchemaVersion(AmbariMetaInfo.SCHEMA_VERSION_2);
serviceInfo.setServicePackageFolder(serviceDirectory.getPackageDir());
http://git-wip-us.apache.org/repos/asf/ambari/blob/81f1b978/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceInfo.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceInfo.java b/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceInfo.java
index 6959b83..b476f0e 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceInfo.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceInfo.java
@@ -94,6 +94,12 @@ public class ServiceInfo implements Validable{
@XmlElement(name = "extends")
private String parent;
+ @XmlElement(name = "widgetsFileName")
+ private String widgetsFileName = AmbariMetaInfo.WIDGETS_DESCRIPTOR_FILE_NAME;
+
+ @XmlElement(name = "metricsFileName")
+ private String metricsFileName = AmbariMetaInfo.SERVICE_METRIC_FILE_NAME;
+
@XmlTransient
private volatile Map<String, PropertyInfo> requiredProperties;
@@ -267,6 +273,22 @@ public class ServiceInfo implements Validable{
return requiredServices;
}
+ public String getWidgetsFileName() {
+ return widgetsFileName;
+ }
+
+ public void setWidgetsFileName(String widgetsFileName) {
+ this.widgetsFileName = widgetsFileName;
+ }
+
+ public String getMetricsFileName() {
+ return metricsFileName;
+ }
+
+ public void setMetricsFileName(String metricsFileName) {
+ this.metricsFileName = metricsFileName;
+ }
+
public void setRequiredServices(List<String> requiredServices) {
this.requiredServices = requiredServices;
}