Package com.taobao.zeus.web

Source Code of com.taobao.zeus.web.ScheduleGroupManager

package com.taobao.zeus.web;

import java.util.Collection;
import java.util.List;
import java.util.Map;

import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;

import com.taobao.zeus.client.ZeusException;
import com.taobao.zeus.model.GroupDescriptor;
import com.taobao.zeus.model.JobDescriptor;
import com.taobao.zeus.model.JobDescriptor.JobRunType;
import com.taobao.zeus.model.JobStatus;
import com.taobao.zeus.socket.worker.ClientWorker;
import com.taobao.zeus.store.GroupBean;
import com.taobao.zeus.store.GroupManager;
import com.taobao.zeus.store.JobBean;
import com.taobao.zeus.util.Tuple;
/**
* 在操作数据库的同时,向调度系统发出更新命令,保证调度系统的数据是最新的
* 此类主要是给Web界面使用
* @author zhoufang
*
*/
public class ScheduleGroupManager implements GroupManager{

  private static Logger log=LogManager.getLogger(ScheduleGroupManager.class);
  private GroupManager groupManager;
  public void setGroupManager(GroupManager groupManager) {
    this.groupManager = groupManager;
  }

  @Autowired
  private ClientWorker worker;
  @Override
  public GroupDescriptor createGroup(String user, String groupName,
      String parentGroup, boolean isDirectory) throws ZeusException {
    return groupManager.createGroup(user, groupName, parentGroup, isDirectory);
  }

  @Override
  public JobDescriptor createJob(String user, String jobName,
      String parentGroup, JobRunType jobType) throws ZeusException {
    JobDescriptor jd=groupManager.createJob(user, jobName, parentGroup, jobType);
    try {
      worker.updateJobFromWeb(jd.getId());
    } catch (Exception e) {
      String msg="创建Job成功,但是调度Job失败";
      log.error(msg,e);
      throw new ZeusException(msg,e);
    }
    return jd;
  }

  @Override
  public void deleteGroup(String user, String groupId) throws ZeusException {
    groupManager.deleteGroup(user, groupId);
  }

  @Override
  public void deleteJob(String user, String jobId) throws ZeusException {
    groupManager.deleteJob(user, jobId);
    try {
      worker.updateJobFromWeb(jobId);
    } catch (Exception e) {
      String msg="删除Job成功,但是调度Job失败";
      log.error(msg,e);
      throw new ZeusException(msg, e);
    }
  }

  @Override
  public GroupBean getDownstreamGroupBean(String groupId) {
    return groupManager.getDownstreamGroupBean(groupId);
  }

  @Override
  public GroupBean getGlobeGroupBean() {
    return groupManager.getGlobeGroupBean();
  }

  @Override
  public GroupDescriptor getGroupDescriptor(String groupId) {
    return groupManager.getGroupDescriptor(groupId);
  }

  @Override
  public Tuple<JobDescriptor, JobStatus> getJobDescriptor(String jobId) {
    return groupManager.getJobDescriptor(jobId);
  }


  @Override
  public String getRootGroupId() {
    return groupManager.getRootGroupId();
  }

  @Override
  public GroupBean getUpstreamGroupBean(String groupId) {
    return groupManager.getUpstreamGroupBean(groupId);
  }

  @Override
  public JobBean getUpstreamJobBean(String jobId) {
    return groupManager.getUpstreamJobBean(jobId);
  }

  @Override
  public void updateGroup(String user, GroupDescriptor group)
      throws ZeusException {
    groupManager.updateGroup(user, group);
  }

  @Override
  public void updateJob(String user, JobDescriptor job) throws ZeusException {
    groupManager.updateJob(user, job);
    try {
      worker.updateJobFromWeb(job.getId());
    } catch (Exception e) {
      String msg="更新Job成功,但是调度Job失败";
      log.error(msg,e);
      throw new ZeusException(msg,e);
    }
  }

  @Override
  public Map<String, Tuple<JobDescriptor, JobStatus>> getJobDescriptor(Collection<String> jobIds) {
    return groupManager.getJobDescriptor(jobIds);
  }

  @Override
  public void updateJobStatus(JobStatus jobStatus){
    throw new UnsupportedOperationException("ScheduleGroupManager 不支持此操作");
  }

  @Override
  public JobStatus getJobStatus(String jobId) {
    return groupManager.getJobStatus(jobId);
  }

  @Override
  public void grantGroupOwner(String granter, String uid, String groupId)
      throws ZeusException {
    groupManager.grantGroupOwner(granter, uid, groupId);
  }

  @Override
  public void grantJobOwner(String granter, String uid, String jobId)
      throws ZeusException {
    groupManager.grantJobOwner(granter, uid, jobId);
  }

  @Override
  public List<GroupDescriptor> getChildrenGroup(String groupId) {
    return groupManager.getChildrenGroup(groupId);
  }

  @Override
  public List<Tuple<JobDescriptor, JobStatus>> getChildrenJob(String groupId) {
    return groupManager.getChildrenJob(groupId);
  }

  @Override
  public GroupBean getDownstreamGroupBean(GroupBean parent) {
    return groupManager.getDownstreamGroupBean(parent);
  }

  @Override
  public void moveJob(String uid, String jobId, String groupId)
      throws ZeusException {
    groupManager.moveJob(uid, jobId, groupId);
  }

  @Override
  public void moveGroup(String uid, String groupId, String newParentGroupId)
      throws ZeusException {
    groupManager.moveGroup(uid, groupId, newParentGroupId);
  }

}
TOP

Related Classes of com.taobao.zeus.web.ScheduleGroupManager

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.