Details
-
Story
-
Status: Reopened
-
Minor
-
Resolution: Unresolved
-
None
-
None
-
None
Description
Right now the AuroraExecutor takes runner_provider, sandbox_provider and status_providers. These need to be the following:
- runner_provider: TaskRunnerProvider (assigned_task -> TaskRunner)
- status_providers: list(StatusCheckerProvider) (assigned_task -> StatusChecker)
- sandbox_provider: SandboxProvider (assigned_task -> SandboxInterface)
These are generic enough that we should allow these to be specified on the command line as entry points, for example, something like:
--runner_provider apache.aurora.executor.thermos_runner:ThermosTaskRunnerProvider --status_provider apache.aurora.executor.common.health_checker:HealthCheckerProvider --status_provider myorg.zookeeper:ZkAnnouncerProvider --sandbox_provider myorg.docker:DockerSandboxProvider
Then have these loaded up using pkg_resources.EntryPoint. These plugins can either be linked into the .pex or injected onto the PYTHONPATH of the executor.