Improve resilience of TestPullFromCentralRegistryImplicitRefParts
Sometimes transient network issues will cause TestPullFromCentralRegistryImplicitRefParts to end up pulling with the v1 protocol. This violates the assumptions behind the test. To make the test more robust, allow a few retries if any pull ends up using the v1 protocol. Fixes #17214 Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
This commit is contained in:
parent
7eed9a642e
commit
8842011153
1 changed files with 17 additions and 0 deletions
|
@ -86,6 +86,23 @@ func (s *DockerHubPullSuite) TestPullFromCentralRegistryImplicitRefParts(c *chec
|
|||
"index.docker.io/library/hello-world",
|
||||
} {
|
||||
out := s.Cmd(c, "pull", i)
|
||||
v1Retries := 0
|
||||
for strings.Contains(out, "this image was pulled from a legacy registry") {
|
||||
// Some network errors may cause fallbacks to the v1
|
||||
// protocol, which would violate the test's assumption
|
||||
// that it will get the same images. To make the test
|
||||
// more robust against these network glitches, allow a
|
||||
// few retries if we end up with a v1 pull.
|
||||
|
||||
if v1Retries > 2 {
|
||||
c.Fatalf("too many v1 fallback incidents when pulling %s", i)
|
||||
}
|
||||
|
||||
s.Cmd(c, "rmi", i)
|
||||
out = s.Cmd(c, "pull", i)
|
||||
|
||||
v1Retries++
|
||||
}
|
||||
c.Assert(out, checker.Contains, "Image is up to date for hello-world:latest")
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue