Statistiques
| Révision :

root / trunk / shell / configuration-stop-compute-nodes @ 58

Historique | Voir | Annoter | Télécharger (2,57 ko)

1
#! /bin/bash
2
#
3
# ST - 2012-07-03
4
#
5
# Start the compute nodes for a configuration.
6
#
7
# Get the directory of the script.
8
SCRIPT_PATH=`dirname $0`
9
# Get the script name.
10
SCRIPT_NAME=`basename $0`
11
# Source the common configuration variables.
12
. $SCRIPT_PATH/c-i-a-b.common
13
#
14
#
15
# Get the configurations
16
#
17
CONFIGURATIONS=`ls $SCRIPT_PATH/$CONST_CONFIGURATIONS_DIR`
18
CONFIGURATIONS_STRING="{"
19
for i in $CONFIGURATIONS ; do
20
  CONFIGURATIONS_STRING="$CONFIGURATIONS_STRING$i|"
21
done
22
#
23
# Check command line arguments.
24
#
25
if [ "x$1" == "x" ]
26
  then
27
    echo
28
    echo "Missing parameter. Aborting!"
29
    echo
30
    echo "Usage: $SCRIPT_NAME configuration"
31
    echo
32
    echo -e "  configuration: one of $CONFIGURATIONS_STRING\b}"
33
    echo
34
    echo     
35
    exit 1
36
fi
37
#
38
# Does the configuration exist?
39
#
40
CONFIGURATION_FOUND=""
41
CONFIGURATION=`echo $1 | tr [:upper:] [:lower:]`
42
for i in $CONFIGURATIONS ; do
43
    CURRENT_CONFIGURATION=`echo $i | tr [:upper:] [:lower:]`
44
    if [ $CONFIGURATION == $CURRENT_CONFIGURATION ] ; then
45
      CONFIGURATION_FOUND=$i
46
    fi
47
done
48
if [ -z $CONFIGURATION_FOUND ] ; then
49
  echo
50
  echo
51
  echo "The configuration \"$1\" does not exist".
52
  echo -e "The configuration must be one of $CONFIGURATIONS_STRING\b}."
53
  echo "Aborting!"
54
  echo
55
  echo
56
  exit 1
57
else
58
  CONFIGURATION=$CONFIGURATION_FOUND
59
fi
60
#
61
# Source the specific variables for the configuration.
62
#
63
. $SCRIPT_PATH/$CONST_CONFIGURATIONS_DIR/$CONFIGURATION/c-i-a-b.config.common
64
#
65
# Stop the compute-nodes.
66
#
67
COMPUTE_NODE_INDEX=1
68
while [ $COMPUTE_NODE_INDEX -le $COMPUTE_NODE_MAX_INDEX ] ; do
69
  #
70
  # Convert the number into a three caracters strings.
71
  #
72
  COMPUTE_NODE_INDEX_STRING=$COMPUTE_NODE_INDEX
73
  while [ ${#COMPUTE_NODE_INDEX_STRING} -lt 3 ] ; do
74
    COMPUTE_NODE_INDEX_STRING="0$COMPUTE_NODE_INDEX_STRING"
75
  done
76
  #
77
  # Compute the host name.
78
  #
79
  CURRENT_HOST_NAME=${COMPUTE_NODE_NAME_PREFIX}${COMPUTE_NODE_INDEX_STRING}
80
  #
81
  # Check if the corresponding VM is already running.
82
  #
83
  IS_RUNNING=`xm list | grep $CURRENT_HOST_NAME`
84
  if [ ! -z "$IS_RUNNING" ] ; then
85
    echo "Stopping $CURRENT_HOST_NAME..."
86
    #
87
    # Stop the virtual machine
88
    #
89
    xm shutdown $CURRENT_HOST_NAME
90
    if [ $? -ne 0 ] ; then
91
      ciab_abort_message "Can't stop $CURRENT_HOST_NAME" 1
92
    fi
93
    #
94
    # Wait until the virtual machine has stopped.
95
    #
96
    IS_RUNNING=""
97
    while [ ! -z "$IS_RUNNING" ]
98
      do
99
        IS_RUNNING=`xm list | grep $CURRENT_HOST_NAME`
100
        sleep 1
101
    done # End while
102
  else
103
    echo "$CURRENT_HOST_NAME is already stopped."
104
  fi # End if IS_RUNNING.
105
  COMPUTE_NODE_INDEX=$((COMPUTE_NODE_INDEX + 1))
106
done # End main loop.
107
#
108
exit 0