packages feed

hs-mesos-0.20.0.0: test/TestExecutor.hs

{-# LANGUAGE OverloadedStrings #-}
module Main where
import Control.Monad
import Data.Monoid
import System.Exit
import System.Mesos.Executor
import System.Mesos.TaskStatus
import System.Mesos.Types

data TestExecutor = TestExecutor
instance ToExecutor TestExecutor where
  registered _ _ _ _ s = print $ "Registered executor on " <> slaveInfoHostname s
  reRegistered _ _ s = print $ "Re-registered executor on " <> slaveInfoHostname s
  launchTask _ d t = void $ do
    print $ "Starting task " <> fromTaskID (taskID t)
    sendStatusUpdate d $ taskStatus (taskID t) TaskRunning
    -- this is where one would perform the requested task
    sendStatusUpdate d $ taskStatus (taskID t) Finished

main = do
  r <- withExecutorDriver TestExecutor $ \e -> do
    run e
  if r == Stopped
    then exitSuccess
    else exitFailure