summaryrefslogtreecommitdiffstats
path: root/rubbos/app/tomcat-connectors-1.2.32-src/docs/images/docs.gif
blob: d64a4a18c405e2c10ab791363f9f7acd16f3d433 (plain)
ofshex dumpascii
0000 47 49 46 38 39 61 14 00 14 00 84 00 00 ff ff ff fe fe fe 30 30 30 f0 f0 f0 e0 e0 e0 2f 2f 2f 31 GIF89a.............000......///1
0020 31 31 c0 c0 c0 cf cf cf df df df bf bf bf d0 d0 d0 fd ff fe 2f 31 30 ce ce ce de e0 df c0 c0 be 11................../10.........
0040 fe ff ff 80 80 80 4e 4e 4e 5f 5f 5f e1 e1 e1 b0 b0 b0 4f 4f 4f e1 df e0 ff ff fd 30 30 32 00 00 ......NNN___......OOO......002..
0060 00 00 00 00 00 00 00 00 00 00 00 00 00 2c 00 00 00 00 14 00 14 00 00 05 8a 20 20 8e 64 69 96 41 .............,..............di.A
0080 30 aa e7 28 bc 70 0c 9f c2 60 df 03 a1 13 c5 69 0c 87 e0 01 41 24 26 04 3e a0 62 58 34 22 4d b5 0..(.p...`.....i....A$&.>.bX4"M.
00a0 60 13 91 20 1c 69 83 e2 c2 98 e8 3e 49 8c 06 c1 d1 ec 76 11 5f 92 80 50 36 13 d3 2e 36 f1 e1 46 `....i.....>I.....v._..P6...6..F
00c0 40 e0 a2 b5 d1 9a 20 42 ee 26 11 0d 55 66 7d 76 7f 78 01 02 85 72 7f 88 34 12 13 14 15 6c 8e 10 @......B.&..Uf}v.x...r..4....l..
00e0 16 78 79 03 17 16 18 96 16 98 28 19 19 00 02 12 16 07 8e a0 a1 2d 00 1a 1a 32 33 ad b3 b3 11 11 .xy.......(..........-...23.....
0100 a3 b3 21 00 3b ..!.;
21 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
#!/bin/bash

# A heat-config-script which runs yum update during a stack-update.
# Inputs:
#   deploy_action - yum will only be run if this is UPDATE
#   update_identifier - yum will only run for previously unused values of update_identifier
#   command - yum sub-command to run, defaults to "update"
#   command_arguments - yum command arguments, defaults to ""

echo "Started yum_update.sh on server $deploy_server_id at `date`"
echo -n "false" > $heat_outputs_path.update_managed_packages

if [ -f /.dockerenv ]; then
    echo "Not running due to running inside a container"
    exit 0
fi

if [[ -z "$update_identifier" ]]; then
    echo "Not running due to unset update_identifier"
    exit 0
fi

timestamp_dir=/var/lib/overcloud-yum-update
mkdir -p $timestamp_dir

# sanitise to remove unusual characters
update_identifier=${update_identifier//[^a-zA-Z0-9-_]/}

# seconds to wait for this node to rejoin the cluster after update
cluster_start_timeout=600
galera_sync_timeout=1800
cluster_settle_timeout=1800

timestamp_file="$timestamp_dir/$update_identifier"
if [[ -a "$timestamp_file" ]]; then
    echo "Not running for already-run timestamp \"$update_identifier\""
    exit 0
fi
touch "$timestamp_file"

command_arguments=${command_arguments:-}

list_updates=$(yum list updates)

if [[ "$list_updates" == "" ]]; then
    echo "No packages require updating"
    exit 0
fi

pacemaker_status=$(systemctl is-active pacemaker || :)

# Fix the redis/rabbit resource start/stop timeouts. See https://bugs.launchpad.net/tripleo/+bug/1633455
# and https://bugs.launchpad.net/tripleo/+bug/1634851
if [[ "$pacemaker_status" == "active" && \
      "$(hiera -c /etc/puppet/hiera.yaml bootstrap_nodeid)" = "$(facter hostname)" ]] ; then
    if pcs resource show rabbitmq | grep -E "start.*timeout=100"; then
        pcs resource update rabbitmq op start timeout=200s
    fi
    if pcs resource show rabbitmq | grep -E "stop.*timeout=90"; then
        pcs resource update rabbitmq op stop timeout=200s
    fi
    if pcs resource show redis | grep -E "start.*timeout=120"; then
        pcs resource update redis op start timeout=200s
    fi
    if pcs resource show redis | grep -E "stop.*timeout=120"; then
        pcs resource update redis op stop timeout=200s
    fi
fi

# Special-case OVS for https://bugs.launchpad.net/tripleo/+bug/1635205
special_case_ovs_upgrade_if_needed

if [[ "$pacemaker_status" == "active" ]] ; then
    echo "Pacemaker running, stopping cluster node and doing full package update"
    node_count=$(pcs status xml | grep -o "<nodes_configured.*/>" | grep -o 'number="[0-9]*"' | grep -o "[0-9]*")
    if [[ "$node_count" == "1" ]] ; then
        echo "Active node count is 1, stopping node with --force"
        pcs cluster stop --force
    else
        pcs cluster stop
    fi
else
    echo "Upgrading openstack-puppet-modules and its dependencies"
    yum -q -y update openstack-puppet-modules
    yum deplist openstack-puppet-modules | awk '/dependency/{print $2}' | xargs yum -q -y update
    echo "Upgrading other packages is handled by config management tooling"
    echo -n "true" > $heat_outputs_path.update_managed_packages
    exit 0
fi

command=${command:-update}
full_command="yum -q -y $command $command_arguments"
echo "Running: $full_command"

result=$($full_command)
return_code=$?
echo "$result"
echo "yum return code: $return_code"

# Writes any changes caused by alterations to os-net-config and bounces the
# interfaces *before* restarting the cluster.
os-net-config -c /etc/os-net-config/config.json -v --detailed-exit-codes
RETVAL=$?
if [[ $RETVAL == 2 ]]; then
    echo "os-net-config: interface configuration files updated successfully"
elif [[ $RETVAL != 0 ]]; then
    echo "ERROR: os-net-config configuration failed"
    exit $RETVAL
fi

if [[ "$pacemaker_status" == "active" ]] ; then
    echo "Starting cluster node"
    pcs cluster start

    hostname=$(hostname -s)
    tstart=$(date +%s)
    while [[ "$(pcs status | grep "^Online" | grep -F -o $hostname)" == "" ]]; do
        sleep 5
        tnow=$(date +%s)
        if (( tnow-tstart > cluster_start_timeout )) ; then
            echo "ERROR $hostname failed to join cluster in $cluster_start_timeout seconds"
            pcs status
            exit 1
        fi
    done

    tstart=$(date +%s)
    while ! clustercheck; do
        sleep 5
        tnow=$(date +%s)
        if (( tnow-tstart > galera_sync_timeout )) ; then
            echo "ERROR galera sync timed out"
            exit 1
        fi
    done

    echo "Waiting for pacemaker cluster to settle"
    if ! timeout -k 10 $cluster_settle_timeout crm_resource --wait; then
        echo "ERROR timed out while waiting for the cluster to settle"
        exit 1
    fi

    pcs status
fi

echo "Finished yum_update.sh on server $deploy_server_id at `date`"

exit $return_code