Skip to content

Instantly share code, notes, and snippets.

@abishekk92
Last active August 29, 2015 13:58
Show Gist options
  • Save abishekk92/9987658 to your computer and use it in GitHub Desktop.
Save abishekk92/9987658 to your computer and use it in GitHub Desktop.
Mesos Demo Framework Executor
package abishekk92.executor
import abishekk92.Logging
import org.apache.mesos.{ Executor, ExecutorDriver }
import org.apache.mesos.Protos._
class Demo_frameworkExecutor extends Executor with Logging {
def registered(
driver: ExecutorDriver,
executorInfo: ExecutorInfo,
frameworkInfo: FrameworkInfo,
slaveInfo: SlaveInfo): Unit = {
log.info("Executor.registered")
}
def reregistered(
driver: ExecutorDriver,
slaveInfo: SlaveInfo): Unit = {
log.info("Executor.reregistered")
}
def disconnected(driver: ExecutorDriver): Unit = {
log.info("Executor.disconnected")
}
def launchTask(driver: ExecutorDriver, task: TaskInfo): Unit = {
log.info("Executor.launchTask")
}
def killTask(driver: ExecutorDriver, taskId: TaskID): Unit = {
log.info("Executor.killTask")
}
def frameworkMessage(driver: ExecutorDriver, data: Array[Byte]): Unit = {
log.info("Executor.frameworkMessage")
}
def shutdown(driver: ExecutorDriver): Unit = {
log.info("Executor.shutdown")
}
def error(driver: ExecutorDriver, message: String): Unit = {
log.info("Executor.error")
}
}
package abishekk92.scheduler
import abishekk92.Logging
import org.apache.mesos.{ Scheduler, SchedulerDriver }
import org.apache.mesos.Protos._
import java.util.{ List => JList }
import scala.collection.JavaConversions._
class Demo_frameworkScheduler extends Scheduler with Logging {
def registered(
driver: SchedulerDriver,
frameworkId: FrameworkID,
masterInfo: MasterInfo): Unit = {
log.info("Scheduler.registered")
log.info("FrameworkID:\n%s" format frameworkId)
log.info("MasterInfo:\n%s" format masterInfo)
}
def reregistered(
driver: SchedulerDriver,
masterInfo: MasterInfo): Unit = {
log.info("Scheduler.reregistered")
log.info("MasterInfo:\n%s" format masterInfo)
}
def resourceOffers(
driver: SchedulerDriver,
offers: JList[Offer]): Unit = {
log.info("Scheduler.resourceOffers")
// print and decline all received offers
offers foreach { offer =>
log.info(offer.toString)
driver declineOffer offer.getId
}
}
def offerRescinded(
driver: SchedulerDriver,
offerId: OfferID): Unit = {
log.info("Scheduler.offerRescinded [%s]" format offerId.getValue)
}
def statusUpdate(
driver: SchedulerDriver,
status: TaskStatus): Unit = {
log.info("Scheduler.statusUpdate:\n%s" format status)
}
def frameworkMessage(
driver: SchedulerDriver,
executorId: ExecutorID,
slaveId: SlaveID,
data: Array[Byte]): Unit = {
log.info("Scheduler.frameworkMessage")
}
def disconnected(driver: SchedulerDriver): Unit = {
log.info("Scheduler.disconnected")
}
def slaveLost(
driver: SchedulerDriver,
slaveId: SlaveID): Unit = {
log.info("Scheduler.slaveLost: [%s]" format slaveId.getValue)
}
def executorLost(
driver: SchedulerDriver,
executorId: ExecutorID,
slaveId: SlaveID,
status: Int): Unit = {
log.info("Scheduler.executorLost: [%s]" format executorId.getValue)
}
def error(driver: SchedulerDriver, message: String): Unit = {
log.info("Scheduler.error: [%s]" format message)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment