#!/bin/bash
## Test case for bitrot
## bitd daemon should not start on the node which dont have any brick
. $(dirname $0)/../../include.rc
. $(dirname $0)/../../volume.rc
. $(dirname $0)/../../cluster.rc
cleanup;
function get_bitd_count {
ps auxw | grep glusterfs | grep bitd.pid | grep -v grep | wc -l
}
## Start a 2 node virtual cluster
TEST launch_cluster 2;
## Peer probe server 2 from server 1 cli
TEST $CLI_1 peer probe $H2;
EXPECT_WITHIN $PROBE_TIMEOUT 1 peer_count
## Creating a volume which is having brick only on one node
TEST $CLI_1 volume create $V0 $H1:$B1/${V0}0 $H1:$B1/${V0}1
## Start the volume
TEST $CLI_1 volume start $V0
## Enable bitrot on volume from 2nd node.
TEST $CLI_2 volume bitrot $V0 enable
## Bitd daemon should be running on the node which is having brick. Here node1
## only have brick so bitrot daemon count value should be 1.
EXPECT_WITHIN $PROCESS_UP_TIMEOUT "1" get_bitd_count
## Bitd daemon should not run on 2nd node and it should not create bitrot
## volfile on this node. Below test case it to check whether its creating bitrot
## volfile or not for 2nd node which dont have any brick.
## Get current working directory of 2nd node which dont have any brick and do
## stat on bitrot volfile.
cur_wrk_dir2=$($CLI_2 system:: getwd)
TEST ! stat $cur_wrk_dir2/bitd/bitd-server.vol
## Bitd daemon should run on 1st node and it should create bitrot
## volfile on this node. Below test case it to check whether its creating bitrot
## volfile or not for 1st node which is having brick.
## Get current working directory of 1st node which have brick and do
## stat on bitrot volfile.
cur_wrk_dir1=$($CLI_1 system:: getwd)
TEST stat $cur_wrk_dir1/bitd/bitd-server.vol
cleanup;