Package

jabroni

exec

Permalink

package exec

This serves as a kind of example of how this whole jabroni stuff can be used.

We set up an 'RunProcess' requests, which just runs things on a worker node. The worker node can change its subscription to filter/configure what gets run.

The worker also exposes multiple handlers - one for executing a job which returns the jobs output, and another for being able to cancel a job based on a job id.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. exec
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. class ExecConfig extends WorkerConfig

    Permalink
  2. trait ExecutionHandler extends AnyRef

    Permalink
  3. class ExecutionRoutes extends StrictLogging with FailFastCirceSupport

    Permalink

    Combines both the worker routes and some job output ones

  4. class LocalRunner extends ProcessRunner with StrictLogging

    Permalink

    Something which can run commands

  5. case class OperationResult(messages: List[String]) extends Product with Serializable

    Permalink
  6. case class PathConfig(config: Config) extends Product with Serializable

    Permalink
  7. case class ProcessError(process: RunProcess, exitCode: Option[Int], matchDetails: Option[MatchDetails], stdErr: List[String]) extends Product with Serializable

    Permalink
  8. case class ProcessException(error: ProcessError) extends Exception with Product with Serializable

    Permalink
  9. trait ProcessRunner extends AnyRef

    Permalink

    represents something which can be run, either locally or remotely.

    represents something which can be run, either locally or remotely. Just adds the concept of an 'upload' to scala sys process really

  10. case class RemoteRunner(exchange: ExchangeClient, defaultFrameLength: Int, allowTruncation: Boolean, requestWorkOnFailure: Boolean)(implicit mat: Materializer, uploadTimeout: FiniteDuration) extends ProcessRunner with AutoCloseable with FailFastCirceSupport with LazyLogging with Product with Serializable

    Permalink
  11. case class RunProcess(command: List[String], env: Map[String, String] = Map.empty, successExitCodes: Set[Int] = Set(0), frameLength: Option[Int] = None, errorMarker: String = "*** _-={ E R R O R }=-_ ***") extends Product with Serializable

    Permalink

    frameLength

    the frame length to use (if set) for delimiting output lines

    errorMarker

    the marker which, if it appears in the standard output stream, will be followed by ProcessError in json form

  12. case class Upload(name: String, size: Long, source: Source[ByteString, Any], contentType: ContentType = ContentTypes.`text/plain(UTF-8)`) extends Product with Serializable

    Permalink

Value Members

  1. object ExecConfig

    Permalink
  2. object ExecHttp extends CommonRequestBuilding

    Permalink
  3. object ExecMain extends StrictLogging

    Permalink
  4. object ExecutionHandler

    Permalink
  5. object ExecutionRoutes

    Permalink
  6. object LocalRunner

    Permalink
  7. object MultipartExtractor

    Permalink
  8. object OperationResult extends Serializable

    Permalink
  9. object ProcessError extends Serializable

    Permalink
  10. object ProcessException extends StrictLogging with Serializable

    Permalink
  11. object ProcessRunner

    Permalink
  12. object RunProcess extends Serializable

    Permalink
  13. package log

    Permalink

Inherited from AnyRef

Inherited from Any

Ungrouped