package org.apache.mesos.hbase.util; import org.apache.mesos.Protos; import org.apache.mesos.SchedulerDriver; import org.apache.mesos.hbase.scheduler.HBaseScheduler; import java.util.TimerTask; /** * Used for a Primary node init timer to see if DNS is complete. */ public class PreNNInitTask extends TimerTask { private final DnsResolver dnsResolver; private final HBaseScheduler scheduler; private final SchedulerDriver driver; private final Protos.TaskID taskId; private final Protos.SlaveID slaveID; private final String message; public PreNNInitTask(DnsResolver dnsResolver, HBaseScheduler scheduler, SchedulerDriver driver, Protos.TaskID taskId, Protos.SlaveID slaveID, String message) { this.dnsResolver = dnsResolver; this.scheduler = scheduler; this.driver = driver; this.taskId = taskId; this.slaveID = slaveID; this.message = message; } @Override public void run() { if (dnsResolver.masterNodesResolvable()) { scheduler.sendMessageTo(driver, taskId, slaveID, message); this.cancel(); } } }