1
0
mirror of https://github.com/gluster/glusterfs.git synced 2026-02-06 09:48:44 +01:00
Files
glusterfs/tests/basic/volume.t
yatipadia b28aaf62bc mgmt/glusterd: Adding validation for statedump path
Description of problem:
server.statedump-path is the path where statedumps are stored,
by default it is /var/run/gluster. And can be set to any valid
directory path. It was observed that server.statedump-path was
also accepting file, non-existent file and non-existent paths
as well. And statedump command was successful even when
statedumps with all the invalid paths.
a. A file
b. A non-existent path

Solution:
Added a validation function in gluster-volume-set.c which will
allow volume set to success if it's a valid directory
and in all other cases, volume set should fail.

Fixes: bz#1787122

Change-Id: Ia66e2b3d35f23efc5444c829928779a79d827b42
Signed-off-by: yatipadia <ypadia@redhat.com>
Signed-off-by: Sanju Rakonde <srakonde@redhat.com>
2019-12-31 14:47:03 +05:30

61 lines
1.5 KiB
Bash

#!/bin/bash
. $(dirname $0)/../include.rc
. $(dirname $0)/../volume.rc
cleanup;
TEST glusterd
TEST pidof glusterd
TEST $CLI volume info;
TEST $CLI volume create $V0 replica 3 $H0:$B0/${V0}{1,2,3,4,5,6};
EXPECT "$V0" volinfo_field $V0 'Volume Name';
EXPECT 'Created' volinfo_field $V0 'Status';
EXPECT '6' brick_count $V0
TEST $CLI volume start $V0;
EXPECT 'Started' volinfo_field $V0 'Status';
TEST $CLI volume add-brick $V0 $H0:$B0/${V0}{9,10,11};
EXPECT '9' brick_count $V0
TEST $CLI volume remove-brick $V0 $H0:$B0/${V0}{1,2,3} force;
EXPECT '6' brick_count $V0
TEST $CLI volume top $V0 read-perf bs 4096 count 1000
TEST $CLI volume top $V0 write-perf bs 1048576 count 2
TEST touch $M0/foo
# statedump path should be a directory, setting it to a file path should fail
TEST ! $CLI v set $V0 server.statedump-path $M0/foo;
EXPECT '/var/run/gluster' $CLI v get $V0 server.statedump-path
#set the statedump path to an existing ditectory which should succeed
TEST mkdir $D0/level;
TEST $CLI v set $V0 server.statedump-path $D0/level
EXPECT '/level' volinfo_field $V0 'server.statedump-path'
ret=$(ls $D0/level | wc -l);
TEST [ $ret == 0 ]
TEST $CLI v statedump $V0;
ret=$(ls $D0/level | wc -l);
TEST ! [ $ret == 0 ]
#set the statedump path to a non - existing directory which should fail
TEST ! $CLI v set $V0 server.statedump-path /root/test
EXPECT '/level' volinfo_field $V0 'server.statedump-path'
TEST rm -rf $D0/level
TEST $CLI volume stop $V0
EXPECT 'Stopped' volinfo_field $V0 'Status'
TEST $CLI volume delete $V0
TEST ! $CLI volume info $V0
cleanup;