20984: Handle "instance type not available" condition better.
[arvados.git] / lib / dispatchcloud / scheduler / interfaces.go
index 59700c393523844094a0845922b767cd7da56e31..6e56bd8c40962e9f9c6c595cf0ef4cc550fa82eb 100644 (file)
@@ -7,13 +7,14 @@ package scheduler
 import (
        "time"
 
-       "git.curoverse.com/arvados.git/lib/dispatchcloud/container"
-       "git.curoverse.com/arvados.git/lib/dispatchcloud/worker"
-       "git.curoverse.com/arvados.git/sdk/go/arvados"
+       "git.arvados.org/arvados.git/lib/dispatchcloud/container"
+       "git.arvados.org/arvados.git/lib/dispatchcloud/worker"
+       "git.arvados.org/arvados.git/sdk/go/arvados"
 )
 
 // A ContainerQueue is a set of containers that need to be started or
-// stopped. Implemented by container.Queue and test stubs.
+// stopped. Implemented by container.Queue and test stubs. See
+// container.Queue method documentation for details.
 type ContainerQueue interface {
        Entries() (entries map[string]container.QueueEnt, updated time.Time)
        Lock(uuid string) error
@@ -28,16 +29,18 @@ type ContainerQueue interface {
 
 // A WorkerPool asynchronously starts and stops worker VMs, and starts
 // and stops containers on them. Implemented by worker.Pool and test
-// stubs.
+// stubs. See worker.Pool method documentation for details.
 type WorkerPool interface {
        Running() map[string]time.Time
        Unallocated() map[arvados.InstanceType]int
        CountWorkers() map[worker.State]int
+       AtCapacity(arvados.InstanceType) bool
        AtQuota() bool
-       Create(arvados.InstanceType) error
+       Create(arvados.InstanceType) bool
        Shutdown(arvados.InstanceType) bool
        StartContainer(arvados.InstanceType, arvados.Container) bool
-       KillContainer(uuid string)
+       KillContainer(uuid, reason string) bool
+       ForgetContainer(uuid string)
        Subscribe() <-chan struct{}
        Unsubscribe(<-chan struct{})
 }