azkaban-developers

Fixing enableMetrics ajax call bug

1/5/2015 10:27:57 PM

Details

diff --git a/azkaban-execserver/src/main/java/azkaban/execapp/StatsServlet.java b/azkaban-execserver/src/main/java/azkaban/execapp/StatsServlet.java
index 177d26b..c18de09 100644
--- a/azkaban-execserver/src/main/java/azkaban/execapp/StatsServlet.java
+++ b/azkaban-execserver/src/main/java/azkaban/execapp/StatsServlet.java
@@ -22,6 +22,7 @@ import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.HashMap;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 
@@ -109,7 +110,7 @@ public class StatsServlet extends HttpServlet implements ConnectorParams {
       boolean enableMetricManager) {
     try {
       logger.info("Updating metric manager status");
-      if (MetricReportManager.isAvailable()) {
+      if (enableMetricManager || MetricReportManager.isAvailable()) {
         MetricReportManager metricManager = MetricReportManager.getInstance();
         if (enableMetricManager) {
           metricManager.enableManager();
@@ -224,7 +225,11 @@ public class StatsServlet extends HttpServlet implements ConnectorParams {
       if (result.size() == 0) {
         ret.put(RESPONSE_ERROR, "No Metric being tracked");
       } else {
-        ret.put("data", result);
+        List<String> metricNames = new LinkedList<String>();
+        for(IMetric<?> metric: result) {
+          metricNames.add(metric.getName());
+        }
+        ret.put("data", metricNames);
       }
     } else {
       ret.put(RESPONSE_ERROR, "MetricReportManager is not available");
diff --git a/azkaban-webserver/src/main/java/azkaban/webapp/servlet/StatsServlet.java b/azkaban-webserver/src/main/java/azkaban/webapp/servlet/StatsServlet.java
index 19438fd..6d14839 100644
--- a/azkaban-webserver/src/main/java/azkaban/webapp/servlet/StatsServlet.java
+++ b/azkaban-webserver/src/main/java/azkaban/webapp/servlet/StatsServlet.java
@@ -43,15 +43,15 @@ import azkaban.webapp.AzkabanWebServer;
  */
 public class StatsServlet extends LoginAbstractAzkabanServlet {
   private static final long serialVersionUID = 1L;
-  private UserManager _userManager;
-  private ExecutorManager _execManager;
+  private UserManager userManager;
+  private ExecutorManager execManager;
 
   @Override
   public void init(ServletConfig config) throws ServletException {
     super.init(config);
     AzkabanWebServer server = (AzkabanWebServer) getApplication();
-    _userManager = server.getUserManager();
-    _execManager = server.getExecutorManager();
+    userManager = server.getUserManager();
+    execManager = server.getExecutorManager();
   }
 
   @Override
@@ -92,7 +92,7 @@ public class StatsServlet extends LoginAbstractAzkabanServlet {
    */
   private void handleChangeConfigurationRequest(String actionName, HttpServletRequest req, HashMap<String, Object> ret)
       throws ServletException, IOException {
-    Map<String, Object> result = _execManager.callExecutorStats(actionName, getAllParams(req));
+    Map<String, Object> result = execManager.callExecutorStats(actionName, getAllParams(req));
     if (result.containsKey(ConnectorParams.RESPONSE_ERROR)) {
       ret.put(ConnectorParams.RESPONSE_ERROR, result.get(ConnectorParams.RESPONSE_ERROR).toString());
     } else {
@@ -107,7 +107,7 @@ public class StatsServlet extends LoginAbstractAzkabanServlet {
   private void handleGetMetricHistory(HttpServletRequest req, HashMap<String, Object> ret, User user)
       throws IOException, ServletException {
     Map<String, Object> result =
-        _execManager.callExecutorStats(ConnectorParams.STATS_GET_METRICHISTORY, getAllParams(req));
+        execManager.callExecutorStats(ConnectorParams.STATS_GET_METRICHISTORY, getAllParams(req));
     if (result.containsKey(ConnectorParams.RESPONSE_ERROR)) {
       ret.put(ConnectorParams.RESPONSE_ERROR, result.get(ConnectorParams.RESPONSE_ERROR).toString());
     } else {
@@ -129,14 +129,14 @@ public class StatsServlet extends LoginAbstractAzkabanServlet {
 
     try {
       Map<String, Object> result =
-          _execManager.callExecutorStats(ConnectorParams.STATS_GET_ALLMETRICSNAME, (Pair<String, String>[]) null);
+          execManager.callExecutorStats(ConnectorParams.STATS_GET_ALLMETRICSNAME, (Pair<String, String>[]) null);
       if (result.containsKey(ConnectorParams.RESPONSE_ERROR)) {
         page.add("errorMsg", result.get(ConnectorParams.RESPONSE_ERROR).toString());
       } else {
         page.add("metricList", result.get("data"));
       }
     } catch (IOException e) {
-      page.add("errorMsg", "Failed to get a response from Azkaban exec serve");
+      page.add("errorMsg", "Failed to get a response from Azkaban exec server");
     }
 
     page.render();
@@ -149,7 +149,7 @@ public class StatsServlet extends LoginAbstractAzkabanServlet {
 
   protected boolean hasPermission(User user, Permission.Type type) {
     for (String roleName : user.getRoles()) {
-      Role role = _userManager.getRole(roleName);
+      Role role = userManager.getRole(roleName);
       if (role.getPermission().isPermissionSet(type) || role.getPermission().isPermissionSet(Permission.Type.ADMIN)) {
         return true;
       }
diff --git a/azkaban-webserver/src/main/resources/azkaban/webapp/servlet/velocity/statsPage.vm b/azkaban-webserver/src/main/resources/azkaban/webapp/servlet/velocity/statsPage.vm
index a54d0f2..4596ac2 100644
--- a/azkaban-webserver/src/main/resources/azkaban/webapp/servlet/velocity/statsPage.vm
+++ b/azkaban-webserver/src/main/resources/azkaban/webapp/servlet/velocity/statsPage.vm
@@ -90,7 +90,7 @@
                      #if (!$metricList.isEmpty())
                      <select id="metricName"  name="metricName" style="width:200px">
                         #foreach ($metric in $metricList)
-                        <option value="${metric.name}" style="width:200px">${metric.name}</option>
+                        <option value="${metric}" style="width:200px">${metric}</option>
                         #end
                      </select>
                      #end