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