mpp: unify add package code path
Both v1 and v2 code paths used the same logic to add the resolved dependencies to the `source_urls` dict, which is already stored in the base class. Move the logic into the base class too.
This commit is contained in:
parent
4add7c69ff
commit
1b4f96c4e7
1 changed files with 22 additions and 17 deletions
39
tools/mpp.py
39
tools/mpp.py
|
|
@ -273,6 +273,7 @@ class ManifestFile:
|
|||
self.root = root
|
||||
self.version = version
|
||||
self.sources = element_enter(self.root, "sources", {})
|
||||
self.source_urls = {}
|
||||
|
||||
def load_import(self, path):
|
||||
m = ManifestFile.load(self.basedir.joinpath(path))
|
||||
|
|
@ -280,6 +281,20 @@ class ManifestFile:
|
|||
raise ValueError(f"Incompatible manifest version {m.version}")
|
||||
return m
|
||||
|
||||
def add_packages(self, deps):
|
||||
checksums = []
|
||||
|
||||
for dep in deps:
|
||||
checksum = dep["checksum"]
|
||||
|
||||
data = {"url": dep["url"]}
|
||||
if "secrets" in dep:
|
||||
data["secrets"] = dep["secrets"]
|
||||
self.source_urls[checksum] = data
|
||||
checksums.append(checksum)
|
||||
|
||||
return checksums
|
||||
|
||||
def write(self, file, sort_keys=False):
|
||||
json.dump(self.root, file, indent=2, sort_keys=sort_keys)
|
||||
file.write("\n")
|
||||
|
|
@ -343,15 +358,9 @@ class ManifestFileV1(ManifestFile):
|
|||
packages = element_enter(options, "packages", [])
|
||||
|
||||
deps = _dnf_resolve(mpp, self.basedir)
|
||||
for dep in deps:
|
||||
checksum = dep["checksum"]
|
||||
checksums = self.add_packages(deps)
|
||||
|
||||
packages.append(checksum)
|
||||
|
||||
data = {"url": dep["url"]}
|
||||
if "secrets" in dep:
|
||||
data["secrets"] = dep["secrets"]
|
||||
self.source_urls[checksum] = data
|
||||
packages += checksums
|
||||
|
||||
def process_depsolves(self, pipeline=None):
|
||||
if pipeline == None:
|
||||
|
|
@ -419,20 +428,16 @@ class ManifestFileV2(ManifestFile):
|
|||
if not mpp:
|
||||
return
|
||||
|
||||
del(packages["mpp-depsolve"])
|
||||
|
||||
refs = element_enter(packages, "references", {})
|
||||
|
||||
deps = _dnf_resolve(mpp, self.basedir)
|
||||
for dep in deps:
|
||||
checksum = dep["checksum"]
|
||||
checksums = self.add_packages(deps)
|
||||
|
||||
for checksum in checksums:
|
||||
refs[checksum] = {}
|
||||
|
||||
data = {"url": dep["url"]}
|
||||
if "secrets" in dep:
|
||||
data["secrets"] = dep["secrets"]
|
||||
self.source_urls[checksum] = data
|
||||
|
||||
del(packages["mpp-depsolve"])
|
||||
|
||||
def process_depsolves(self):
|
||||
for pipeline in self.pipelines:
|
||||
stages = element_enter(pipeline, "stages", [])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue