|
Jose A. Rivera |
bc69811 |
#!/bin/bash
|
|
Jose A. Rivera |
bc69811 |
|
|
Jose A. Rivera |
bc69811 |
###
|
|
Jose A. Rivera |
bc69811 |
# Description: Script to move the glusterfs initial setup to bind mounted directories of Atomic Host.
|
|
Jose A. Rivera |
bc69811 |
# Copyright (c) 2016-2017 Red Hat, Inc. <http://www.redhat.com>
|
|
Jose A. Rivera |
bc69811 |
#
|
|
Jose A. Rivera |
bc69811 |
# This file is part of GlusterFS.
|
|
Jose A. Rivera |
bc69811 |
#
|
|
Jose A. Rivera |
bc69811 |
# This file is licensed to you under your choice of the GNU Lesser
|
|
Jose A. Rivera |
bc69811 |
# General Public License, version 3 or any later version (LGPLv3 or
|
|
Jose A. Rivera |
bc69811 |
# later), or the GNU General Public License, version 2 (GPLv2), in all
|
|
Jose A. Rivera |
bc69811 |
# cases as published by the Free Software Foundation.
|
|
Jose A. Rivera |
bc69811 |
###
|
|
Jose A. Rivera |
bc69811 |
|
|
Jose A. Rivera |
bc69811 |
main () {
|
|
Jose A. Rivera |
bc69811 |
GLUSTERFS_CONF_DIR="/etc/glusterfs"
|
|
Jose A. Rivera |
bc69811 |
GLUSTERFS_LOG_DIR="/var/log/glusterfs"
|
|
Jose A. Rivera |
bc69811 |
GLUSTERFS_META_DIR="/var/lib/glusterd"
|
|
Jose A. Rivera |
bc69811 |
GLUSTERFS_LOG_CONT_DIR="/var/log/glusterfs/container"
|
|
Jose A. Rivera |
bc69811 |
GLUSTERFS_CUSTOM_FSTAB="/var/lib/heketi/fstab"
|
|
Jose A. Rivera |
bc69811 |
|
|
Jose A. Rivera |
bc69811 |
mkdir $GLUSTERFS_LOG_CONT_DIR
|
|
Jose A. Rivera |
bc69811 |
for i in $GLUSTERFS_CONF_DIR $GLUSTERFS_LOG_DIR $GLUSTERFS_META_DIR
|
|
Jose A. Rivera |
bc69811 |
do
|
|
Jose A. Rivera |
bc69811 |
if test "$(ls $i)"
|
|
Jose A. Rivera |
bc69811 |
then
|
|
Jose A. Rivera |
bc69811 |
echo "$i is not empty"
|
|
Jose A. Rivera |
bc69811 |
else
|
|
Jose A. Rivera |
bc69811 |
bkp=$i"_bkp"
|
|
Jose A. Rivera |
bc69811 |
cp -r $bkp/* $i
|
|
Jose A. Rivera |
bc69811 |
if [ $? -eq 1 ]
|
|
Jose A. Rivera |
bc69811 |
then
|
|
Jose A. Rivera |
bc69811 |
echo "Failed to copy $i"
|
|
Jose A. Rivera |
bc69811 |
exit 1
|
|
Jose A. Rivera |
bc69811 |
fi
|
|
Jose A. Rivera |
bc69811 |
ls -R $i > ${GLUSTERFS_LOG_CONT_DIR}/${i}_ls
|
|
Jose A. Rivera |
bc69811 |
fi
|
|
Jose A. Rivera |
bc69811 |
done
|
|
Jose A. Rivera |
bc69811 |
|
|
Jose A. Rivera |
bc69811 |
if test "$(ls $GLUSTERFS_LOG_CONT_DIR)"
|
|
Jose A. Rivera |
bc69811 |
then
|
|
Jose A. Rivera |
bc69811 |
echo "" > $GLUSTERFS_LOG_CONT_DIR/brickattr
|
|
Jose A. Rivera |
bc69811 |
echo "" > $GLUSTERFS_LOG_CONT_DIR/failed_bricks
|
|
Jose A. Rivera |
bc69811 |
echo "" > $GLUSTERFS_LOG_CONT_DIR/lvscan
|
|
Jose A. Rivera |
bc69811 |
echo "" > $GLUSTERFS_LOG_CONT_DIR/mountfstab
|
|
Jose A. Rivera |
bc69811 |
else
|
|
Jose A. Rivera |
bc69811 |
mkdir $GLUSTERFS_LOG_CONT_DIR
|
|
Jose A. Rivera |
bc69811 |
echo "" > $GLUSTERFS_LOG_CONT_DIR/brickattr
|
|
Jose A. Rivera |
bc69811 |
echo "" > $GLUSTERFS_LOG_CONT_DIR/failed_bricks
|
|
Jose A. Rivera |
bc69811 |
fi
|
|
Jose A. Rivera |
bc69811 |
if test "$(ls $GLUSTERFS_CUSTOM_FSTAB)"
|
|
Jose A. Rivera |
bc69811 |
then
|
|
Jose A. Rivera |
bc69811 |
sleep 5
|
|
Jose A. Rivera |
bc69811 |
pvscan > $GLUSTERFS_LOG_CONT_DIR/pvscan
|
|
Jose A. Rivera |
bc69811 |
vgscan > $GLUSTERFS_LOG_CONT_DIR/vgscan
|
|
Jose A. Rivera |
bc69811 |
lvscan > $GLUSTERFS_LOG_CONT_DIR/lvscan
|
|
Jose A. Rivera |
bc69811 |
mount -a --fstab $GLUSTERFS_CUSTOM_FSTAB > $GLUSTERFS_LOG_CONT_DIR/mountfstab
|
|
Jose A. Rivera |
bc69811 |
if [ $? -eq 1 ]
|
|
Jose A. Rivera |
bc69811 |
then
|
|
Jose A. Rivera |
bc69811 |
echo "mount binary not failed" >> $GLUSTERFS_LOG_CONT_DIR/mountfstab
|
|
Jose A. Rivera |
bc69811 |
exit 1
|
|
Jose A. Rivera |
bc69811 |
fi
|
|
Jose A. Rivera |
bc69811 |
echo "Mount command Successful" >> $GLUSTERFS_LOG_CONT_DIR/mountfstab
|
|
Jose A. Rivera |
bc69811 |
sleep 40
|
|
Jose A. Rivera |
bc69811 |
cat $GLUSTERFS_CUSTOM_FSTAB|cut -f 2 -d " " | while read line
|
|
Jose A. Rivera |
bc69811 |
do
|
|
Jose A. Rivera |
bc69811 |
if grep -qs "$line" /proc/mounts; then
|
|
Jose A. Rivera |
bc69811 |
echo "$line mounted." >> $GLUSTERFS_LOG_CONT_DIR/mountfstab
|
|
Jose A. Rivera |
bc69811 |
if test "ls $line/brick"
|
|
Jose A. Rivera |
bc69811 |
then
|
|
Jose A. Rivera |
bc69811 |
echo "$line/brick is present" >> $GLUSTERFS_LOG_CONT_DIR/mountfstab
|
|
Jose A. Rivera |
bc69811 |
getfattr -d -m . -e hex $line/brick >> $GLUSTERFS_LOG_CONT_DIR/brickattr
|
|
Jose A. Rivera |
bc69811 |
else
|
|
Jose A. Rivera |
bc69811 |
echo "$line/brick is not present" >> $GLUSTERFS_LOG_CONT_DIR/mountfstab
|
|
Jose A. Rivera |
bc69811 |
sleep 1
|
|
Jose A. Rivera |
bc69811 |
fi
|
|
Jose A. Rivera |
bc69811 |
else
|
|
Jose A. Rivera |
bc69811 |
cat $GLUSTERFS_CUSTOM_FSTAB|grep $line >> $GLUSTERFS_LOG_CONT_DIR/failed_bricks
|
|
Jose A. Rivera |
bc69811 |
echo "$line not mounted." >> $GLUSTERFS_LOG_CONT_DIR/mountfstab
|
|
Jose A. Rivera |
bc69811 |
sleep 0.5
|
|
Jose A. Rivera |
bc69811 |
fi
|
|
Jose A. Rivera |
bc69811 |
done
|
|
Jose A. Rivera |
bc69811 |
if [ $(cat $GLUSTERFS_LOG_CONT_DIR/failed_bricks | wc -l) -gt 1 ]
|
|
Jose A. Rivera |
bc69811 |
then
|
|
Jose A. Rivera |
bc69811 |
vgscan --mknodes > $GLUSTERFS_LOG_CONT_DIR/vgscan_mknodes
|
|
Jose A. Rivera |
bc69811 |
sleep 10
|
|
Jose A. Rivera |
bc69811 |
mount -a --fstab $GLUSTERFS_LOG_CONT_DIR/failed_bricks
|
|
Jose A. Rivera |
bc69811 |
fi
|
|
Jose A. Rivera |
bc69811 |
else
|
|
Jose A. Rivera |
bc69811 |
echo "heketi-fstab not found"
|
|
Jose A. Rivera |
bc69811 |
fi
|
|
Jose A. Rivera |
bc69811 |
|
|
Jose A. Rivera |
bc69811 |
echo "Script Ran Successfully"
|
|
Jose A. Rivera |
bc69811 |
exit 0
|
|
Jose A. Rivera |
bc69811 |
}
|
|
Jose A. Rivera |
bc69811 |
main
|