at 25.11-pre 2.4 kB view raw
1import ./make-test-python.nix ( 2 { pkgs, ... }: 3 4 let 5 master = 6 { pkgs, ... }: 7 { 8 # data base is stored in memory 9 # server crashes with default memory size 10 virtualisation.memorySize = 1024; 11 12 services.moosefs.master = { 13 enable = true; 14 openFirewall = true; 15 autoInit = true; 16 exports = [ 17 "* / rw,alldirs,admin,maproot=0:0" 18 "* . rw" 19 ]; 20 }; 21 }; 22 23 chunkserver = 24 { pkgs, ... }: 25 { 26 virtualisation.emptyDiskImages = [ 4096 ]; 27 boot.initrd.postDeviceCommands = '' 28 ${pkgs.e2fsprogs}/bin/mkfs.ext4 -L data /dev/vdb 29 ''; 30 31 fileSystems = pkgs.lib.mkVMOverride { 32 "/data" = { 33 device = "/dev/disk/by-label/data"; 34 fsType = "ext4"; 35 }; 36 }; 37 38 services.moosefs = { 39 masterHost = "master"; 40 chunkserver = { 41 openFirewall = true; 42 enable = true; 43 hdds = [ "~/data" ]; 44 }; 45 }; 46 }; 47 48 metalogger = 49 { pkgs, ... }: 50 { 51 services.moosefs = { 52 masterHost = "master"; 53 metalogger.enable = true; 54 }; 55 }; 56 57 client = 58 { pkgs, ... }: 59 { 60 services.moosefs.client.enable = true; 61 }; 62 63 in 64 { 65 name = "moosefs"; 66 67 nodes = { 68 inherit master; 69 inherit metalogger; 70 chunkserver1 = chunkserver; 71 chunkserver2 = chunkserver; 72 client1 = client; 73 client2 = client; 74 }; 75 76 testScript = '' 77 # prepare master server 78 master.start() 79 master.wait_for_unit("multi-user.target") 80 master.wait_for_unit("mfs-master.service") 81 82 metalogger.wait_for_unit("mfs-metalogger.service") 83 84 for chunkserver in [chunkserver1, chunkserver2]: 85 chunkserver.wait_for_unit("multi-user.target") 86 chunkserver.succeed("chown moosefs:moosefs /data") 87 chunkserver.succeed("systemctl restart mfs-chunkserver") 88 chunkserver.wait_for_unit("mfs-chunkserver.service") 89 90 for client in [client1, client2]: 91 client.wait_for_unit("multi-user.target") 92 client.succeed("mkdir /moosefs") 93 client.succeed("mount -t moosefs master:/ /moosefs") 94 95 client1.succeed("echo test > /moosefs/file") 96 client2.succeed("grep test /moosefs/file") 97 ''; 98 } 99)