Merge "clustercfg: show diff before switching to new configuration"
diff --git a/cluster/clustercfg/clustercfg.py b/cluster/clustercfg/clustercfg.py
index 1396826..410635b 100644
--- a/cluster/clustercfg/clustercfg.py
+++ b/cluster/clustercfg/clustercfg.py
@@ -205,8 +205,7 @@
subprocess.check_call(["nix", "run",
"-f", os.path.join(local_root, "cluster/nix/default.nix"),
"provision",
- "-c", "provision-{}".format(fqdn.split('.')[0]),
- "switch"])
+ "-c", "provision-{}".format(fqdn.split('.')[0])])
def usage():
diff --git a/cluster/nix/provision.nix b/cluster/nix/provision.nix
index 70240f6..20ed0a0 100644
--- a/cluster/nix/provision.nix
+++ b/cluster/nix/provision.nix
@@ -20,7 +20,16 @@
remote=root@${machine.fqdn}
echo "Configuration for ${machine.fqdn} is ${configuration.toplevel}"
nix copy --no-check-sigs -s --to ssh://$remote ${configuration.toplevel}
- ssh $remote ${configuration.toplevel}/bin/switch-to-configuration $1
+ echo "/etc/systemd/system diff:"
+ ssh $remote diff -ur /var/run/current-system/etc/systemd/system ${configuration.toplevel}/etc/systemd/system || true
+ echo ""
+ echo ""
+ ssh $remote ${configuration.toplevel}/bin/switch-to-configuration dry-activate
+ read -p "Do you want to switch to this configuration? " -n 1 -r
+ echo
+ if [[ $REPLY =~ ^[Yy]$ ]]; then
+ ssh $remote ${configuration.toplevel}/bin/switch-to-configuration switch
+ fi
'';
machineProvisioners = builtins.listToAttrs (map (machine: {