Skip to content

Commit 17e8994

Browse files
committed
test: Add tests for storage directory permissions
Signed-off-by: Thomas Parrott <thomas.parrott@canonical.com>
1 parent 9281adb commit 17e8994

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

test/suites/storage.sh

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,34 @@ test_storage() {
2828

2929
lxc storage volume create "$storage_pool" "$storage_volume" size=1MiB
3030

31+
# Test storage directory permissions
32+
33+
# Verify storage pool directory permissions match BaseDirectories expectations.
34+
# We expect:
35+
# - containers, containers-snapshots -> 0711
36+
# - buckets -> 0711
37+
# - custom, custom-snapshots -> 0700
38+
# - images -> 0700
39+
# - virtual-machines, virtual-machines-snapshots -> 0700
40+
pool_path="${LXD_DIR}/storage-pools/${storage_pool}"
41+
42+
declare -A expected_modes
43+
expected_modes[containers]=711
44+
expected_modes[containers-snapshots]=711
45+
expected_modes[buckets]=711
46+
expected_modes[custom]=700
47+
expected_modes[custom-snapshots]=700
48+
expected_modes[images]=700
49+
expected_modes[virtual-machines]=700
50+
expected_modes[virtual-machines-snapshots]=700
51+
52+
for dir in "${!expected_modes[@]}"; do
53+
want="${expected_modes[$dir]}"
54+
# Use stat to get permission bits in octal (portable across test environments)
55+
mode=$(stat -c %a "${pool_path}/${dir}")
56+
[ "${mode}" = "${want}" ]
57+
done
58+
3159
# Test setting description on a storage volume
3260
lxc storage volume show "$storage_pool" "$storage_volume" | sed 's/^description:.*/description: bar/' | lxc storage volume edit "$storage_pool" "$storage_volume"
3361
[ "$(lxc storage volume get "$storage_pool" "$storage_volume" -p description)" = "bar" ]

0 commit comments

Comments
 (0)