| 375 | } |
| 376 | |
| 377 | func RestoreNode(cmd RestoreCmd, asPrimary bool, tag string) error { |
| 378 | if docker.IsRunning() { |
| 379 | tlog.Logf("Restarting %s container %s\n", tag, cmd) |
| 380 | return docker.Restart(cmd.Node.ID()) |
| 381 | } |
| 382 | |
| 383 | if !cos.AnyHasPrefixInSlice("-daemon_id", cmd.Args) { |
| 384 | cmd.Args = append(cmd.Args, "-daemon_id="+cmd.Node.ID()) |
| 385 | } |
| 386 | |
| 387 | tlog.Logf("Restoring %s: %s %+v\n", tag, cmd.Cmd, cmd.Args) |
| 388 | _, err := startNode(cmd.Cmd, cmd.Args, asPrimary) |
| 389 | return err |
| 390 | } |
| 391 | |
| 392 | func startNode(cmd string, args []string, asPrimary bool) (pid int, err error) { |
| 393 | ncmd := exec.Command(cmd, args...) |