Skip to content
Permalink

Comparing changes

This is a direct comparison between two commits made in this repository or its related repositories. View the default comparison for this range or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: openSUSE/salt
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: d699b2b9801f5a80893af09f1d22858b016ff18d
Choose a base ref
..
head repository: openSUSE/salt
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 5efea4169dd4de70553d0cfb7c4b81e20d92d251
Choose a head ref
Showing with 34 additions and 7 deletions.
  1. +34 −7 salt/modules/aptpkg.py
41 changes: 34 additions & 7 deletions salt/modules/aptpkg.py
Original file line number Diff line number Diff line change
@@ -64,6 +64,7 @@
if HAS_APT:
try:
from aptsources.sourceslist import Deb822SourceEntry, _deb822

HAS_DEB822 = True
except ImportError:
pass
@@ -1920,7 +1921,7 @@ def list_repos(**kwargs):
sources = SourcesList(deb822=True)
else:
sources = SourcesList()
for source in sources.list:
for source in sources:
if _skip_source(source):
continue
if not HAS_APT:
@@ -1934,18 +1935,34 @@ def list_repos(**kwargs):
except AttributeError:
pass
repo["file"] = source.file
repo["comps"] = getattr(source, "comps", [])
repo_comps = getattr(source, "comps", [])
repo_dists = source.dist.split(" ")
repo["comps"] = repo_comps
repo["disabled"] = source.disabled
repo["enabled"] = not repo[
"disabled"
] # This is for compatibility with the other modules
repo["dist"] = source.dist
repo["dist"] = repo_dists.pop(0)
repo["type"] = source.type
repo["uri"] = source.uri
repo["line"] = source.line.strip()
if "Types: " in source.line and "\n" in source.line:
repo["line"] = (
f"{source.type} {source.uri} {repo['dist']} {' '.join(repo_comps)}"
)
else:
repo["line"] = source.line.strip()
repo["architectures"] = getattr(source, "architectures", [])
repo["signedby"] = signedby
repos.setdefault(source.uri, []).append(repo)
if len(repo_dists):
for dist in repo_dists:
repo_copy = repo.copy()
repo_copy["dist"] = dist
if "Types: " in source.line and "\n" in source.line:
repo_copy["line"] = (
f"{source.type} {source.uri} {repo_copy['dist']} {' '.join(repo_comps)}"
)
repos[source.uri].append(repo_copy)
return repos


@@ -2095,7 +2112,9 @@ def del_repo(repo, **kwargs):

s_comps = set(source.comps)
r_comps = set(repo_comps)
if s_comps.intersection(r_comps) or (s_comps == set() and r_comps == set()):
if s_comps.intersection(r_comps) or (
s_comps == set() and r_comps == set()
):
deleted_from[source.file] = 0
source.comps = list(s_comps.difference(r_comps))
if not source.comps:
@@ -2932,10 +2951,11 @@ def mod_repo(repo, saltenv="base", aptkey=True, **kwargs):
# and the resulting source line. The idea here is to ensure
# we are not returning bogus data because the source line
# has already been modified on a previous run.
apt_source_dists = apt_source.dist.split(" ")
repo_matches = (
apt_source.type == repo_type
and apt_source.uri.rstrip("/") == repo_uri.rstrip("/")
and apt_source.dist == repo_dist
and repo_dist in apt_source_dists
)
kw_matches = apt_source.dist == kw_dist and apt_source.type == kw_type

@@ -3000,15 +3020,22 @@ def mod_repo(repo, saltenv="base", aptkey=True, **kwargs):
else:
signedby = _get_opts(repo)["signedby"].get("value", "")

repo_source_line = mod_source.line
if "Types: " in repo_source_line and "\n" in repo_source_line:
repo_source_line = (
f"{mod_source.type} {mod_source.uri} {repo_dist} {' '.join(mod_source.comps)}"
)

return {
repo: {
"architectures": getattr(mod_source, "architectures", []),
"dist": mod_source.dist,
"comps": mod_source.comps,
"disabled": mod_source.disabled,
"file": mod_source.file,
"type": mod_source.type,
"uri": mod_source.uri,
"line": mod_source.line,
"line": repo_source_line,
"signedby": signedby,
}
}