pipeline: use buildroot.regsiter_api

Register all API end point providers with the `BuildRoot` via the
new `BuildRoot.register_api` call. The context management is now
done via the `BuildRoot` itself.
This commit is contained in:
Christian Kellner 2020-07-22 17:02:33 +02:00 committed by Tom Gundersen
parent 03c5cfb37e
commit 144019a40c

View file

@ -78,18 +78,21 @@ class Stage:
ro_binds = [f"{sources_output}:/run/osbuild/sources"] ro_binds = [f"{sources_output}:/run/osbuild/sources"]
with API(f"{build_root.api}/osbuild", args, monitor) as api, \ api = API(f"{build_root.api}/osbuild", args, monitor)
sources.SourcesServer(f"{build_root.api}/sources", build_root.register_api(api)
libdir or "/usr/lib/osbuild",
self.sources, src = sources.SourcesServer(f"{build_root.api}/sources",
os.path.join(cache, "sources"), libdir or "/usr/lib/osbuild",
sources_output): self.sources,
r = build_root.run( os.path.join(cache, "sources"),
[f"/run/osbuild/lib/stages/{self.name}"], sources_output)
binds=[os.fspath(tree) + ":/run/osbuild/tree"], build_root.register_api(src)
readonly_binds=ro_binds,
) r = build_root.run([f"/run/osbuild/lib/stages/{self.name}"],
return BuildResult(self, r.returncode, api.output) binds=[os.fspath(tree) + ":/run/osbuild/tree"],
readonly_binds=ro_binds)
return BuildResult(self, r.returncode, api.output)
class Assembler: class Assembler:
@ -137,14 +140,17 @@ class Assembler:
ro_binds = [os.fspath(tree) + ":/run/osbuild/tree"] ro_binds = [os.fspath(tree) + ":/run/osbuild/tree"]
with remoteloop.LoopServer(f"{build_root.api}/remoteloop"), \ api = API(f"{build_root.api}/osbuild", args, monitor)
API(f"{build_root.api}/osbuild", args, monitor) as api: build_root.register_api(api)
r = build_root.run(
[f"/run/osbuild/lib/assemblers/{self.name}"], rls = remoteloop.LoopServer(f"{build_root.api}/remoteloop")
binds=binds, build_root.register_api(rls)
readonly_binds=ro_binds,
) r = build_root.run([f"/run/osbuild/lib/assemblers/{self.name}"],
return BuildResult(self, r.returncode, api.output) binds=binds,
readonly_binds=ro_binds)
return BuildResult(self, r.returncode, api.output)
class Pipeline: class Pipeline: