Package com.alibaba.jstorm.ui.model.data

Source Code of com.alibaba.jstorm.ui.model.data.Taskpage

package com.alibaba.jstorm.ui.model.data;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

import org.apache.log4j.Logger;
import org.apache.thrift7.TException;

import backtype.storm.generated.ErrorInfo;
import backtype.storm.generated.NotAliveException;
import backtype.storm.generated.TaskSummary;
import backtype.storm.generated.TopologyInfo;
import backtype.storm.utils.NimbusClient;
import backtype.storm.utils.Utils;

import com.alibaba.jstorm.common.stats.StatBuckets;
import com.alibaba.jstorm.ui.UIUtils;
import com.alibaba.jstorm.ui.model.ErrorSummary;
import com.alibaba.jstorm.ui.model.TaskSumm;

@ManagedBean(name = "taskpage")
@ViewScoped
public class Taskpage {

  private static final Logger LOG = Logger.getLogger(Taskpage.class);

  private String topologyid = null;
  private String componentId = null;
  private String taskid = null;
  private String window = null;
  private List<TaskSumm> tsumms = null;
  private List<ErrorSummary> esumms = null;

  public Taskpage() throws TException, NotAliveException {
    FacesContext ctx = FacesContext.getCurrentInstance();
    if (ctx.getExternalContext().getRequestParameterMap().get("topologyid") != null) {
      topologyid = (String) ctx.getExternalContext()
          .getRequestParameterMap().get("topologyid");
    }
    if (ctx.getExternalContext().getRequestParameterMap().get("taskid") != null) {
      taskid = (String) ctx.getExternalContext().getRequestParameterMap()
          .get("taskid");
    }

    if (topologyid == null) {
      throw new NotAliveException("Input topologyId is null ");
    }

    window = UIUtils.getWindow(ctx);
    init();
  }

  private void init() throws TException, NotAliveException {

    NimbusClient client = null;

    try {
      Map conf = Utils.readStormConfig();
      client = NimbusClient.getConfiguredClient(conf);

      TopologyInfo summ = client.getClient().getTopologyInfo(topologyid);

      List<TaskSummary> ts = summ.get_tasks();
      if (ts == null) {
        throw new NotAliveException("No TaskSummary");
      }
      TaskSummary t = null;
      if (ts != null) {
        int tssize = ts.size();
        for (int i = 0; i < tssize; i++) {
          if (ts.get(i).get_task_id() == Integer.parseInt(taskid)) {
            t = ts.get(i);
          }
        }
      }

      tsumms = taskSummaryTable(t, summ);
      esumms = taskErrorTable(t);
    } catch (TException e) {
      LOG.error(e.getCause(), e);
      throw e;
    } catch (NotAliveException e) {
      LOG.error(e.getCause(), e);
      throw e;
    } finally {
      if (client != null) {
        client.close();
      }
    }

  }

  public List<TaskSumm> taskSummaryTable(TaskSummary task, TopologyInfo summ) {
    List<TaskSumm> tsums = new ArrayList<TaskSumm>();
    TaskSumm tsumm = new TaskSumm(String.valueOf(task.get_task_id()),
        task.get_host(), String.valueOf(task.get_port()),
        summ.get_name(), task.get_component_id(),
        StatBuckets.prettyUptimeStr(task.get_uptime_secs()));

    tsums.add(tsumm);
    return tsums;
  }

  public List<ErrorSummary> taskErrorTable(TaskSummary task) {
    List<ErrorSummary> esums = new ArrayList<ErrorSummary>();
    List<ErrorInfo> errors = task.get_errors();
    if (errors != null) {
      int errorsize = errors.size();

      for (int i = 0; i < errorsize; i++) {
        ErrorInfo einfo = errors.get(i);
        ErrorSummary esumm = new ErrorSummary(String.valueOf(einfo
            .get_error_time_secs()), einfo.get_error());

        esums.add(esumm);
      }
    }
    return esums;
  }

  public List<TaskSumm> getTsumms() {
    return tsumms;
  }

  public void setTsumms(List<TaskSumm> tsumms) {
    this.tsumms = tsumms;
  }

  public List<ErrorSummary> getEsumms() {
    return esumms;
  }

  public void setEsumms(List<ErrorSummary> esumms) {
    this.esumms = esumms;
  }
}
TOP

Related Classes of com.alibaba.jstorm.ui.model.data.Taskpage

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.