From 7bdbc31f47a801dc9215163ae5cd84581f1d83e2 Mon Sep 17 00:00:00 2001 From: Daniel Safta Date: Mon, 11 Oct 2021 12:13:15 +0300 Subject: [PATCH] fix errorcode docker registry in StarlingX 3.0 branch doesn't support POST method for token and will return 400. Switch to GET method to get token if StatusCode is 400. --- remotes/docker/authorizer.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/remotes/docker/authorizer.go b/remotes/docker/authorizer.go index 67e4aea..c06b222 100644 --- a/remotes/docker/authorizer.go +++ b/remotes/docker/authorizer.go @@ -284,7 +284,7 @@ func (ah *authHandler) doBearerAuth(ctx context.Context) (token string, err erro // Registries without support for POST may return 404 for POST /v2/token. // As of September 2017, GCR is known to return 404. // As of February 2018, JFrog Artifactory is known to return 401. - if (errStatus.StatusCode == 405 && to.Username != "") || errStatus.StatusCode == 404 || errStatus.StatusCode == 401 { + if (errStatus.StatusCode == 405 && to.Username != "") || errStatus.StatusCode == 404 || errStatus.StatusCode == 401 || errStatus.StatusCode == 400 { resp, err := auth.FetchToken(ctx, ah.client, ah.header, to) if err != nil { return "", err -- 2.17.1