pipeline: remove Assembler class
Now that assemblers are represented via the `Stage` class, the Assembler class is not needed anymore. Adjust the monitor method to take an `pipeline.Stage` for the `assembler` method as well.
This commit is contained in:
parent
8ccc73d1c3
commit
6c02002cbd
4 changed files with 3 additions and 55 deletions
|
|
@ -8,11 +8,10 @@ The utility module `osbuild.util` provides access to common functionality
|
||||||
independent of osbuild but used across the osbuild codebase.
|
independent of osbuild but used across the osbuild codebase.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from .pipeline import Assembler, Manifest, Pipeline, Stage
|
from .pipeline import Manifest, Pipeline, Stage
|
||||||
|
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
"Assembler",
|
|
||||||
"Manifest",
|
"Manifest",
|
||||||
"Pipeline",
|
"Pipeline",
|
||||||
"Stage",
|
"Stage",
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,7 @@ class BaseMonitor(abc.ABC):
|
||||||
def stage(self, stage: osbuild.Stage):
|
def stage(self, stage: osbuild.Stage):
|
||||||
"""Called when a stage is being built"""
|
"""Called when a stage is being built"""
|
||||||
|
|
||||||
def assembler(self, assembler: osbuild.Assembler):
|
def assembler(self, assembler: osbuild.Stage):
|
||||||
"""Called when an assembler is being built"""
|
"""Called when an assembler is being built"""
|
||||||
|
|
||||||
def result(self, result: osbuild.pipeline.BuildResult):
|
def result(self, result: osbuild.pipeline.BuildResult):
|
||||||
|
|
|
||||||
|
|
@ -110,57 +110,6 @@ class Stage:
|
||||||
return BuildResult(self, r.returncode, r.output, api.metadata, api.error)
|
return BuildResult(self, r.returncode, r.output, api.metadata, api.error)
|
||||||
|
|
||||||
|
|
||||||
class Assembler:
|
|
||||||
def __init__(self, name, build, base, options):
|
|
||||||
self.name = name
|
|
||||||
self.build = build
|
|
||||||
self.base = base
|
|
||||||
self.options = options
|
|
||||||
self.checkpoint = False
|
|
||||||
|
|
||||||
@property
|
|
||||||
def id(self):
|
|
||||||
m = hashlib.sha256()
|
|
||||||
m.update(json.dumps(self.name, sort_keys=True).encode())
|
|
||||||
m.update(json.dumps(self.build, sort_keys=True).encode())
|
|
||||||
m.update(json.dumps(self.base, sort_keys=True).encode())
|
|
||||||
m.update(json.dumps(self.options, sort_keys=True).encode())
|
|
||||||
return m.hexdigest()
|
|
||||||
|
|
||||||
def run(self, tree, runner, build_tree, monitor, libdir, output_dir, var="/var/tmp"):
|
|
||||||
with buildroot.BuildRoot(build_tree, runner, libdir, var=var) as build_root:
|
|
||||||
|
|
||||||
args = {
|
|
||||||
"tree": "/run/osbuild/tree",
|
|
||||||
"options": self.options,
|
|
||||||
"meta": {
|
|
||||||
"id": self.id
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
binds = []
|
|
||||||
|
|
||||||
output_dir = os.fspath(output_dir)
|
|
||||||
os.makedirs(output_dir, exist_ok=True)
|
|
||||||
binds.append(f"{output_dir}:/run/osbuild/output")
|
|
||||||
args["output_dir"] = "/run/osbuild/output"
|
|
||||||
|
|
||||||
ro_binds = [os.fspath(tree) + ":/run/osbuild/tree"]
|
|
||||||
|
|
||||||
api = API(args, monitor)
|
|
||||||
build_root.register_api(api)
|
|
||||||
|
|
||||||
rls = remoteloop.LoopServer()
|
|
||||||
build_root.register_api(rls)
|
|
||||||
|
|
||||||
r = build_root.run([f"/run/osbuild/lib/assemblers/{self.name}"],
|
|
||||||
monitor,
|
|
||||||
binds=binds,
|
|
||||||
readonly_binds=ro_binds)
|
|
||||||
|
|
||||||
return BuildResult(self, r.returncode, r.output, api.metadata, api.error)
|
|
||||||
|
|
||||||
|
|
||||||
class Pipeline:
|
class Pipeline:
|
||||||
def __init__(self, runner=None, build=None):
|
def __init__(self, runner=None, build=None):
|
||||||
self.build = build
|
self.build = build
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ class TapeMonitor(osbuild.monitor.BaseMonitor):
|
||||||
self.counter["stages"] += 1
|
self.counter["stages"] += 1
|
||||||
self.stages.add(stage.id)
|
self.stages.add(stage.id)
|
||||||
|
|
||||||
def assembler(self, assembler: osbuild.Assembler):
|
def assembler(self, assembler: osbuild.Stage):
|
||||||
self.counter["assembler"] += 1
|
self.counter["assembler"] += 1
|
||||||
self.asm = assembler.id
|
self.asm = assembler.id
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue