nixos/stratis: add test for encryption support

This commit is contained in:
Nick Cao 2022-09-16 21:04:38 +08:00
parent 8db1ad7850
commit 732950b26b
No known key found for this signature in database
2 changed files with 34 additions and 0 deletions

View File

@ -4,4 +4,5 @@
{
simple = import ./simple.nix { inherit system pkgs; };
encryption = import ./encryption.nix { inherit system pkgs; };
}

View File

@ -0,0 +1,33 @@
import ../make-test-python.nix ({ pkgs, ... }:
{
name = "stratis";
meta = with pkgs.lib.maintainers; {
maintainers = [ nickcao ];
};
nodes.machine = { pkgs, ... }: {
services.stratis.enable = true;
virtualisation.emptyDiskImages = [ 2048 ];
};
testScript =
let
testkey1 = pkgs.writeText "testkey1" "supersecret1";
testkey2 = pkgs.writeText "testkey2" "supersecret2";
in
''
machine.wait_for_unit("stratisd")
# test creation of encrypted pool and filesystem
machine.succeed("stratis key set testkey1 --keyfile-path ${testkey1}")
machine.succeed("stratis key set testkey2 --keyfile-path ${testkey2}")
machine.succeed("stratis pool create testpool /dev/vdb --key-desc testkey1")
machine.succeed("stratis fs create testpool testfs")
# test rebinding encrypted pool
machine.succeed("stratis pool rebind keyring testpool testkey2")
# test restarting encrypted pool
uuid = machine.succeed("stratis pool list | grep -oE '[0-9a-fA-F-]{36}'").rstrip('\n')
machine.succeed(" stratis pool stop testpool")
machine.succeed(f"stratis pool start {uuid} --unlock-method keyring")
'';
})