kexec-installer: only one file for addresses is needed

This commit is contained in:
Jörg Thalheim 2022-11-27 16:55:14 +00:00
parent be9c564503
commit b70c9d2fe9
2 changed files with 10 additions and 15 deletions

View file

@ -36,10 +36,9 @@ in {
# save the networking config for later use # save the networking config for later use
if type -p ip &>/dev/null; then if type -p ip &>/dev/null; then
ip -4 --json addr > addrs-v4.json ip --json addr > addrs.json
ip -4 --json addr > addrs-v6.json
ip -6 --json route > routes-v4.json ip -4 --json route > routes-v4.json
ip -6 --json route > routes-v6.json ip -6 --json route > routes-v6.json
else else
echo "Skip saving static network addresses because no iproute2 binary is available." 2>&1 echo "Skip saving static network addresses because no iproute2 binary is available." 2>&1
@ -100,12 +99,11 @@ in {
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
serviceConfig.ExecStart = [ serviceConfig.ExecStart = [
"${restoreNetwork} /root/network/addrs-v4.json /root/network/addrs-v6.json /root/network/routes-v4.json /root/network/routes-v6.json" "${restoreNetwork} /root/network/addrs.json /root/network/routes-v4.json /root/network/routes-v6.json"
]; ];
unitConfig.ConditionPathExists = [ unitConfig.ConditionPathExists = [
"/root/network/addrs-v4.json" "/root/network/addrs.json"
"/root/network/addrs-v6.json"
"/root/network/routes-v4.json" "/root/network/routes-v4.json"
"/root/network/routes-v6.json" "/root/network/routes-v6.json"
]; ];

View file

@ -85,28 +85,25 @@ IPv6AcceptRA = yes
def main() -> None: def main() -> None:
if len(sys.argv) < 5: if len(sys.argv) < 4:
print( print(
f"USAGE: {sys.argv[0]} addresses-v4 addresses-v6 routes-v4 routes-v6 [networkd-directory]", f"USAGE: {sys.argv[0]} addresses routes-v4 routes-v6 [networkd-directory]",
file=sys.stderr, file=sys.stderr,
) )
sys.exit(1) sys.exit(1)
with open(sys.argv[1]) as f: with open(sys.argv[1]) as f:
v4_addresses = json.load(f) addresses = json.load(f)
with open(sys.argv[2]) as f: with open(sys.argv[2]) as f:
v6_addresses = json.load(f)
with open(sys.argv[3]) as f:
v4_routes = json.load(f) v4_routes = json.load(f)
with open(sys.argv[4]) as f: with open(sys.argv[3]) as f:
v6_routes = json.load(f) v6_routes = json.load(f)
if len(sys.argv) >= 5: if len(sys.argv) >= 4:
networkd_directory = Path(sys.argv[5]) networkd_directory = Path(sys.argv[4])
else: else:
networkd_directory = Path("/etc/systemd/network") networkd_directory = Path("/etc/systemd/network")
addresses = v4_addresses + v6_addresses
relevant_interfaces = filter_interfaces(addresses) relevant_interfaces = filter_interfaces(addresses)
relevant_routes = filter_routes(v4_routes) + filter_routes(v6_routes) relevant_routes = filter_routes(v4_routes) + filter_routes(v6_routes)