Blame gluster-setup.sh

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