extras:add gfid-to-dirname.sh
Add a script that converts the gfid-string of a directory into absolute path name w.r.t the brick path. Example:gfid-to-dirname.sh /home/ravi/bricks/brick1 e9c81321-f009-41b0-a009-cd77888c217e Location of the directory corresponding to gfid:e9c81321-f009-41b0-a009-cd77888c217e is /home/ravi/bricks/brick1/d1/d2/d3/d4/d5/d6/d7/ Change-Id: I276ddf9c4f3d11a5b1932286d848b00b5ea1895d BUG: 1319706 Signed-off-by: Ravishankar N <ravishankar@redhat.com> Reviewed-on: http://review.gluster.org/13797 Smoke: Gluster Build System <jenkins@build.gluster.com> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> CentOS-regression: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: bipin kunal <kunalbipin@gmail.com> Tested-by: bipin kunal <kunalbipin@gmail.com> Reviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com>
This commit is contained in:
parent
b6edcbd694
commit
afbdcda3f4
46
extras/gfid-to-dirname.sh
Executable file
46
extras/gfid-to-dirname.sh
Executable file
@ -0,0 +1,46 @@
|
||||
#!/bin/bash
|
||||
|
||||
function read_symlink()
|
||||
{
|
||||
DOT_GLUSTERFS_PATH=$BRICK_PATH/.glusterfs
|
||||
gfid_string=$1
|
||||
symlink_path="$DOT_GLUSTERFS_PATH/${gfid_string:0:2}/${gfid_string:2:2}/$gfid_string"
|
||||
#remove trailing '/'
|
||||
symlink_path=${symlink_path%/}
|
||||
linkname=$(readlink $symlink_path)
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "readlink of $symlink_path returned an error." >&2
|
||||
exit -1
|
||||
fi
|
||||
echo $linkname
|
||||
}
|
||||
|
||||
main()
|
||||
{
|
||||
if [ $# -lt 2 ] ;then
|
||||
echo "Usage: $0 <brick-path> <gfid-string-of-directory>"
|
||||
echo "Example: $0 /bricks/brick1 1b835012-1ae5-4f0d-9db4-64de574d891c"
|
||||
exit -1
|
||||
fi
|
||||
|
||||
BRICK_PATH=$1
|
||||
name=$(read_symlink $2)
|
||||
if [ $? -ne 0 ]; then
|
||||
exit -1
|
||||
fi
|
||||
|
||||
while [ ${name:12:36} != "00000000-0000-0000-0000-000000000001" ]
|
||||
do
|
||||
LOCATION=`basename $name`/$LOCATION
|
||||
GFID_STRING=${name:12:36}
|
||||
name=$(read_symlink $GFID_STRING)
|
||||
if [ $? -ne 0 ]; then
|
||||
exit -1
|
||||
fi
|
||||
done
|
||||
|
||||
LOCATION=`basename $name`/$LOCATION
|
||||
echo "Location of the directory corresponding to gfid:$2 is $BRICK_PATH/$LOCATION"
|
||||
}
|
||||
|
||||
main "$@"
|
Loading…
x
Reference in New Issue
Block a user