|
Packit Service |
e080da |
#!/bin/bash
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
. $(dirname $0)/../../include.rc
|
|
Packit Service |
e080da |
. $(dirname $0)/../../volume.rc
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
# This test contains volume heal commands handled by glusterd.
|
|
Packit Service |
e080da |
# Covers enable/disable at the moment. Will be enhanced later to include
|
|
Packit Service |
e080da |
# the other commands as well.
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
cleanup;
|
|
Packit Service |
e080da |
TEST glusterd
|
|
Packit Service |
e080da |
TEST pidof glusterd
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
volfile=$(gluster system:: getwd)"/glustershd/glustershd-server.vol"
|
|
Packit Service |
e080da |
#Commands should fail when volume doesn't exist
|
|
Packit Service |
e080da |
TEST ! $CLI volume heal non-existent-volume enable
|
|
Packit Service |
e080da |
TEST ! $CLI volume heal non-existent-volume disable
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
# Glustershd shouldn't be running as long as there are no replicate/disperse
|
|
Packit Service |
e080da |
# volumes
|
|
Packit Service |
e080da |
TEST $CLI volume create dist $H0:$B0/dist
|
|
Packit Service |
e080da |
TEST $CLI volume start dist
|
|
Packit Service |
e080da |
TEST "[ -z $(get_shd_process_pid)]"
|
|
Packit Service |
e080da |
TEST ! $CLI volume heal dist enable
|
|
Packit Service |
e080da |
TEST ! $CLI volume heal dist disable
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
# Commands should work on replicate/disperse volume.
|
|
Packit Service |
e080da |
TEST $CLI volume create r2 replica 2 $H0:$B0/r2_0 $H0:$B0/r2_1
|
|
Packit Service |
e080da |
TEST "[ -z $(get_shd_process_pid)]"
|
|
Packit Service |
e080da |
TEST $CLI volume start r2
|
|
Packit Service |
e080da |
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "[0-9][0-9]*" get_shd_process_pid
|
|
Packit Service |
e080da |
TEST $CLI volume heal r2 enable
|
|
Packit Service |
e080da |
EXPECT "enable" volume_option r2 "cluster.self-heal-daemon"
|
|
Packit Service |
e080da |
EXPECT "enable" volgen_volume_option $volfile r2-replicate-0 cluster replicate self-heal-daemon
|
|
Packit Service |
e080da |
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "[0-9][0-9]*" get_shd_process_pid
|
|
Packit Service |
e080da |
TEST $CLI volume heal r2 disable
|
|
Packit Service |
e080da |
EXPECT "disable" volume_option r2 "cluster.self-heal-daemon"
|
|
Packit Service |
e080da |
EXPECT "disable" volgen_volume_option $volfile r2-replicate-0 cluster replicate self-heal-daemon
|
|
Packit Service |
e080da |
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "[0-9][0-9]*" get_shd_process_pid
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
# Commands should work on disperse volume.
|
|
Packit Service |
e080da |
TEST $CLI volume create ec2 disperse 3 redundancy 1 $H0:$B0/ec2_0 $H0:$B0/ec2_1 $H0:$B0/ec2_2
|
|
Packit Service |
e080da |
TEST $CLI volume start ec2
|
|
Packit Service |
e080da |
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "[0-9][0-9]*" get_shd_process_pid
|
|
Packit Service |
e080da |
TEST $CLI volume heal ec2 enable
|
|
Packit Service |
e080da |
EXPECT "enable" volume_option ec2 "cluster.disperse-self-heal-daemon"
|
|
Packit Service |
e080da |
EXPECT "enable" volgen_volume_option $volfile ec2-disperse-0 cluster disperse self-heal-daemon
|
|
Packit Service |
e080da |
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "[0-9][0-9]*" get_shd_process_pid
|
|
Packit Service |
e080da |
TEST $CLI volume heal ec2 disable
|
|
Packit Service |
e080da |
EXPECT "disable" volume_option ec2 "cluster.disperse-self-heal-daemon"
|
|
Packit Service |
e080da |
EXPECT "disable" volgen_volume_option $volfile ec2-disperse-0 cluster disperse self-heal-daemon
|
|
Packit Service |
e080da |
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "[0-9][0-9]*" get_shd_process_pid
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
#Check that shd graph is rewritten correctly on volume stop/start
|
|
Packit Service |
e080da |
EXPECT "Y" volgen_volume_exists $volfile ec2-disperse-0 cluster disperse
|
|
Packit Service |
e080da |
EXPECT "Y" volgen_volume_exists $volfile r2-replicate-0 cluster replicate
|
|
Packit Service |
e080da |
TEST $CLI volume stop r2
|
|
Packit Service |
e080da |
EXPECT "Y" volgen_volume_exists $volfile ec2-disperse-0 cluster disperse
|
|
Packit Service |
e080da |
EXPECT "N" volgen_volume_exists $volfile r2-replicate-0 cluster replicate
|
|
Packit Service |
e080da |
TEST $CLI volume stop ec2
|
|
Packit Service |
e080da |
# When both the volumes are stopped glustershd volfile is not modified just the
|
|
Packit Service |
e080da |
# process is stopped
|
|
Packit Service |
e080da |
TEST "[ -z $(get_shd_process_pid) ]"
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
TEST $CLI volume start r2
|
|
Packit Service |
e080da |
EXPECT "N" volgen_volume_exists $volfile ec2-disperse-0 cluster disperse
|
|
Packit Service |
e080da |
EXPECT "Y" volgen_volume_exists $volfile r2-replicate-0 cluster replicate
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
TEST $CLI volume set r2 self-heal-daemon on
|
|
Packit Service |
e080da |
TEST $CLI volume set r2 cluster.self-heal-daemon off
|
|
Packit Service |
e080da |
TEST ! $CLI volume set ec2 self-heal-daemon off
|
|
Packit Service |
e080da |
TEST ! $CLI volume set ec2 cluster.self-heal-daemon on
|
|
Packit Service |
e080da |
TEST ! $CLI volume set dist self-heal-daemon off
|
|
Packit Service |
e080da |
TEST ! $CLI volume set dist cluster.self-heal-daemon on
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
TEST $CLI volume set ec2 disperse-self-heal-daemon off
|
|
Packit Service |
e080da |
TEST $CLI volume set ec2 cluster.disperse-self-heal-daemon on
|
|
Packit Service |
e080da |
TEST ! $CLI volume set r2 disperse-self-heal-daemon on
|
|
Packit Service |
e080da |
TEST ! $CLI volume set r2 cluster.disperse-self-heal-daemon off
|
|
Packit Service |
e080da |
TEST ! $CLI volume set dist disperse-self-heal-daemon off
|
|
Packit Service |
e080da |
TEST ! $CLI volume set dist cluster.disperse-self-heal-daemon on
|
|
Packit Service |
e080da |
|
|
Packit Service |
e080da |
cleanup
|