Browse code

Better error reporting in engine logs and unit tests

Solomon Hykes authored on 2013/10/27 16:16:32
Showing 3 changed files
... ...
@@ -183,7 +183,7 @@ func GetTestImage(runtime *Runtime) *Image {
183 183
 			return image
184 184
 		}
185 185
 	}
186
-	log.Fatalf("Test image %v not found", unitTestImageID)
186
+	log.Fatalf("Test image %v not found in %s: %s", unitTestImageID, runtime.graph.Root, imgs)
187 187
 	return nil
188 188
 }
189 189
 
... ...
@@ -40,6 +40,7 @@ func init() {
40 40
 // Only one api server can run at the same time - this is enforced by a pidfile.
41 41
 // The signals SIGINT, SIGKILL and SIGTERM are intercepted for cleanup.
42 42
 func jobInitApi(job *engine.Job) string {
43
+	job.Logf("Creating server")
43 44
 	srv, err := NewServer(job.Eng, ConfigFromJob(job))
44 45
 	if err != nil {
45 46
 		return err.Error()
... ...
@@ -50,6 +51,7 @@ func jobInitApi(job *engine.Job) string {
50 50
 			log.Fatal(err)
51 51
 		}
52 52
 	}
53
+	job.Logf("Setting up signal traps")
53 54
 	c := make(chan os.Signal, 1)
54 55
 	signal.Notify(c, os.Interrupt, os.Kill, os.Signal(syscall.SIGTERM))
55 56
 	go func() {
... ...
@@ -1288,7 +1290,7 @@ func (srv *Server) RegisterLinks(name string, hostConfig *HostConfig) error {
1288 1288
 		return fmt.Errorf("No such container: %s", name)
1289 1289
 	}
1290 1290
 
1291
-	if hostConfig.Links != nil {
1291
+	if hostConfig != nil && hostConfig.Links != nil {
1292 1292
 		for _, l := range hostConfig.Links {
1293 1293
 			parts, err := parseLink(l)
1294 1294
 			if err != nil {
... ...
@@ -1317,11 +1319,14 @@ func (srv *Server) RegisterLinks(name string, hostConfig *HostConfig) error {
1317 1317
 }
1318 1318
 
1319 1319
 func (srv *Server) ContainerStart(job *engine.Job) string {
1320
+	job.Logf("srv engine = %s", srv.Eng.Root())
1321
+	job.Logf("job engine = %s", job.Eng.Root())
1320 1322
 	if len(job.Args) < 1 {
1321 1323
 		return fmt.Sprintf("Usage: %s container_id", job.Name)
1322 1324
 	}
1323 1325
 	name := job.Args[0]
1324 1326
 	runtime := srv.runtime
1327
+	job.Logf("loading containers from %s", runtime.repository)
1325 1328
 	container := runtime.Get(name)
1326 1329
 	if container == nil {
1327 1330
 		return fmt.Sprintf("No such container: %s", name)
... ...
@@ -41,11 +41,11 @@ func mkRuntime(f utils.Fataler) *Runtime {
41 41
 func mkServerFromEngine(eng *engine.Engine, t utils.Fataler) *Server {
42 42
 	iSrv := eng.Hack_GetGlobalVar("httpapi.server")
43 43
 	if iSrv == nil {
44
-		t.Fatal("Legacy server field not set in engine")
44
+		panic("Legacy server field not set in engine")
45 45
 	}
46 46
 	srv, ok := iSrv.(*Server)
47 47
 	if !ok {
48
-		t.Fatal("Legacy server field in engine does not cast to *Server")
48
+		panic("Legacy server field in engine does not cast to *Server")
49 49
 	}
50 50
 	return srv
51 51
 }