checks backup: limit to linux systems
This commit is contained in:
@@ -64,62 +64,64 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
perSystem = { nodes, pkgs, ... }: {
|
perSystem = { nodes, pkgs, ... }: {
|
||||||
checks.test-backups =
|
checks = pkgs.lib.mkIf (pkgs.stdenv.isLinux) {
|
||||||
(import ../lib/test-base.nix)
|
test-backups =
|
||||||
{
|
(import ../lib/test-base.nix)
|
||||||
name = "test-backups";
|
{
|
||||||
nodes.server = {
|
name = "test-backups";
|
||||||
imports = [
|
nodes.server = {
|
||||||
self.nixosModules.test_backup_server
|
imports = [
|
||||||
self.nixosModules.clanCore
|
self.nixosModules.test_backup_server
|
||||||
{
|
self.nixosModules.clanCore
|
||||||
clanCore.machineName = "server";
|
{
|
||||||
clanCore.clanDir = ../..;
|
clanCore.machineName = "server";
|
||||||
}
|
clanCore.clanDir = ../..;
|
||||||
];
|
}
|
||||||
};
|
];
|
||||||
nodes.client = {
|
};
|
||||||
imports = [
|
nodes.client = {
|
||||||
self.nixosModules.test_backup_client
|
imports = [
|
||||||
self.nixosModules.clanCore
|
self.nixosModules.test_backup_client
|
||||||
{
|
self.nixosModules.clanCore
|
||||||
clanCore.machineName = "client";
|
{
|
||||||
clanCore.clanDir = ../..;
|
clanCore.machineName = "client";
|
||||||
}
|
clanCore.clanDir = ../..;
|
||||||
];
|
}
|
||||||
};
|
];
|
||||||
|
};
|
||||||
|
|
||||||
testScript = ''
|
testScript = ''
|
||||||
import json
|
import json
|
||||||
start_all()
|
start_all()
|
||||||
|
|
||||||
# setup
|
# setup
|
||||||
client.succeed("mkdir -m 700 /root/.ssh")
|
client.succeed("mkdir -m 700 /root/.ssh")
|
||||||
client.succeed(
|
client.succeed(
|
||||||
"cat ${../borgbackup/borg_test} > /root/.ssh/id_ed25519"
|
"cat ${../borgbackup/borg_test} > /root/.ssh/id_ed25519"
|
||||||
)
|
)
|
||||||
client.succeed("chmod 600 /root/.ssh/id_ed25519")
|
client.succeed("chmod 600 /root/.ssh/id_ed25519")
|
||||||
client.wait_for_unit("sshd", timeout=30)
|
client.wait_for_unit("sshd", timeout=30)
|
||||||
print(client.succeed("ssh -o StrictHostKeyChecking=accept-new -v root@client hostname"))
|
print(client.succeed("ssh -o StrictHostKeyChecking=accept-new -v root@client hostname"))
|
||||||
|
|
||||||
# dummy data
|
# dummy data
|
||||||
client.succeed("mkdir /var/test-backups")
|
client.succeed("mkdir /var/test-backups")
|
||||||
client.succeed("echo testing > /var/test-backups/somefile")
|
client.succeed("echo testing > /var/test-backups/somefile")
|
||||||
|
|
||||||
# create
|
# create
|
||||||
client.succeed("clan --flake ${../..} backups create test_backup_client")
|
client.succeed("clan --flake ${../..} backups create test_backup_client")
|
||||||
client.wait_until_succeeds("! systemctl is-active borgbackup-job-test_backup_server")
|
client.wait_until_succeeds("! systemctl is-active borgbackup-job-test_backup_server")
|
||||||
|
|
||||||
# list
|
# list
|
||||||
backup_id = json.loads(client.succeed("borg-job-test_backup_server list --json"))["archives"][0]["archive"]
|
backup_id = json.loads(client.succeed("borg-job-test_backup_server list --json"))["archives"][0]["archive"]
|
||||||
assert(backup_id in client.succeed("clan --flake ${../..} backups list test_backup_client"))
|
assert(backup_id in client.succeed("clan --flake ${../..} backups list test_backup_client"))
|
||||||
|
|
||||||
# restore
|
# restore
|
||||||
client.succeed("rm -f /var/test-backups/somefile")
|
client.succeed("rm -f /var/test-backups/somefile")
|
||||||
client.succeed(f"clan --flake ${../..} backups restore test_backup_client borgbackup {backup_id}")
|
client.succeed(f"clan --flake ${../..} backups restore test_backup_client borgbackup {backup_id}")
|
||||||
assert(client.succeed("cat /var/test-backups/somefile").strip() == "testing")
|
assert(client.succeed("cat /var/test-backups/somefile").strip() == "testing")
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
{ inherit pkgs self; };
|
{ inherit pkgs self; };
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user