packages feed

hs-mesos-0.20.1.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