org.jenkinsci.plugins.mesos
Class JenkinsScheduler

java.lang.Object
  extended by org.jenkinsci.plugins.mesos.JenkinsScheduler
All Implemented Interfaces:
org.apache.mesos.Scheduler

public class JenkinsScheduler
extends Object
implements org.apache.mesos.Scheduler


Field Summary
static Lock SUPERVISOR_LOCK
           
 
Constructor Summary
JenkinsScheduler(String jenkinsMaster, MesosCloud mesosCloud)
           
 
Method Summary
 void clearResults()
           
 void disconnected(org.apache.mesos.SchedulerDriver driver)
           
 void error(org.apache.mesos.SchedulerDriver driver, String message)
           
 void executorLost(org.apache.mesos.SchedulerDriver driver, org.apache.mesos.Protos.ExecutorID executorId, org.apache.mesos.Protos.SlaveID slaveId, int status)
           
 void frameworkMessage(org.apache.mesos.SchedulerDriver driver, org.apache.mesos.Protos.ExecutorID executorId, org.apache.mesos.Protos.SlaveID slaveId, byte[] data)
           
 int getNumberOfActiveTasks()
           
 int getNumberofPendingTasks()
           
 void init()
           
 boolean isRunning()
           
 void offerRescinded(org.apache.mesos.SchedulerDriver driver, org.apache.mesos.Protos.OfferID offerId)
           
 void registered(org.apache.mesos.SchedulerDriver driver, org.apache.mesos.Protos.FrameworkID frameworkId, org.apache.mesos.Protos.MasterInfo masterInfo)
           
 void requestJenkinsSlave(Mesos.SlaveRequest request, org.jenkinsci.plugins.mesos.Mesos.SlaveResult result)
           
 void reregistered(org.apache.mesos.SchedulerDriver driver, org.apache.mesos.Protos.MasterInfo masterInfo)
           
 void resourceOffers(org.apache.mesos.SchedulerDriver driver, List<org.apache.mesos.Protos.Offer> offers)
           
protected  void setMesosCloud(MesosCloud mesosCloud)
           
 void slaveLost(org.apache.mesos.SchedulerDriver driver, org.apache.mesos.Protos.SlaveID slaveId)
           
 void statusUpdate(org.apache.mesos.SchedulerDriver driver, org.apache.mesos.Protos.TaskStatus status)
           
 void stop()
           
static void supervise()
          Disconnect framework, if we don't have active mesos slaves.
 void terminateJenkinsSlave(String name)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SUPERVISOR_LOCK

public static final Lock SUPERVISOR_LOCK
Constructor Detail

JenkinsScheduler

public JenkinsScheduler(String jenkinsMaster,
                        MesosCloud mesosCloud)
Method Detail

init

public void init()

stop

public void stop()

isRunning

public boolean isRunning()

requestJenkinsSlave

public void requestJenkinsSlave(Mesos.SlaveRequest request,
                                org.jenkinsci.plugins.mesos.Mesos.SlaveResult result)

terminateJenkinsSlave

public void terminateJenkinsSlave(String name)

registered

public void registered(org.apache.mesos.SchedulerDriver driver,
                       org.apache.mesos.Protos.FrameworkID frameworkId,
                       org.apache.mesos.Protos.MasterInfo masterInfo)
Specified by:
registered in interface org.apache.mesos.Scheduler

reregistered

public void reregistered(org.apache.mesos.SchedulerDriver driver,
                         org.apache.mesos.Protos.MasterInfo masterInfo)
Specified by:
reregistered in interface org.apache.mesos.Scheduler

disconnected

public void disconnected(org.apache.mesos.SchedulerDriver driver)
Specified by:
disconnected in interface org.apache.mesos.Scheduler

resourceOffers

public void resourceOffers(org.apache.mesos.SchedulerDriver driver,
                           List<org.apache.mesos.Protos.Offer> offers)
Specified by:
resourceOffers in interface org.apache.mesos.Scheduler

offerRescinded

public void offerRescinded(org.apache.mesos.SchedulerDriver driver,
                           org.apache.mesos.Protos.OfferID offerId)
Specified by:
offerRescinded in interface org.apache.mesos.Scheduler

statusUpdate

public void statusUpdate(org.apache.mesos.SchedulerDriver driver,
                         org.apache.mesos.Protos.TaskStatus status)
Specified by:
statusUpdate in interface org.apache.mesos.Scheduler

frameworkMessage

public void frameworkMessage(org.apache.mesos.SchedulerDriver driver,
                             org.apache.mesos.Protos.ExecutorID executorId,
                             org.apache.mesos.Protos.SlaveID slaveId,
                             byte[] data)
Specified by:
frameworkMessage in interface org.apache.mesos.Scheduler

slaveLost

public void slaveLost(org.apache.mesos.SchedulerDriver driver,
                      org.apache.mesos.Protos.SlaveID slaveId)
Specified by:
slaveLost in interface org.apache.mesos.Scheduler

executorLost

public void executorLost(org.apache.mesos.SchedulerDriver driver,
                         org.apache.mesos.Protos.ExecutorID executorId,
                         org.apache.mesos.Protos.SlaveID slaveId,
                         int status)
Specified by:
executorLost in interface org.apache.mesos.Scheduler

error

public void error(org.apache.mesos.SchedulerDriver driver,
                  String message)
Specified by:
error in interface org.apache.mesos.Scheduler

setMesosCloud

protected void setMesosCloud(MesosCloud mesosCloud)
Parameters:
mesosCloud - the mesosCloud to set

getNumberofPendingTasks

public int getNumberofPendingTasks()

getNumberOfActiveTasks

public int getNumberOfActiveTasks()

clearResults

public void clearResults()

supervise

public static void supervise()
Disconnect framework, if we don't have active mesos slaves. Also, make sure JenkinsScheduler's request queue is empty.



Copyright © 2004-2014. All Rights Reserved.