more descriptive vars; rm prefile when done; tests
This commit is contained in:
parent
ca9746fd6b
commit
630354ac30
2 changed files with 20 additions and 11 deletions
|
|
@ -22,6 +22,7 @@ import logging
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
|
||||||
logging.basicConfig(format="%(message)s", level=logging.INFO)
|
logging.basicConfig(format="%(message)s", level=logging.INFO)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -92,8 +93,9 @@ def get_pre_number(snapshot_type, prefile):
|
||||||
try:
|
try:
|
||||||
with open(prefile, "r") as f:
|
with open(prefile, "r") as f:
|
||||||
pre_number = f.read().rstrip("\n")
|
pre_number = f.read().rstrip("\n")
|
||||||
|
os.remove(prefile)
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
logging.error("prefile not found")
|
raise FileNotFoundError(f"prefile {prefile} not found. Ensure you have run the pre snapshot first.")
|
||||||
return pre_number
|
return pre_number
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -108,29 +110,31 @@ def main(snap_pac_ini, snapper_conf_file, args):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
parent_cmd = os.popen(f"ps -p {os.getppid()} -o args=").read().strip()
|
parent_cmd = os.popen(f"ps -p {os.getppid()} -o args=").read().strip()
|
||||||
|
logging.debug("Getting list of packages from standard input...")
|
||||||
packages = " ".join([line.rstrip("\n") for line in sys.stdin])
|
packages = " ".join([line.rstrip("\n") for line in sys.stdin])
|
||||||
config = setup_config_parser(snap_pac_ini, parent_cmd, packages)
|
config = setup_config_parser(snap_pac_ini, parent_cmd, packages)
|
||||||
snapper_configs = get_snapper_configs(snapper_conf_file)
|
snapper_configs = get_snapper_configs(snapper_conf_file)
|
||||||
chroot = os.stat("/") != os.stat("/proc/1/root/.")
|
chroot = os.stat("/") != os.stat("/proc/1/root/.")
|
||||||
|
|
||||||
for c in snapper_configs:
|
for snapper_config in snapper_configs:
|
||||||
|
|
||||||
if c not in config:
|
if snapper_config not in config:
|
||||||
config.add_section(c)
|
config.add_section(snapper_config)
|
||||||
|
|
||||||
logging.debug(f"{c = }")
|
logging.debug(f"{snapper_config = }")
|
||||||
|
|
||||||
if config.getboolean(c, "snapshot"):
|
if config.getboolean(snapper_config, "snapshot"):
|
||||||
prefile = f"/tmp/snap-pac-pre_{c}"
|
prefile = f"/tmp/snap-pac-pre_{snapper_config}"
|
||||||
logging.debug(f"{prefile = }")
|
logging.debug(f"{prefile = }")
|
||||||
|
|
||||||
cleanup_algorithm = config.get(c, "cleanup_algorithm")
|
cleanup_algorithm = config.get(snapper_config, "cleanup_algorithm")
|
||||||
description = get_description(args.type, config, c)
|
description = get_description(args.type, config, snapper_config)
|
||||||
pre_number = get_pre_number(args.type, prefile)
|
pre_number = get_pre_number(args.type, prefile)
|
||||||
|
|
||||||
snapper_cmd = SnapperCmd(c, args.type, cleanup_algorithm, description, chroot, pre_number)
|
snapper_cmd = SnapperCmd(snapper_config, args.type, cleanup_algorithm, description, chroot, pre_number)
|
||||||
|
logging.debug(f"{str(snapper_cmd) = }")
|
||||||
num = snapper_cmd()
|
num = snapper_cmd()
|
||||||
logging.info(f"==> {c}: {num}")
|
logging.info(f"==> {snapper_config}: {num}")
|
||||||
|
|
||||||
if args.type == "pre":
|
if args.type == "pre":
|
||||||
write_pre_number(num, prefile)
|
write_pre_number(num, prefile)
|
||||||
|
|
|
||||||
|
|
@ -100,6 +100,11 @@ def test_write_pre_number(prefile):
|
||||||
assert get_pre_number("post", prefile) == "5678"
|
assert get_pre_number("post", prefile) == "5678"
|
||||||
|
|
||||||
|
|
||||||
|
def test_no_prefile():
|
||||||
|
with pytest.raises(FileNotFoundError):
|
||||||
|
get_pre_number("post", "/tmp/foo-pre-file-not-found")
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("snapshot_type, description", [("pre", "foo"), ("post", "a r")])
|
@pytest.mark.parametrize("snapshot_type, description", [("pre", "foo"), ("post", "a r")])
|
||||||
def test_get_description(snapshot_type, description, config):
|
def test_get_description(snapshot_type, description, config):
|
||||||
assert get_description(snapshot_type, config, "home") == description
|
assert get_description(snapshot_type, config, "home") == description
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue