forked from tsuru/tsuru
-
Notifications
You must be signed in to change notification settings - Fork 0
/
provisioner.go
31 lines (26 loc) · 962 Bytes
/
provisioner.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// Copyright 2015 tsuru authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package healer
import (
"io"
"sync"
"github.com/globalsign/mgo/bson"
"github.com/tsuru/docker-cluster/cluster"
"github.com/tsuru/tsuru/provision"
"github.com/tsuru/tsuru/provision/docker/container"
)
type DockerProvisioner interface {
ClusterClient() provision.BuilderDockerClient
Cluster() *cluster.Cluster
ActionLimiter() provision.ActionLimiter
MoveOneContainer(container.Container, string, chan error, *sync.WaitGroup, io.Writer, container.AppLocker) container.Container
MoveContainers(fromHost, toHost string, w io.Writer) error
HandleMoveErrors(errors chan error, w io.Writer) error
GetContainer(id string) (*container.Container, error)
ListContainers(query bson.M) ([]container.Container, error)
}
type AppLocker interface {
Lock(appName string) bool
Unlock(appName string)
}