package org.zstack.core.scheduler; import org.springframework.beans.factory.annotation.Autowired; import org.zstack.core.Platform; import org.zstack.core.cloudbus.CloudBus; import org.zstack.header.core.scheduler.APICreateSchedulerMessage; import java.sql.Timestamp; import java.util.Date; /** * Created by Mei Lei<meilei007@gmail.com> on 8/3/16. */ public class AbstractSchedulerJob implements SchedulerJob { @Autowired protected transient CloudBus bus; private Date startDate; private Integer interval; private Integer repeat; private String type; private String cron; private String schedulerName; private String schedulerDescription; private String jobName; private String jobGroup; private String triggerGroup; private String triggerName; private String resourceUuid; private String targetResourceUuid; private Timestamp createDate; private String accountUuid; public AbstractSchedulerJob() { } public AbstractSchedulerJob(APICreateSchedulerMessage msg) { String jobIdentifyUuid = Platform.getUuid(); Date date = new Date(); createDate = new Timestamp(date.getTime()); schedulerName = msg.getSchedulerName(); type = msg.getType(); resourceUuid = msg.getResourceUuid(); accountUuid = msg.getSession().getAccountUuid(); if ( msg.getSchedulerDescription() != null && ! msg.getSchedulerDescription().isEmpty()) { schedulerDescription = msg.getSchedulerDescription(); } if ( msg.getCron() != null && ! msg.getCron().isEmpty()) { cron = msg.getCron(); } if ( msg.getStartTime() != 0) { startDate = new Date(msg.getStartTime() * 1000); } else { startDate = new Date(System.currentTimeMillis()); } if ( msg.getInterval() != null) { interval = msg.getInterval(); } if ( msg.getRepeatCount() != null) { repeat = msg.getRepeatCount(); } // jobName, jobGroup, triggerName, triggerGroup reserved for future API if(msg.getJobName() != null && !msg.getJobName().isEmpty()) { jobName = msg.getJobName(); } else { jobName = jobIdentifyUuid; } if(msg.getJobGroup() != null && !msg.getJobGroup().isEmpty()) { jobGroup = msg.getJobGroup(); } else { jobGroup = jobIdentifyUuid; } if(msg.getTriggerName() != null && !msg.getTriggerName().isEmpty()) { triggerName = msg.getTriggerName(); } else { triggerName = jobIdentifyUuid; } if (msg.getTriggerGroup() != null && !msg.getTriggerGroup().isEmpty()) { triggerGroup = msg.getTriggerGroup(); } else { triggerGroup = jobIdentifyUuid; } } public String getSchedulerDescription() { return schedulerDescription; } public void setSchedulerDescription(String schedulerDescription) { this.schedulerDescription = schedulerDescription; } public Date getStartTime() { return startDate; } public void setStartDate(Date startDate) { this.startDate = startDate; } public Integer getInterval() { return interval; } public Integer getSchedulerInterval() { return interval; } public void setInterval(Integer interval) { this.interval = interval; } public Integer getRepeat() { return repeat; } public void setRepeat(Integer repeat) { this.repeat = repeat; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getCron() { return cron; } public void setCron(String cron) { this.cron = cron; } public String getSchedulerName() { return schedulerName; } public void setSchedulerName(String schedulerName) { this.schedulerName = schedulerName; } public String getJobName() { return jobName; } public void setJobName(String jobName) { this.jobName = jobName; } public String getJobGroup() { return jobGroup; } public void setJobGroup(String jobGroup) { this.jobGroup = jobGroup; } public String getTriggerGroup() { return triggerGroup; } public void setTriggerGroup(String triggerGroup) { this.triggerGroup = triggerGroup; } public String getTriggerName() { return triggerName; } public void setTriggerName(String triggerName) { this.triggerName = triggerName; } public Timestamp getCreateDate() { return createDate; } public void setCreateDate(Timestamp createDate) { this.createDate = createDate; } public String getTargetResourceUuid() { return targetResourceUuid; } public void setTargetResourceUuid(String targetResourceUuid) { this.targetResourceUuid = targetResourceUuid; } @Override public String getResourceUuid() { return resourceUuid; } public void setResourceUuid(String resourceUuid) { this.resourceUuid = resourceUuid; } public String getAccountUuid() { return accountUuid; } public void setAccountUuid(String accountUuid) { this.accountUuid = accountUuid; } public void run() {} }