diff options
author | Michael Raskin <7c6f434c@mail.ru> | 2019-08-20 08:08:57 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-20 08:08:57 +0000 |
commit | 0cbeac4f661ed2e639611abf72240da1ba3a5d1d (patch) | |
tree | b9d91cb57cc53311037a1a51b51eeb4c0ddfedcc /nixos/tests | |
parent | b8fac94b0fc9eaa808427554b2089d19741f149b (diff) | |
parent | 6104ad00a1ce78ad96a9255869feef358730f2b7 (diff) | |
download | nixlib-0cbeac4f661ed2e639611abf72240da1ba3a5d1d.tar nixlib-0cbeac4f661ed2e639611abf72240da1ba3a5d1d.tar.gz nixlib-0cbeac4f661ed2e639611abf72240da1ba3a5d1d.tar.bz2 nixlib-0cbeac4f661ed2e639611abf72240da1ba3a5d1d.tar.lz nixlib-0cbeac4f661ed2e639611abf72240da1ba3a5d1d.tar.xz nixlib-0cbeac4f661ed2e639611abf72240da1ba3a5d1d.tar.zst nixlib-0cbeac4f661ed2e639611abf72240da1ba3a5d1d.zip |
Merge pull request #66736 from markuskowa/upd-gluster
glusterfs: 4.0 -> 6.5
Diffstat (limited to 'nixos/tests')
-rw-r--r-- | nixos/tests/all-tests.nix | 1 | ||||
-rw-r--r-- | nixos/tests/glusterfs.nix | 65 |
2 files changed, 66 insertions, 0 deletions
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index ea95cdd5a025..45ddf27c85e9 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -94,6 +94,7 @@ in gitlab = handleTest ./gitlab.nix {}; gitolite = handleTest ./gitolite.nix {}; gjs = handleTest ./gjs.nix {}; + glusterfs = handleTest ./glusterfs.nix {}; gnome3-xorg = handleTest ./gnome3-xorg.nix {}; gnome3 = handleTest ./gnome3.nix {}; gocd-agent = handleTest ./gocd-agent.nix {}; diff --git a/nixos/tests/glusterfs.nix b/nixos/tests/glusterfs.nix new file mode 100644 index 000000000000..9fd8bd2ed129 --- /dev/null +++ b/nixos/tests/glusterfs.nix @@ -0,0 +1,65 @@ +import ./make-test.nix ({ ... } : + +let + client = { pkgs, ... } : { + environment.systemPackages = [ pkgs.glusterfs ]; + fileSystems = pkgs.lib.mkVMOverride + [ { mountPoint = "/gluster"; + fsType = "glusterfs"; + device = "server1:/gv0"; + } ]; + }; + + server = { pkgs, ... } : { + networking.firewall.enable = false; + services.glusterfs.enable = true; + + # create a mount point for the volume + boot.initrd.postDeviceCommands = '' + ${pkgs.e2fsprogs}/bin/mkfs.ext4 -L data /dev/vdb + ''; + + virtualisation.emptyDiskImages = [ 1024 ]; + + fileSystems = pkgs.lib.mkVMOverride + [ { mountPoint = "/data"; + device = "/dev/disk/by-label/data"; + fsType = "ext4"; + } + ]; + }; +in { + name = "glusterfs"; + + nodes = { + server1 = server; + server2 = server; + client1 = client; + client2 = client; + }; + + testScript = '' + $server1->waitForUnit("glusterd.service"); + $server2->waitForUnit("glusterd.service"); + + # establish initial contact + $server1->succeed("sleep 2"); + $server1->succeed("gluster peer probe server2"); + $server1->succeed("gluster peer probe server1"); + + $server1->succeed("gluster peer status | grep Connected"); + + # create volumes + $server1->succeed("mkdir -p /data/vg0"); + $server2->succeed("mkdir -p /data/vg0"); + $server1->succeed("gluster volume create gv0 server1:/data/vg0 server2:/data/vg0"); + $server1->succeed("gluster volume start gv0"); + + # test clients + $client1->waitForUnit("gluster.mount"); + $client2->waitForUnit("gluster.mount"); + + $client1->succeed("echo test > /gluster/file1"); + $client2->succeed("grep test /gluster/file1"); + ''; +}) |