github.com/swiftstack/ProxyFS@v0.0.0-20210203235616-4017c267d62f/sait/bin/start_proxyfs_and_swift (about)

     1  #!/bin/bash
     2  
     3  # Copyright (c) 2015-2021, NVIDIA CORPORATION.
     4  # SPDX-License-Identifier: Apache-2.0
     5  
     6  if [ "$1" == "1" ]
     7  then
     8      PRIVATE_IP_ADDR="192.168.22.114"
     9      VOLUME_TO_SERVE="CommonVolume"
    10  elif [ "$1" == "2" ]
    11  then
    12      PRIVATE_IP_ADDR="192.168.22.115"
    13      VOLUME_TO_SERVE=""
    14  elif [ "$1" == "3" ]
    15  then
    16      PRIVATE_IP_ADDR="192.168.22.116"
    17      VOLUME_TO_SERVE=""
    18  else
    19      echo Arg1 is unexpected: $1
    20      exit 1
    21  fi
    22  
    23  SAIT_DIR=sait$1
    24  
    25  function await_proxyfsd_startup {
    26      while true
    27      do
    28          /usr/bin/systemctl -q is-active proxyfsd
    29          if [ $? -ne 0 ]
    30          then
    31              echo "ProxyFS failed to start. Exiting..."
    32              exit 1
    33          fi
    34          curl http://$PRIVATE_IP_ADDR:15346/ 2>/dev/null >/dev/null
    35          if [ $? -eq 0 ]
    36          then
    37              break
    38          fi
    39          sleep 1
    40      done
    41  }
    42  
    43  function await_swift_startup {
    44      while true
    45      do
    46          curl http://127.0.0.1:8090/info 2>/dev/null >/dev/null
    47          if [ $? -eq 0 ]
    48          then
    49              break
    50          fi
    51          echo "Waiting for Swift to be started..."
    52          sleep 1
    53      done
    54  }
    55  
    56  function format_volume_if_necessary {
    57      if [ "" != "$1" ]
    58      then
    59          sudo /vagrant/bin/mkproxyfs -I $1 /vagrant/src/github.com/swiftstack/ProxyFS/sait/$SAIT_DIR/proxyfs.conf SwiftClient.RetryLimit=1
    60          if [ $? -ne 0 ]
    61          then
    62              echo "Could not pre-format $1"
    63              exit 1
    64          fi
    65      fi
    66  }
    67  
    68  sudo mount -a
    69  
    70  echo "Shutting down services and mount points..."
    71  /vagrant/src/github.com/swiftstack/ProxyFS/sait/bin/unmount_and_stop_pfs
    72  echo
    73  echo "Bringing up services..."
    74  if [ -f /usr/bin/systemctl ]; then
    75      # Centos
    76      sudo /usr/bin/systemctl start memcached
    77      sudo /usr/bin/swift-init main start
    78      await_swift_startup
    79      format_volume_if_necessary $VOLUME_TO_SERVE
    80      sudo /usr/bin/systemctl start proxyfsd
    81      await_proxyfsd_startup
    82  else
    83      # Ubuntu (not tested!)
    84      sudo /usr/sbin/service memcached start
    85      sudo /usr/bin/swift-init main start
    86      await_swift_startup
    87      format_volume_if_necessary $VOLUME_TO_SERVE
    88      sudo /usr/sbin/service proxyfsd start
    89      await_proxyfsd_startup
    90  fi