nixos/glusterfs: fix dangling glusterfind hook symlink and install group presets (#534709)

This commit is contained in:
Pascal Bach
2026-06-25 20:29:38 +00:00
committed by GitHub
2 changed files with 20 additions and 1 deletions
@@ -180,7 +180,9 @@ in
# Excludes one hook due to missing SELinux binaries.
+ ''
mkdir -p /var/lib/glusterd/hooks/
${rsync}/bin/rsync -a --exclude="S10selinux-label-brick.sh" ${glusterfs}/var/lib/glusterd/hooks/ /var/lib/glusterd/hooks/
# --copy-unsafe-links: the glusterfind hook is a symlink into the package's
# libexec that would dangle once copied verbatim into / (#257863).
${rsync}/bin/rsync -a --copy-unsafe-links --exclude="S10selinux-label-brick.sh" ${glusterfs}/var/lib/glusterd/hooks/ /var/lib/glusterd/hooks/
${tlsCmd}
''
@@ -189,6 +191,12 @@ in
+ ''
mkdir -p /var/lib/glusterd/glusterfind/.keys
mkdir -p /var/lib/glusterd/hooks/1/delete/post/
''
# Volume option presets, installed by upstream under $out/var; copy them so
# `gluster volume set <vol> group <name>` works (#33159).
+ ''
mkdir -p /var/lib/glusterd/groups/
${rsync}/bin/rsync -a ${glusterfs}/var/lib/glusterd/groups/ /var/lib/glusterd/groups/
'';
serviceConfig = {
+11
View File
@@ -49,6 +49,14 @@ in
server1.wait_for_unit("glusterd.service")
server2.wait_for_unit("glusterd.service")
# The glusterfind delete hook must be a real file, not the dangling
# symlink it used to be after being copied out of the package (#257863).
server1.succeed("test -f /var/lib/glusterd/hooks/1/delete/post/S57glusterfind-delete-post")
server1.fail("test -L /var/lib/glusterd/hooks/1/delete/post/S57glusterfind-delete-post")
# The volume option presets must be installed (#33159).
server1.succeed("test -f /var/lib/glusterd/groups/metadata-cache")
server1.wait_until_succeeds("gluster peer status")
server2.wait_until_succeeds("gluster peer status")
@@ -64,6 +72,9 @@ in
server1.succeed("gluster volume create gv0 server1:/data/vg0 server2:/data/vg0")
server1.succeed("gluster volume start gv0")
# Applying a group preset needs /var/lib/glusterd/groups populated (#33159).
server1.succeed("gluster volume set gv0 group metadata-cache")
# test clients
client1.wait_for_unit("gluster.mount")
client2.wait_for_unit("gluster.mount")