Skip to content

Commit

Permalink
Add support for multiple backends piped together
Browse files Browse the repository at this point in the history
Docker-DCO-1.1-Signed-off-by: Ben Firshman <[email protected]> (github: bfirsh)
  • Loading branch information
bfirsh committed Jun 5, 2014
1 parent a0874d7 commit 3bb782f
Showing 1 changed file with 30 additions and 23 deletions.
53 changes: 30 additions & 23 deletions swarmd/swarmd.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,30 +43,37 @@ func cmdDaemon(c *cli.Context) {
fmt.Println(strings.Join(names, "\n"))
return
}
bName, bArgs, err := parseCmd(c.Args()[0])
if err != nil {
Fatalf("parse: %v", err)
}
fmt.Printf("---> Loading backend '%s'\n", strings.Join(append([]string{bName}, bArgs...), " "))
_, backend, err := back.Attach(bName)
if err != nil {
Fatalf("%s: %v\n", bName, err)
}
fmt.Printf("---> Spawning\n")
instance, err := backend.Spawn(bArgs...)
if err != nil {
Fatalf("spawn %s: %v\n", bName, err)
}
fmt.Printf("---> Attaching\n")
instanceIn, _, err := instance.Attach("")
if err != nil {
Fatalf("attach: %v", err)
}
fmt.Printf("---> Starting\n")
if err := instance.Start(); err != nil {
Fatalf("start: %v", err)
var previousInstanceIn beam.Receiver
for _, backendArg := range c.Args() {
bName, bArgs, err := parseCmd(backendArg)
if err != nil {
Fatalf("parse: %v", err)
}
fmt.Printf("---> Loading backend '%s'\n", strings.Join(append([]string{bName}, bArgs...), " "))
_, backend, err := back.Attach(bName)
if err != nil {
Fatalf("%s: %v\n", bName, err)
}
fmt.Printf("---> Spawning\n")
instance, err := backend.Spawn(bArgs...)
if err != nil {
Fatalf("spawn %s: %v\n", bName, err)
}
fmt.Printf("---> Attaching\n")
instanceIn, instanceOut, err := instance.Attach("")
if err != nil {
Fatalf("attach: %v", err)
}
fmt.Printf("---> Starting\n")
if err := instance.Start(); err != nil {
Fatalf("start: %v", err)
}
if previousInstanceIn != nil {
go beam.Copy(instanceOut, previousInstanceIn)
}
previousInstanceIn = instanceIn
}
_, err = beam.Copy(app, instanceIn)
_, err := beam.Copy(app, previousInstanceIn)
if err != nil {
Fatalf("copy: %v", err)
}
Expand Down

0 comments on commit 3bb782f

Please sign in to comment.