Browse code

move utils.Fataler to pkg/log.Fataler

Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)

Erik Hollensbe authored on 2014/08/14 07:13:21
Showing 4 changed files
... ...
@@ -18,6 +18,7 @@ import (
18 18
 	"github.com/docker/docker/builtins"
19 19
 	"github.com/docker/docker/daemon"
20 20
 	"github.com/docker/docker/engine"
21
+	"github.com/docker/docker/pkg/log"
21 22
 	"github.com/docker/docker/runconfig"
22 23
 	"github.com/docker/docker/utils"
23 24
 )
... ...
@@ -28,7 +29,7 @@ import (
28 28
 
29 29
 // Create a temporary daemon suitable for unit testing.
30 30
 // Call t.Fatal() at the first error.
31
-func mkDaemon(f utils.Fataler) *daemon.Daemon {
31
+func mkDaemon(f log.Fataler) *daemon.Daemon {
32 32
 	eng := newTestEngine(f, false, "")
33 33
 	return mkDaemonFromEngine(eng, f)
34 34
 	// FIXME:
... ...
@@ -37,7 +38,7 @@ func mkDaemon(f utils.Fataler) *daemon.Daemon {
37 37
 	// [...]
38 38
 }
39 39
 
40
-func createNamedTestContainer(eng *engine.Engine, config *runconfig.Config, f utils.Fataler, name string) (shortId string) {
40
+func createNamedTestContainer(eng *engine.Engine, config *runconfig.Config, f log.Fataler, name string) (shortId string) {
41 41
 	job := eng.Job("create", name)
42 42
 	if err := job.ImportEnv(config); err != nil {
43 43
 		f.Fatal(err)
... ...
@@ -50,23 +51,23 @@ func createNamedTestContainer(eng *engine.Engine, config *runconfig.Config, f ut
50 50
 	return engine.Tail(outputBuffer, 1)
51 51
 }
52 52
 
53
-func createTestContainer(eng *engine.Engine, config *runconfig.Config, f utils.Fataler) (shortId string) {
53
+func createTestContainer(eng *engine.Engine, config *runconfig.Config, f log.Fataler) (shortId string) {
54 54
 	return createNamedTestContainer(eng, config, f, "")
55 55
 }
56 56
 
57
-func startContainer(eng *engine.Engine, id string, t utils.Fataler) {
57
+func startContainer(eng *engine.Engine, id string, t log.Fataler) {
58 58
 	job := eng.Job("start", id)
59 59
 	if err := job.Run(); err != nil {
60 60
 		t.Fatal(err)
61 61
 	}
62 62
 }
63 63
 
64
-func containerRun(eng *engine.Engine, id string, t utils.Fataler) {
64
+func containerRun(eng *engine.Engine, id string, t log.Fataler) {
65 65
 	startContainer(eng, id, t)
66 66
 	containerWait(eng, id, t)
67 67
 }
68 68
 
69
-func containerFileExists(eng *engine.Engine, id, dir string, t utils.Fataler) bool {
69
+func containerFileExists(eng *engine.Engine, id, dir string, t log.Fataler) bool {
70 70
 	c := getContainer(eng, id, t)
71 71
 	if err := c.Mount(); err != nil {
72 72
 		t.Fatal(err)
... ...
@@ -81,7 +82,7 @@ func containerFileExists(eng *engine.Engine, id, dir string, t utils.Fataler) bo
81 81
 	return true
82 82
 }
83 83
 
84
-func containerAttach(eng *engine.Engine, id string, t utils.Fataler) (io.WriteCloser, io.ReadCloser) {
84
+func containerAttach(eng *engine.Engine, id string, t log.Fataler) (io.WriteCloser, io.ReadCloser) {
85 85
 	c := getContainer(eng, id, t)
86 86
 	i, err := c.StdinPipe()
87 87
 	if err != nil {
... ...
@@ -94,31 +95,31 @@ func containerAttach(eng *engine.Engine, id string, t utils.Fataler) (io.WriteCl
94 94
 	return i, o
95 95
 }
96 96
 
97
-func containerWait(eng *engine.Engine, id string, t utils.Fataler) int {
97
+func containerWait(eng *engine.Engine, id string, t log.Fataler) int {
98 98
 	ex, _ := getContainer(eng, id, t).State.WaitStop(-1 * time.Second)
99 99
 	return ex
100 100
 }
101 101
 
102
-func containerWaitTimeout(eng *engine.Engine, id string, t utils.Fataler) error {
102
+func containerWaitTimeout(eng *engine.Engine, id string, t log.Fataler) error {
103 103
 	_, err := getContainer(eng, id, t).State.WaitStop(500 * time.Millisecond)
104 104
 	return err
105 105
 }
106 106
 
107
-func containerKill(eng *engine.Engine, id string, t utils.Fataler) {
107
+func containerKill(eng *engine.Engine, id string, t log.Fataler) {
108 108
 	if err := eng.Job("kill", id).Run(); err != nil {
109 109
 		t.Fatal(err)
110 110
 	}
111 111
 }
112 112
 
113
-func containerRunning(eng *engine.Engine, id string, t utils.Fataler) bool {
113
+func containerRunning(eng *engine.Engine, id string, t log.Fataler) bool {
114 114
 	return getContainer(eng, id, t).State.IsRunning()
115 115
 }
116 116
 
117
-func containerAssertExists(eng *engine.Engine, id string, t utils.Fataler) {
117
+func containerAssertExists(eng *engine.Engine, id string, t log.Fataler) {
118 118
 	getContainer(eng, id, t)
119 119
 }
120 120
 
121
-func containerAssertNotExists(eng *engine.Engine, id string, t utils.Fataler) {
121
+func containerAssertNotExists(eng *engine.Engine, id string, t log.Fataler) {
122 122
 	daemon := mkDaemonFromEngine(eng, t)
123 123
 	if c := daemon.Get(id); c != nil {
124 124
 		t.Fatal(fmt.Errorf("Container %s should not exist", id))
... ...
@@ -127,7 +128,7 @@ func containerAssertNotExists(eng *engine.Engine, id string, t utils.Fataler) {
127 127
 
128 128
 // assertHttpNotError expect the given response to not have an error.
129 129
 // Otherwise the it causes the test to fail.
130
-func assertHttpNotError(r *httptest.ResponseRecorder, t utils.Fataler) {
130
+func assertHttpNotError(r *httptest.ResponseRecorder, t log.Fataler) {
131 131
 	// Non-error http status are [200, 400)
132 132
 	if r.Code < http.StatusOK || r.Code >= http.StatusBadRequest {
133 133
 		t.Fatal(fmt.Errorf("Unexpected http error: %v", r.Code))
... ...
@@ -136,14 +137,14 @@ func assertHttpNotError(r *httptest.ResponseRecorder, t utils.Fataler) {
136 136
 
137 137
 // assertHttpError expect the given response to have an error.
138 138
 // Otherwise the it causes the test to fail.
139
-func assertHttpError(r *httptest.ResponseRecorder, t utils.Fataler) {
139
+func assertHttpError(r *httptest.ResponseRecorder, t log.Fataler) {
140 140
 	// Non-error http status are [200, 400)
141 141
 	if !(r.Code < http.StatusOK || r.Code >= http.StatusBadRequest) {
142 142
 		t.Fatal(fmt.Errorf("Unexpected http success code: %v", r.Code))
143 143
 	}
144 144
 }
145 145
 
146
-func getContainer(eng *engine.Engine, id string, t utils.Fataler) *daemon.Container {
146
+func getContainer(eng *engine.Engine, id string, t log.Fataler) *daemon.Container {
147 147
 	daemon := mkDaemonFromEngine(eng, t)
148 148
 	c := daemon.Get(id)
149 149
 	if c == nil {
... ...
@@ -152,7 +153,7 @@ func getContainer(eng *engine.Engine, id string, t utils.Fataler) *daemon.Contai
152 152
 	return c
153 153
 }
154 154
 
155
-func mkDaemonFromEngine(eng *engine.Engine, t utils.Fataler) *daemon.Daemon {
155
+func mkDaemonFromEngine(eng *engine.Engine, t log.Fataler) *daemon.Daemon {
156 156
 	iDaemon := eng.Hack_GetGlobalVar("httpapi.daemon")
157 157
 	if iDaemon == nil {
158 158
 		panic("Legacy daemon field not set in engine")
... ...
@@ -164,7 +165,7 @@ func mkDaemonFromEngine(eng *engine.Engine, t utils.Fataler) *daemon.Daemon {
164 164
 	return daemon
165 165
 }
166 166
 
167
-func newTestEngine(t utils.Fataler, autorestart bool, root string) *engine.Engine {
167
+func newTestEngine(t log.Fataler, autorestart bool, root string) *engine.Engine {
168 168
 	if root == "" {
169 169
 		if dir, err := newTestDirectory(unitTestStoreBase); err != nil {
170 170
 			t.Fatal(err)
... ...
@@ -196,7 +197,7 @@ func newTestEngine(t utils.Fataler, autorestart bool, root string) *engine.Engin
196 196
 	return eng
197 197
 }
198 198
 
199
-func NewTestEngine(t utils.Fataler) *engine.Engine {
199
+func NewTestEngine(t log.Fataler) *engine.Engine {
200 200
 	return newTestEngine(t, false, "")
201 201
 }
202 202
 
... ...
@@ -20,6 +20,12 @@ const (
20 20
 	debug
21 21
 )
22 22
 
23
+// A common interface to access the Fatal method of
24
+// both testing.B and testing.T.
25
+type Fataler interface {
26
+	Fatal(args ...interface{})
27
+}
28
+
23 29
 func (p priority) String() string {
24 30
 	switch p {
25 31
 	case fatal:
... ...
@@ -17,6 +17,7 @@ import (
17 17
 	"time"
18 18
 
19 19
 	"github.com/docker/docker/pkg/httputils"
20
+	"github.com/docker/docker/pkg/log"
20 21
 	"github.com/docker/docker/pkg/tarsum"
21 22
 	"github.com/docker/docker/utils"
22 23
 )
... ...
@@ -52,7 +53,7 @@ func NewSession(authConfig *AuthConfig, factory *utils.HTTPRequestFactory, index
52 52
 			return nil, err
53 53
 		}
54 54
 		if info.Standalone {
55
-			utils.Debugf("Endpoint %s is eligible for private registry registry. Enabling decorator.", indexEndpoint)
55
+			log.Debugf("Endpoint %s is eligible for private registry registry. Enabling decorator.", indexEndpoint)
56 56
 			dec := utils.NewHTTPAuthDecorator(authConfig.Username, authConfig.Password)
57 57
 			factory.AddDecorator(dec)
58 58
 		}
... ...
@@ -91,7 +92,7 @@ func (r *Session) GetRemoteHistory(imgID, registry string, token []string) ([]st
91 91
 		return nil, fmt.Errorf("Error while reading the http response: %s", err)
92 92
 	}
93 93
 
94
-	utils.Debugf("Ancestry: %s", jsonString)
94
+	log.Debugf("Ancestry: %s", jsonString)
95 95
 	history := new([]string)
96 96
 	if err := json.Unmarshal(jsonString, history); err != nil {
97 97
 		return nil, err
... ...
@@ -105,13 +106,13 @@ func (r *Session) LookupRemoteImage(imgID, registry string, token []string) bool
105 105
 
106 106
 	req, err := r.reqFactory.NewRequest("GET", registry+"images/"+imgID+"/json", nil)
107 107
 	if err != nil {
108
-		utils.Errorf("Error in LookupRemoteImage %s", err)
108
+		log.Errorf("Error in LookupRemoteImage %s", err)
109 109
 		return false
110 110
 	}
111 111
 	setTokenAuth(req, token)
112 112
 	res, _, err := r.doRequest(req)
113 113
 	if err != nil {
114
-		utils.Errorf("Error in LookupRemoteImage %s", err)
114
+		log.Errorf("Error in LookupRemoteImage %s", err)
115 115
 		return false
116 116
 	}
117 117
 	res.Body.Close()
... ...
@@ -184,10 +185,10 @@ func (r *Session) GetRemoteImageLayer(imgID, registry string, token []string, im
184 184
 	}
185 185
 
186 186
 	if res.Header.Get("Accept-Ranges") == "bytes" && imgSize > 0 {
187
-		utils.Debugf("server supports resume")
187
+		log.Debugf("server supports resume")
188 188
 		return httputils.ResumableRequestReaderWithInitialResponse(client, req, 5, imgSize, res), nil
189 189
 	}
190
-	utils.Debugf("server doesn't support resume")
190
+	log.Debugf("server doesn't support resume")
191 191
 	return res.Body, nil
192 192
 }
193 193
 
... ...
@@ -210,7 +211,7 @@ func (r *Session) GetRemoteTags(registries []string, repository string, token []
210 210
 			return nil, err
211 211
 		}
212 212
 
213
-		utils.Debugf("Got status code %d from %s", res.StatusCode, endpoint)
213
+		log.Debugf("Got status code %d from %s", res.StatusCode, endpoint)
214 214
 		defer res.Body.Close()
215 215
 
216 216
 		if res.StatusCode != 200 && res.StatusCode != 404 {
... ...
@@ -255,7 +256,7 @@ func (r *Session) GetRepositoryData(remote string) (*RepositoryData, error) {
255 255
 	indexEp := r.indexEndpoint
256 256
 	repositoryTarget := fmt.Sprintf("%srepositories/%s/images", indexEp, remote)
257 257
 
258
-	utils.Debugf("[registry] Calling GET %s", repositoryTarget)
258
+	log.Debugf("[registry] Calling GET %s", repositoryTarget)
259 259
 
260 260
 	req, err := r.reqFactory.NewRequest("GET", repositoryTarget, nil)
261 261
 	if err != nil {
... ...
@@ -324,7 +325,7 @@ func (r *Session) GetRepositoryData(remote string) (*RepositoryData, error) {
324 324
 
325 325
 func (r *Session) PushImageChecksumRegistry(imgData *ImgData, registry string, token []string) error {
326 326
 
327
-	utils.Debugf("[registry] Calling PUT %s", registry+"images/"+imgData.ID+"/checksum")
327
+	log.Debugf("[registry] Calling PUT %s", registry+"images/"+imgData.ID+"/checksum")
328 328
 
329 329
 	req, err := r.reqFactory.NewRequest("PUT", registry+"images/"+imgData.ID+"/checksum", nil)
330 330
 	if err != nil {
... ...
@@ -361,7 +362,7 @@ func (r *Session) PushImageChecksumRegistry(imgData *ImgData, registry string, t
361 361
 // Push a local image to the registry
362 362
 func (r *Session) PushImageJSONRegistry(imgData *ImgData, jsonRaw []byte, registry string, token []string) error {
363 363
 
364
-	utils.Debugf("[registry] Calling PUT %s", registry+"images/"+imgData.ID+"/json")
364
+	log.Debugf("[registry] Calling PUT %s", registry+"images/"+imgData.ID+"/json")
365 365
 
366 366
 	req, err := r.reqFactory.NewRequest("PUT", registry+"images/"+imgData.ID+"/json", bytes.NewReader(jsonRaw))
367 367
 	if err != nil {
... ...
@@ -396,7 +397,7 @@ func (r *Session) PushImageJSONRegistry(imgData *ImgData, jsonRaw []byte, regist
396 396
 
397 397
 func (r *Session) PushImageLayerRegistry(imgID string, layer io.Reader, registry string, token []string, jsonRaw []byte) (checksum string, checksumPayload string, err error) {
398 398
 
399
-	utils.Debugf("[registry] Calling PUT %s", registry+"images/"+imgID+"/layer")
399
+	log.Debugf("[registry] Calling PUT %s", registry+"images/"+imgID+"/layer")
400 400
 
401 401
 	tarsumLayer := &tarsum.TarSum{Reader: layer}
402 402
 	h := sha256.New()
... ...
@@ -483,8 +484,8 @@ func (r *Session) PushImageJSONIndex(remote string, imgList []*ImgData, validate
483 483
 		suffix = "images"
484 484
 	}
485 485
 	u := fmt.Sprintf("%srepositories/%s/%s", indexEp, remote, suffix)
486
-	utils.Debugf("[registry] PUT %s", u)
487
-	utils.Debugf("Image list pushed to index:\n%s", imgListJSON)
486
+	log.Debugf("[registry] PUT %s", u)
487
+	log.Debugf("Image list pushed to index:\n%s", imgListJSON)
488 488
 	req, err := r.reqFactory.NewRequest("PUT", u, bytes.NewReader(imgListJSON))
489 489
 	if err != nil {
490 490
 		return nil, err
... ...
@@ -505,7 +506,7 @@ func (r *Session) PushImageJSONIndex(remote string, imgList []*ImgData, validate
505 505
 
506 506
 	// Redirect if necessary
507 507
 	for res.StatusCode >= 300 && res.StatusCode < 400 {
508
-		utils.Debugf("Redirected to %s", res.Header.Get("Location"))
508
+		log.Debugf("Redirected to %s", res.Header.Get("Location"))
509 509
 		req, err = r.reqFactory.NewRequest("PUT", res.Header.Get("Location"), bytes.NewReader(imgListJSON))
510 510
 		if err != nil {
511 511
 			return nil, err
... ...
@@ -534,7 +535,7 @@ func (r *Session) PushImageJSONIndex(remote string, imgList []*ImgData, validate
534 534
 		}
535 535
 		if res.Header.Get("X-Docker-Token") != "" {
536 536
 			tokens = res.Header["X-Docker-Token"]
537
-			utils.Debugf("Auth token: %v", tokens)
537
+			log.Debugf("Auth token: %v", tokens)
538 538
 		} else {
539 539
 			return nil, fmt.Errorf("Index response didn't contain an access token")
540 540
 		}
... ...
@@ -565,7 +566,7 @@ func (r *Session) PushImageJSONIndex(remote string, imgList []*ImgData, validate
565 565
 }
566 566
 
567 567
 func (r *Session) SearchRepositories(term string) (*SearchResults, error) {
568
-	utils.Debugf("Index server: %s", r.indexEndpoint)
568
+	log.Debugf("Index server: %s", r.indexEndpoint)
569 569
 	u := r.indexEndpoint + "search?q=" + url.QueryEscape(term)
570 570
 	req, err := r.reqFactory.NewRequest("GET", u, nil)
571 571
 	if err != nil {
... ...
@@ -28,12 +28,6 @@ type KeyValuePair struct {
28 28
 	Value string
29 29
 }
30 30
 
31
-// A common interface to access the Fatal method of
32
-// both testing.B and testing.T.
33
-type Fataler interface {
34
-	Fatal(args ...interface{})
35
-}
36
-
37 31
 // Go is a basic promise implementation: it wraps calls a function in a goroutine,
38 32
 // and returns a channel which will later return the function's return value.
39 33
 func Go(f func() error) chan error {