- entries map[string]container.QueueEnt
- updTime time.Time
- subscribers map[<-chan struct{}]chan struct{}
+ entries map[string]container.QueueEnt
+ updTime time.Time
+ subscribers map[<-chan struct{}]chan struct{}
+ stateChanges []QueueStateChange
+type QueueStateChange struct {
+ UUID string
+ From arvados.ContainerState
+ To arvados.ContainerState
+}
+
+// All calls to Lock/Unlock/Cancel to date.
+func (q *Queue) StateChanges() []QueueStateChange {
+ q.mtx.Lock()
+ defer q.mtx.Unlock()
+ return q.stateChanges
+}
+
// Entries returns the containers that were queued when Update was
// last called.
func (q *Queue) Entries() (map[string]container.QueueEnt, time.Time) {
// Entries returns the containers that were queued when Update was
// last called.
func (q *Queue) Entries() (map[string]container.QueueEnt, time.Time) {
// caller must have lock.
func (q *Queue) changeState(uuid string, from, to arvados.ContainerState) error {
ent := q.entries[uuid]
// caller must have lock.
func (q *Queue) changeState(uuid string, from, to arvados.ContainerState) error {
ent := q.entries[uuid]
if ent.Container.State != from {
return fmt.Errorf("changeState failed: state=%q", ent.Container.State)
}
if ent.Container.State != from {
return fmt.Errorf("changeState failed: state=%q", ent.Container.State)
}
arvados.ContainerStateQueued: true,
arvados.ContainerStateLocked: true,
arvados.ContainerStateCancelled: true,
},
arvados.ContainerStateQueued: true,
arvados.ContainerStateLocked: true,
arvados.ContainerStateCancelled: true,
},
arvados.ContainerStateQueued: true,
arvados.ContainerStateLocked: true,
arvados.ContainerStateRunning: true,
arvados.ContainerStateCancelled: true,
},
arvados.ContainerStateQueued: true,
arvados.ContainerStateLocked: true,
arvados.ContainerStateRunning: true,
arvados.ContainerStateCancelled: true,
},
arvados.ContainerStateRunning: true,
arvados.ContainerStateCancelled: true,
arvados.ContainerStateComplete: true,
arvados.ContainerStateRunning: true,
arvados.ContainerStateCancelled: true,
arvados.ContainerStateComplete: true,