def configure()

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