forked from vmware-archive/atc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
engine.go
43 lines (31 loc) · 766 Bytes
/
engine.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
32
33
34
35
36
37
38
39
40
41
42
43
package engine
import (
"io"
"code.cloudfoundry.org/lager"
"github.com/concourse/atc"
"github.com/concourse/atc/db"
)
//go:generate counterfeiter . Engine
type Engine interface {
Name() string
CreateBuild(lager.Logger, db.Build, atc.Plan) (Build, error)
LookupBuild(lager.Logger, db.Build) (Build, error)
ReleaseAll(lager.Logger)
}
//go:generate counterfeiter . Build
type Build interface {
Metadata() string
Abort(lager.Logger) error
Resume(lager.Logger)
ReceiveInput(lager.Logger, atc.PlanID, io.ReadCloser)
SendOutput(lager.Logger, atc.PlanID, io.Writer)
}
type Engines []Engine
func (engines Engines) Lookup(name string) (Engine, bool) {
for _, e := range engines {
if e.Name() == name {
return e, true
}
}
return nil, false
}