};
testScript = ''
+ import os
+
+
def setConfig(machine, config):
machine.copy_from_host(config, "/etc/nixos/configuration.nix")
def verifyDeviceIDSet(machine, expectedDevice):
- machine.succeed(
+ machine.wait_until_succeeds(
'(( "$(nix eval --raw -f "<nixos/nixos>" config.services.syncthing.declarative.devices.%s.id | wc -c)" == 63 ))'
% expectedDevice
)
+ def getDeviceFile(machine):
+ machine.copy_from_vm("${deviceIDFilename}")
+
+
+ def putDeviceFile(machine):
+ hostDeviceIDFilename = os.path.join(
+ os.environ["out"],
+ os.path.basename("${deviceIDFilename}"),
+ )
+ machine.copy_from_host(
+ hostDeviceIDFilename, "${deviceIDFilename}"
+ )
+ machine.succeed("chown syncthing ${deviceIDFilename}")
+
+
configurationWithDeviceIDs = (
"${configurationWithDeviceIDs}"
)
+ start_all()
a.wait_for_unit("syncthing-autoregister.service")
setConfig(a, configurationWithDeviceIDs)
verifyDeviceIDSet(a, "a")
+ getDeviceFile(a)
+
+ b.wait_for_unit("syncthing-autoregister.service")
+ putDeviceFile(b)
+ setConfig(b, configurationWithDeviceIDs)
+ verifyDeviceIDSet(b, "a")
+ verifyDeviceIDSet(b, "b")
'';
})