8000 pkgrepo: account for 'name' attr being part of the state · saltstack/salt@cbe8c6e · GitHub
[go: up one dir, main page]

Skip to content

Commit cbe8c6e

Browse files
committed
pkgrepo: account for 'name' attr being part of the state
fixes #21369. I'm not 100% sure that name is safe across all repo types this state manages, but it fixes the root issue referenced, and I'm pretty sure it's ok.
1 parent 5608fa5 commit cbe8c6e

File tree

2 files changed

+22
-4
lines changed

2 files changed

+22
-4
lines changed

salt/states/pkgrepo.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,8 @@ def managed(name, ppa=None, copr=None, aptkey=True, **kwargs):
413413
)
414414
return ret
415415

416-
repo = name
416+
kwargs["name"] = repo = name
417+
417418
if __grains__["os"] in ("Ubuntu", "Mint"):
418419
if ppa is not None:
419420
# overload the name/repo value for PPAs cleanly
@@ -437,9 +438,6 @@ def managed(name, ppa=None, copr=None, aptkey=True, **kwargs):
437438

438439
if "humanname" in kwargs:
439440
kwargs["name"] = kwargs.pop("humanname")
440-
if "name" not in kwargs:
441-
# Fall back to the repo name if humanname not provided
442-
kwargs["name"] = repo
443441

444442
kwargs["enabled"] = (
445443
not salt.utils.data.is_true(disabled)

tests/pytests/unit/states/test_pkgrepo.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,26 @@ def configure_loader_modules():
1818
}
1919

2020

21+
def test_name_change():
22+
"""
23+
Test when only the key_url is changed that a change is triggered
24+
"""
25+
kwargs = {
26+
"name": "deb http://apt.example.com/{{grains['os'] | lower}} {{grains['oscodename']}} main",
27+
"disabled": False,
28+
"key_url": "https://mock/changed_gpg.key",
29+
}
30+
31+
new = kwargs.copy()
32+
new["name"] = (
33+
"deb [arch=amd64] http://apt.example.com/{{grains['os'] | lower}} {{grains['oscodename']}} main"
34+
)
35+
36+
with patch.dict(pkgrepo.__salt__, {"pkg.get_repo": MagicMock(return_value=kwargs)}):
37+
ret = pkgrepo.managed(**new)
38+
assert ret["changes"] == {"name": {"old": kwargs["name"], "new": new["name"]}}
39+
40+
2141
def test_new_key_url():
2242
"""
2343
Test when only the key_url is changed that a change is triggered

0 commit comments

Comments
 (0)
0