#!/bin/bash . $(dirname $0)/../include.rc . $(dirname $0)/../volume.rc cleanup; ## Start glusterd TEST glusterd; TEST pidof glusterd; TEST $CLI volume info; ## Lets create volume TEST $CLI volume create $V0 $H0:$B0/${V0}{1,2}; ## Verify volume is created EXPECT "$V0" volinfo_field $V0 'Volume Name'; EXPECT 'Created' volinfo_field $V0 'Status'; ## Start volume and verify TEST $CLI volume start $V0; EXPECT 'Started' volinfo_field $V0 'Status'; TEST mount -t nfs -o vers=3 $H0:/$V0 $N0; ############################################################################ #TEST-PLAN: #Create a directory DIR and a file inside DIR #check the hash brick of the file #delete the directory for recreating later after remove-brick #remove the brick where the files hashed to #After remove-brick status says complete go on creating the same directory \ #DIR and file #Check if the file now falls into the other brick #Check if the other brick gets the full layout and the remove brick gets \ #the zeroed layout ############################################################################ TEST mkdir $N0/DIR; TEST touch $N0/DIR/file; if [ -f $B0/${V0}1/DIR/file ] then HASHED=$B0/${V0}1; OTHERBRICK=$B0/${V0}2; else HASHED=$B0/${V0}2; OTHERBRICK=$B0/${V0}1; fi TEST rm -f $N0/DIR/file; TEST rmdir $N0/DIR; TEST $CLI volume remove-brick $V0 $H0:${HASHED} start; EXPECT_WITHIN 10 "completed" remove_brick_status_completed_field "$V0" \ "$H0:${HASHED}"; TEST mkdir $N0/DIR; TEST touch $N0/DIR/file; #Check now the file should fall in to OTHERBRICK TEST [ -f ${OTHERBRICK}/DIR/file ] #Check the DIR on HASHED should have got zeroed layout and the \ #OTHERBRICK should have got full layout EXPECT "0x00000001000000000000000000000000" dht_get_layout $HASHED/DIR ; EXPECT "0x000000010000000000000000ffffffff" dht_get_layout $OTHERBRICK/DIR; cleanup