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;
   }