Compare commits
3 commits
de42e16510
...
7379587a28
| Author | SHA1 | Date | |
|---|---|---|---|
| 7379587a28 | |||
| d6371ccccd | |||
| 5644062040 |
5 changed files with 87 additions and 27 deletions
|
|
@ -828,19 +828,15 @@ def _collect_puppet_roles(
|
||||||
or fw.get("iptables_v4_save")
|
or fw.get("iptables_v4_save")
|
||||||
or fw.get("iptables_v6_save")
|
or fw.get("iptables_v6_save")
|
||||||
)
|
)
|
||||||
packages = [
|
if has_fw:
|
||||||
str(p).strip() for p in (fw.get("packages") or []) if str(p).strip()
|
runtime_role = ensure_role("enroll_runtime")
|
||||||
]
|
runtime_role.add_managed_dir(
|
||||||
if has_fw or packages or fw.get("notes"):
|
"/etc/enroll",
|
||||||
if has_fw:
|
owner="root",
|
||||||
runtime_role = ensure_role("enroll_runtime")
|
group="root",
|
||||||
runtime_role.add_managed_dir(
|
mode="0750",
|
||||||
"/etc/enroll",
|
reason="enroll_runtime",
|
||||||
owner="root",
|
)
|
||||||
group="root",
|
|
||||||
mode="0750",
|
|
||||||
reason="enroll_runtime",
|
|
||||||
)
|
|
||||||
role_name = str(fw.get("role_name") or "firewall_runtime")
|
role_name = str(fw.get("role_name") or "firewall_runtime")
|
||||||
prole = ensure_role(role_name)
|
prole = ensure_role(role_name)
|
||||||
prole.add_firewall_runtime_snapshot(
|
prole.add_firewall_runtime_snapshot(
|
||||||
|
|
|
||||||
|
|
@ -884,19 +884,15 @@ def _collect_salt_roles(
|
||||||
or fw.get("iptables_v4_save")
|
or fw.get("iptables_v4_save")
|
||||||
or fw.get("iptables_v6_save")
|
or fw.get("iptables_v6_save")
|
||||||
)
|
)
|
||||||
packages = [
|
if has_fw:
|
||||||
str(p).strip() for p in (fw.get("packages") or []) if str(p).strip()
|
runtime_role = ensure_role("enroll_runtime")
|
||||||
]
|
runtime_role.add_managed_dir(
|
||||||
if has_fw or packages or fw.get("notes"):
|
"/etc/enroll",
|
||||||
if has_fw:
|
user="root",
|
||||||
runtime_role = ensure_role("enroll_runtime")
|
group="root",
|
||||||
runtime_role.add_managed_dir(
|
mode="0750",
|
||||||
"/etc/enroll",
|
reason="enroll_runtime",
|
||||||
user="root",
|
)
|
||||||
group="root",
|
|
||||||
mode="0750",
|
|
||||||
reason="enroll_runtime",
|
|
||||||
)
|
|
||||||
role_name = str(fw.get("role_name") or "firewall_runtime")
|
role_name = str(fw.get("role_name") or "firewall_runtime")
|
||||||
srole = ensure_role(role_name)
|
srole = ensure_role(role_name)
|
||||||
srole.add_firewall_runtime_snapshot(
|
srole.add_firewall_runtime_snapshot(
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[tool.poetry]
|
[tool.poetry]
|
||||||
name = "enroll"
|
name = "enroll"
|
||||||
version = "0.7.0b1"
|
version = "0.7.0b3"
|
||||||
description = "Enroll a server's running state retrospectively into Ansible"
|
description = "Enroll a server's running state retrospectively into Ansible"
|
||||||
authors = ["Miguel Jacq <mig@mig5.net>"]
|
authors = ["Miguel Jacq <mig@mig5.net>"]
|
||||||
license = "GPL-3.0-or-later"
|
license = "GPL-3.0-or-later"
|
||||||
|
|
|
||||||
|
|
@ -798,3 +798,37 @@ def test_manifest_puppet_renders_firewall_runtime_resources(tmp_path: Path):
|
||||||
).read_text(encoding="utf-8")
|
).read_text(encoding="utf-8")
|
||||||
assert "Hash $firewall_runtime = {}" in fqdn_pp
|
assert "Hash $firewall_runtime = {}" in fqdn_pp
|
||||||
assert "$firewall_runtime['ipset_restore_cmd']" in fqdn_pp
|
assert "$firewall_runtime['ipset_restore_cmd']" in fqdn_pp
|
||||||
|
|
||||||
|
|
||||||
|
def test_manifest_puppet_omits_firewall_runtime_when_no_rules_were_sampled(
|
||||||
|
tmp_path: Path,
|
||||||
|
):
|
||||||
|
bundle = tmp_path / "bundle"
|
||||||
|
out = tmp_path / "puppet"
|
||||||
|
state = {
|
||||||
|
"schema_version": 3,
|
||||||
|
"host": {"hostname": "test", "os": "debian", "pkg_backend": "dpkg"},
|
||||||
|
"inventory": {"packages": {}},
|
||||||
|
"roles": {
|
||||||
|
"firewall_runtime": {
|
||||||
|
"role_name": "firewall_runtime",
|
||||||
|
"packages": [],
|
||||||
|
"ipset_save": None,
|
||||||
|
"ipset_sets": [],
|
||||||
|
"iptables_v4_save": None,
|
||||||
|
"iptables_v6_save": None,
|
||||||
|
"notes": [
|
||||||
|
"not running as root; live firewall runtime was not captured"
|
||||||
|
],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
_write_state(bundle, state)
|
||||||
|
|
||||||
|
manifest.manifest(str(bundle), str(out), target="puppet")
|
||||||
|
|
||||||
|
site_pp = (out / "manifests" / "site.pp").read_text(encoding="utf-8")
|
||||||
|
assert "include enroll_runtime" not in site_pp
|
||||||
|
assert "include firewall_runtime" not in site_pp
|
||||||
|
assert not (out / "modules" / "enroll_runtime").exists()
|
||||||
|
assert not (out / "modules" / "firewall_runtime").exists()
|
||||||
|
|
|
||||||
|
|
@ -624,3 +624,37 @@ def test_manifest_salt_renders_firewall_runtime_states(tmp_path: Path):
|
||||||
fqdn_out / "states" / "roles" / "firewall_runtime" / "init.sls"
|
fqdn_out / "states" / "roles" / "firewall_runtime" / "init.sls"
|
||||||
).read_text(encoding="utf-8")
|
).read_text(encoding="utf-8")
|
||||||
assert "firewall_runtime.get('ipset_restore_cmd')" in fqdn_sls
|
assert "firewall_runtime.get('ipset_restore_cmd')" in fqdn_sls
|
||||||
|
|
||||||
|
|
||||||
|
def test_manifest_salt_omits_firewall_runtime_when_no_rules_were_sampled(
|
||||||
|
tmp_path: Path,
|
||||||
|
):
|
||||||
|
bundle = tmp_path / "bundle"
|
||||||
|
out = tmp_path / "salt"
|
||||||
|
state = {
|
||||||
|
"schema_version": 3,
|
||||||
|
"host": {"hostname": "test", "os": "debian", "pkg_backend": "dpkg"},
|
||||||
|
"inventory": {"packages": {}},
|
||||||
|
"roles": {
|
||||||
|
"firewall_runtime": {
|
||||||
|
"role_name": "firewall_runtime",
|
||||||
|
"packages": [],
|
||||||
|
"ipset_save": None,
|
||||||
|
"ipset_sets": [],
|
||||||
|
"iptables_v4_save": None,
|
||||||
|
"iptables_v6_save": None,
|
||||||
|
"notes": [
|
||||||
|
"not running as root; live firewall runtime was not captured"
|
||||||
|
],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
_write_state(bundle, state)
|
||||||
|
|
||||||
|
manifest.manifest(str(bundle), str(out), target="salt")
|
||||||
|
|
||||||
|
top = yaml.safe_load((out / "states" / "top.sls").read_text(encoding="utf-8"))
|
||||||
|
assert "roles.enroll_runtime" not in top["base"]["*"]
|
||||||
|
assert "roles.firewall_runtime" not in top["base"]["*"]
|
||||||
|
assert not (out / "states" / "roles" / "enroll_runtime").exists()
|
||||||
|
assert not (out / "states" / "roles" / "firewall_runtime").exists()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue