Skip to content

Commit ec4863a

Browse files
author
shin-
committed
Factorized auth token setting
1 parent a02bc8a commit ec4863a

File tree

1 file changed

+15
-24
lines changed

1 file changed

+15
-24
lines changed

registry/registry.go

Lines changed: 15 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -153,16 +153,21 @@ func doWithCookies(c *http.Client, req *http.Request) (*http.Response, error) {
153153
return res, err
154154
}
155155

156+
func setTokenAuth(req *http.Request, token []string) (*http.Request) {
157+
if req.Header.Get("Authorization") == "" { // Don't override
158+
req.Header.Set("Authorization", "Token "+strings.Join(token, ","))
159+
}
160+
return req
161+
}
162+
156163
// Retrieve the history of a given image from the Registry.
157164
// Return a list of the parent's json (requested image included)
158165
func (r *Registry) GetRemoteHistory(imgID, registry string, token []string) ([]string, error) {
159166
req, err := r.reqFactory.NewRequest("GET", registry+"images/"+imgID+"/ancestry", nil)
160167
if err != nil {
161168
return nil, err
162169
}
163-
if req.Header.Get("Authorization") == "" { // Don't override
164-
req.Header.Set("Authorization", "Token "+strings.Join(token, ","))
165-
}
170+
req = setTokenAuth(req, token)
166171
res, err := doWithCookies(r.client, req)
167172
if err != nil {
168173
return nil, err
@@ -195,9 +200,7 @@ func (r *Registry) LookupRemoteImage(imgID, registry string, token []string) boo
195200
if err != nil {
196201
return false
197202
}
198-
if req.Header.Get("Authorization") == "" { // Don't override
199-
req.Header.Set("Authorization", "Token "+strings.Join(token, ","))
200-
}
203+
req = setTokenAuth(req, token)
201204
res, err := doWithCookies(r.client, req)
202205
if err != nil {
203206
return false
@@ -213,9 +216,7 @@ func (r *Registry) GetRemoteImageJSON(imgID, registry string, token []string) ([
213216
if err != nil {
214217
return nil, -1, fmt.Errorf("Failed to download json: %s", err)
215218
}
216-
if req.Header.Get("Authorization") == "" { // Don't override
217-
req.Header.Set("Authorization", "Token "+strings.Join(token, ","))
218-
}
219+
req = setTokenAuth(req, token)
219220
res, err := doWithCookies(r.client, req)
220221
if err != nil {
221222
return nil, -1, fmt.Errorf("Failed to download json: %s", err)
@@ -242,9 +243,7 @@ func (r *Registry) GetRemoteImageLayer(imgID, registry string, token []string) (
242243
if err != nil {
243244
return nil, fmt.Errorf("Error while getting from the server: %s\n", err)
244245
}
245-
if req.Header.Get("Authorization") == "" { // Don't override
246-
req.Header.Set("Authorization", "Token "+strings.Join(token, ","))
247-
}
246+
req = setTokenAuth(req, token)
248247
res, err := doWithCookies(r.client, req)
249248
if err != nil {
250249
return nil, err
@@ -375,9 +374,7 @@ func (r *Registry) PushImageChecksumRegistry(imgData *ImgData, registry string,
375374
if err != nil {
376375
return err
377376
}
378-
if req.Header.Get("Authorization") == "" { // Don't override
379-
req.Header.Set("Authorization", "Token "+strings.Join(token, ","))
380-
}
377+
req = setTokenAuth(req, token)
381378
req.Header.Set("X-Docker-Checksum", imgData.Checksum)
382379

383380
res, err := doWithCookies(r.client, req)
@@ -414,9 +411,7 @@ func (r *Registry) PushImageJSONRegistry(imgData *ImgData, jsonRaw []byte, regis
414411
return err
415412
}
416413
req.Header.Add("Content-type", "application/json")
417-
if req.Header.Get("Authorization") == "" { // Don't override
418-
req.Header.Set("Authorization", "Token "+strings.Join(token, ","))
419-
}
414+
req = setTokenAuth(req, token)
420415

421416
res, err := doWithCookies(r.client, req)
422417
if err != nil {
@@ -451,9 +446,7 @@ func (r *Registry) PushImageLayerRegistry(imgID string, layer io.Reader, registr
451446
}
452447
req.ContentLength = -1
453448
req.TransferEncoding = []string{"chunked"}
454-
if req.Header.Get("Authorization") == "" { // Don't override
455-
req.Header.Set("Authorization", "Token "+strings.Join(token, ","))
456-
}
449+
req = setTokenAuth(req, token)
457450
res, err := doWithCookies(r.client, req)
458451
if err != nil {
459452
return "", fmt.Errorf("Failed to upload layer: %s", err)
@@ -482,9 +475,7 @@ func (r *Registry) PushRegistryTag(remote, revision, tag, registry string, token
482475
return err
483476
}
484477
req.Header.Add("Content-type", "application/json")
485-
if req.Header.Get("Authorization") == "" { // Don't override
486-
req.Header.Set("Authorization", "Token "+strings.Join(token, ","))
487-
}
478+
req = setTokenAuth(req, token)
488479
req.ContentLength = int64(len(revision))
489480
res, err := doWithCookies(r.client, req)
490481
if err != nil {

0 commit comments

Comments
 (0)