diff options
author | Frederik Rietdijk <freddyrietdijk@fridh.nl> | 2018-03-05 17:31:22 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-05 17:31:22 +0000 |
commit | 8bcdb39a271b53fc38ce577d509b453fbb2889a8 (patch) | |
tree | 50b2dc684ece5e2b5e0513e6d5e1b2396bde6d22 /nixos/modules/tasks/network-interfaces-scripted.nix | |
parent | 4ff4ef51b77ef06ca8a9a00ee28bcd6447033680 (diff) | |
parent | e123631ed3e9466147dce40a376a8b9355cc00c5 (diff) |
Merge pull request #27678 from volth/restore-bridge-slaves-dynamically-added-by-libvirt
nixos/networking-scripted: restore bridge slaves dynamically added by…
Diffstat (limited to 'nixos/modules/tasks/network-interfaces-scripted.nix')
-rw-r--r-- | nixos/modules/tasks/network-interfaces-scripted.nix | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/nixos/modules/tasks/network-interfaces-scripted.nix b/nixos/modules/tasks/network-interfaces-scripted.nix index 8aa5163ce229b..630fe6d114ce8 100644 --- a/nixos/modules/tasks/network-interfaces-scripted.nix +++ b/nixos/modules/tasks/network-interfaces-scripted.nix @@ -288,6 +288,17 @@ let ${i} '')}" > /run/${n}.interfaces + ${optionalString config.virtualisation.libvirtd.enable '' + # Enslave dynamically added interfaces which may be lost on nixos-rebuild + for uri in qemu:///system lxc:///; do + for dom in $(${pkgs.libvirt}/bin/virsh -c $uri list --name); do + ${pkgs.libvirt}/bin/virsh -c $uri dumpxml "$dom" | \ + ${pkgs.xmlstarlet}/bin/xmlstarlet sel -t -m "//domain/devices/interface[@type='bridge'][source/@bridge='${n}'][target/@dev]" -v "concat('ip link set ',target/@dev,' master ',source/@bridge,';')" | \ + ${pkgs.bash}/bin/bash + done + done + ''} + # Enable stp on the interface ${optionalString v.rstp '' echo 2 >/sys/class/net/${n}/bridge/stp_state |