From 5dd9c504d32e9f6cc5fd419a7f6e6afdc2a78021 Mon Sep 17 00:00:00 2001 From: Lars Wander Date: Fri, 24 Mar 2017 14:20:00 -0700 Subject: [PATCH] fix(docker): Prefer repository name over image name when loading tags (#1526) --- .../DockerRegistryImageCachingAgent.groovy | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/clouddriver-docker/src/main/groovy/com/netflix/spinnaker/clouddriver/docker/registry/provider/agent/DockerRegistryImageCachingAgent.groovy b/clouddriver-docker/src/main/groovy/com/netflix/spinnaker/clouddriver/docker/registry/provider/agent/DockerRegistryImageCachingAgent.groovy index 7c4f08333fb..11ac16d8e49 100644 --- a/clouddriver-docker/src/main/groovy/com/netflix/spinnaker/clouddriver/docker/registry/provider/agent/DockerRegistryImageCachingAgent.groovy +++ b/clouddriver-docker/src/main/groovy/com/netflix/spinnaker/clouddriver/docker/registry/provider/agent/DockerRegistryImageCachingAgent.groovy @@ -83,17 +83,28 @@ class DockerRegistryImageCachingAgent implements CachingAgent, AccountAware { private Map> loadTags() { credentials.repositories.findAll { it -> threadCount == 1 || (it.hashCode() % threadCount).abs() == index - }.collectEntries { - if(credentials.skip?.contains(it)) { + }.collectEntries { repository -> + if(credentials.skip?.contains(repository)) { return [:] } DockerRegistryTags tags = null try { - tags = credentials.client.getTags(it) + tags = credentials.client.getTags(repository) } catch (e) { - log.error("Could not load tags for ${it}") + log.error("Could not load tags for ${repository}") + } + def name = tags?.name + def imageTags = tags?.tags + if (name && imageTags) { + if (name != repository) { + // TODO(lwander) remove this warning if this doesn't cause problems + log.warn("Docker registry $accountName responded with an image name that does not match the repository name. Defaulting to repository='$repository' over name='$name'") + name = repository + } + [(name): imageTags] + } else { + return [:] } - tags?.tags && tags?.name ? [(tags.name): tags.tags] : [:] } }