Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
if auth and registry is None:
raise KeyError(
"When auth is specified you need to specifiy also the registry"
)
# from {"key":"value"} to ["key=value"]
if "Env" in task_template["ContainerSpec"]:
task_template["ContainerSpec"]["Env"] = [
format_env(k, v)
for k, v in task_template["ContainerSpec"]["Env"].items()
]
headers = None
if auth:
headers = {"X-Registry-Auth": compose_auth_header(auth, registry)}
config = {
"TaskTemplate": task_template,
"Name": name,
"Labels": labels,
"Mode": mode,
"UpdateConfig": update_config,
"RollbackConfig": rollback_config,
"Networks": clean_networks(networks),
"EndpointSpec": endpoint_spec,
}
data = json.dumps(clean_map(config))
response = await self.docker._query_json(
"services/create", method="POST", data=data, headers=headers
image = from_image # TODO: clean up
params = {"fromImage": image}
headers = {}
if repo:
params["repo"] = repo
if tag:
params["tag"] = tag
if auth is not None:
registry, has_registry_host, _ = image.partition("/")
if not has_registry_host:
raise ValueError(
"Image should have registry host "
"when auth information is provided"
)
# TODO: assert registry == repo?
headers["X-Registry-Auth"] = compose_auth_header(auth, registry)
cm = self.docker._query("images/create", "POST", params=params, headers=headers)
return self._handle_response(cm, stream)
) -> Mapping:
params = {}
headers = {
# Anonymous push requires a dummy auth header.
"X-Registry-Auth": "placeholder"
}
if tag:
params["tag"] = tag
if auth is not None:
registry, has_registry_host, _ = name.partition("/")
if not has_registry_host:
raise ValueError(
"Image should have registry host "
"when auth information is provided"
)
headers["X-Registry-Auth"] = compose_auth_header(auth, registry)
cm = self.docker._query(
"images/{name}/push".format(name=name),
"POST",
params=params,
headers=headers,
)
return self._handle_response(cm, stream)