@@ -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)
158165func (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