in src/buildstream_plugins/sources/docker.py [0:0]
def configure(self, node):
# url is deprecated, but accept it as a valid key so that we can raise
# a nicer warning.
node.validate_keys(
Source.COMMON_CONFIG_KEYS + ["architecture", "registry-url", "image", "os", "ref", "track", "url"]
)
if "url" in node and ("image" in node or "registry-url" in node):
raise SourceError("{}: May specify either 'url', or 'image' and 'registry-url'".format(self))
if "url" not in node and "image" not in node:
raise SourceError("{}: Must define either 'url' or 'image'".format(self))
if "url" in node:
self.url = node.get_str("url")
translated_url = self.translate_url(self.url)
scheme, netloc, path, _, _ = urllib.parse.urlsplit(translated_url)
self.registry_url = urllib.parse.urlunsplit((scheme, netloc, "", "", ""))
self.image = path
if "image" in node:
self.url = None
self.image = node.get_str("image")
self.original_registry_url = node.get_str("registry-url", _DOCKER_HUB_URL)
self.registry_url = self.translate_url(self.original_registry_url)
self.tag = node.get_str("track", "") or None
self.architecture = node.get_str("architecture", "") or default_architecture()
self.os = node.get_str("os", "") or default_os()
self.digest = None
self.load_ref(node)
self.client = DockerRegistryV2Client(self.registry_url)
self.manifest = None