|
@@ -40,6 +40,7 @@ func init() {
|
|
// Only one api server can run at the same time - this is enforced by a pidfile.
|
|
// Only one api server can run at the same time - this is enforced by a pidfile.
|
|
// The signals SIGINT, SIGKILL and SIGTERM are intercepted for cleanup.
|
|
// The signals SIGINT, SIGKILL and SIGTERM are intercepted for cleanup.
|
|
func jobInitApi(job *engine.Job) string {
|
|
func jobInitApi(job *engine.Job) string {
|
|
|
|
+ job.Logf("Creating server")
|
|
srv, err := NewServer(job.Eng, ConfigFromJob(job))
|
|
srv, err := NewServer(job.Eng, ConfigFromJob(job))
|
|
if err != nil {
|
|
if err != nil {
|
|
return err.Error()
|
|
return err.Error()
|
|
@@ -50,6 +51,7 @@ func jobInitApi(job *engine.Job) string {
|
|
log.Fatal(err)
|
|
log.Fatal(err)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ job.Logf("Setting up signal traps")
|
|
c := make(chan os.Signal, 1)
|
|
c := make(chan os.Signal, 1)
|
|
signal.Notify(c, os.Interrupt, os.Kill, os.Signal(syscall.SIGTERM))
|
|
signal.Notify(c, os.Interrupt, os.Kill, os.Signal(syscall.SIGTERM))
|
|
go func() {
|
|
go func() {
|
|
@@ -1288,7 +1290,7 @@ func (srv *Server) RegisterLinks(name string, hostConfig *HostConfig) error {
|
|
return fmt.Errorf("No such container: %s", name)
|
|
return fmt.Errorf("No such container: %s", name)
|
|
}
|
|
}
|
|
|
|
|
|
- if hostConfig.Links != nil {
|
|
|
|
|
|
+ if hostConfig != nil && hostConfig.Links != nil {
|
|
for _, l := range hostConfig.Links {
|
|
for _, l := range hostConfig.Links {
|
|
parts, err := parseLink(l)
|
|
parts, err := parseLink(l)
|
|
if err != nil {
|
|
if err != nil {
|
|
@@ -1317,11 +1319,14 @@ func (srv *Server) RegisterLinks(name string, hostConfig *HostConfig) error {
|
|
}
|
|
}
|
|
|
|
|
|
func (srv *Server) ContainerStart(job *engine.Job) string {
|
|
func (srv *Server) ContainerStart(job *engine.Job) string {
|
|
|
|
+ job.Logf("srv engine = %s", srv.Eng.Root())
|
|
|
|
+ job.Logf("job engine = %s", job.Eng.Root())
|
|
if len(job.Args) < 1 {
|
|
if len(job.Args) < 1 {
|
|
return fmt.Sprintf("Usage: %s container_id", job.Name)
|
|
return fmt.Sprintf("Usage: %s container_id", job.Name)
|
|
}
|
|
}
|
|
name := job.Args[0]
|
|
name := job.Args[0]
|
|
runtime := srv.runtime
|
|
runtime := srv.runtime
|
|
|
|
+ job.Logf("loading containers from %s", runtime.repository)
|
|
container := runtime.Get(name)
|
|
container := runtime.Get(name)
|
|
if container == nil {
|
|
if container == nil {
|
|
return fmt.Sprintf("No such container: %s", name)
|
|
return fmt.Sprintf("No such container: %s", name)
|