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.root = root
|
||||||
self.version = version
|
self.version = version
|
||||||
self.sources = element_enter(self.root, "sources", {})
|
self.sources = element_enter(self.root, "sources", {})
|
||||||
|
self.source_urls = {}
|
||||||
|
|
||||||
def load_import(self, path):
|
def load_import(self, path):
|
||||||
m = ManifestFile.load(self.basedir.joinpath(path))
|
m = ManifestFile.load(self.basedir.joinpath(path))
|
||||||
|
|
@ -280,6 +281,20 @@ class ManifestFile:
|
||||||
raise ValueError(f"Incompatible manifest version {m.version}")
|
raise ValueError(f"Incompatible manifest version {m.version}")
|
||||||
return m
|
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):
|
def write(self, file, sort_keys=False):
|
||||||
json.dump(self.root, file, indent=2, sort_keys=sort_keys)
|
json.dump(self.root, file, indent=2, sort_keys=sort_keys)
|
||||||
file.write("\n")
|
file.write("\n")
|
||||||
|
|
@ -343,15 +358,9 @@ class ManifestFileV1(ManifestFile):
|
||||||
packages = element_enter(options, "packages", [])
|
packages = element_enter(options, "packages", [])
|
||||||
|
|
||||||
deps = _dnf_resolve(mpp, self.basedir)
|
deps = _dnf_resolve(mpp, self.basedir)
|
||||||
for dep in deps:
|
checksums = self.add_packages(deps)
|
||||||
checksum = dep["checksum"]
|
|
||||||
|
|
||||||
packages.append(checksum)
|
packages += checksums
|
||||||
|
|
||||||
data = {"url": dep["url"]}
|
|
||||||
if "secrets" in dep:
|
|
||||||
data["secrets"] = dep["secrets"]
|
|
||||||
self.source_urls[checksum] = data
|
|
||||||
|
|
||||||
def process_depsolves(self, pipeline=None):
|
def process_depsolves(self, pipeline=None):
|
||||||
if pipeline == None:
|
if pipeline == None:
|
||||||
|
|
@ -419,20 +428,16 @@ class ManifestFileV2(ManifestFile):
|
||||||
if not mpp:
|
if not mpp:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
del(packages["mpp-depsolve"])
|
||||||
|
|
||||||
refs = element_enter(packages, "references", {})
|
refs = element_enter(packages, "references", {})
|
||||||
|
|
||||||
deps = _dnf_resolve(mpp, self.basedir)
|
deps = _dnf_resolve(mpp, self.basedir)
|
||||||
for dep in deps:
|
checksums = self.add_packages(deps)
|
||||||
checksum = dep["checksum"]
|
|
||||||
|
for checksum in checksums:
|
||||||
refs[checksum] = {}
|
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):
|
def process_depsolves(self):
|
||||||
for pipeline in self.pipelines:
|
for pipeline in self.pipelines:
|
||||||
stages = element_enter(pipeline, "stages", [])
|
stages = element_enter(pipeline, "stages", [])
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue