diff --git a/cts/lxc_autogen.sh.in b/cts/lxc_autogen.sh.in index e137efe505..9bef74cef7 100644 --- a/cts/lxc_autogen.sh.in +++ b/cts/lxc_autogen.sh.in @@ -1,534 +1,536 @@ #!@BASH_PATH@ # -# Copyright 2013-2018 the Pacemaker project contributors +# Copyright 2013-2020 the Pacemaker project contributors # # The version control history for this file may have further details. # # This source code is licensed under the GNU General Public License version 2 # or later (GPLv2+) WITHOUT ANY WARRANTY. # containers="2" download=0 share_configs=0 # different than default libvirt network in case this is run nested in a KVM instance addr="192.168.123.1" restore=0 restore_pcmk=0 restore_all=0 generate=0 key_gen=0 cib=0 anywhere=0 add_master=0 verify=0 working_dir="@CRM_CONFIG_CTS@/lxc" run_dirs="/run /var/run /usr/var/run" SSH_CMD_OPTS=" - -o StrictHostKeyChecking=no - -o ConnectTimeout=30 - -o BatchMode=yes - -l root - -T + -o StrictHostKeyChecking=no + -o ConnectTimeout=30 + -o BatchMode=yes + -l root + -T " # must be on one line b/c used inside quotes SSH_RSYNC_OPTS="-o UserKnownHostsFile=/dev/null -o BatchMode=yes -o StrictHostKeyChecking=no" function helptext() { - echo "lxc_autogen.sh - A tool for generating libvirt lxc containers for testing purposes." - echo "" - echo "Usage: lxc-autogen [options]" - echo "" - echo "Options:" - echo "-g, --generate Generate libvirt lxc environment in the directory this script is run from." - echo "-k, --key-gen Generate pacemaker remote key only." - echo "-r, --restore-libvirt Restore the default network, and libvirt config to before this script ran." - echo "-p, --restore-cib Remove cib entries this script generated." - echo "-R, --restore-all Restore both libvirt and cib plus clean working directory. This will leave libvirt xml files though so rsc can be stopped properly." - echo "" - echo "-A, --allow-anywhere Allow the containers to live anywhere in the cluster" - echo "-a, --add-cib Add remote-node entries for each lxc instance into the cib" - echo "-m, --add-master Add master resource shared between remote-nodes" - echo "-d, --download-agent Download and install the latest VirtualDomain agent." - echo "-s, --share-configs Synchronize on all known cluster nodes" - echo "-c, --containers Specify the number of containers to generate, defaults to $containers. Used with -g" - echo "-n, --network What network to override default libvirt network to. Example: -n 192.168.123.1. Used with -g" - echo "-v, --verify Verify environment is capable of running lxc" - echo "" - exit $1 + echo "lxc_autogen.sh - A tool for generating libvirt lxc containers for testing purposes." + echo "" + echo "Usage: lxc-autogen [options]" + echo "" + echo "Options:" + echo "-g, --generate Generate libvirt lxc environment in the directory this script is run from." + echo "-k, --key-gen Generate pacemaker remote key only." + echo "-r, --restore-libvirt Restore the default network, and libvirt config to before this script ran." + echo "-p, --restore-cib Remove cib entries this script generated." + echo "-R, --restore-all Restore both libvirt and cib plus clean working directory. This will leave libvirt xml files though so rsc can be stopped properly." + echo "" + echo "-A, --allow-anywhere Allow the containers to live anywhere in the cluster" + echo "-a, --add-cib Add remote-node entries for each lxc instance into the cib" + echo "-m, --add-master Add master resource shared between remote-nodes" + echo "-d, --download-agent Download and install the latest VirtualDomain agent." + echo "-s, --share-configs Synchronize on all known cluster nodes" + echo "-c, --containers Specify the number of containers to generate, defaults to $containers. Used with -g" + echo "-n, --network What network to override default libvirt network to. Example: -n 192.168.123.1. Used with -g" + echo "-v, --verify Verify environment is capable of running lxc" + echo "" + exit $1 } while true ; do - case "$1" in - --help|-h|-\?) helptext 0;; - -c|--containers) containers="$2"; shift; shift;; - -d|--download-agent) download=1; shift;; - -s|--share-configs) share_configs=1; shift;; - -n|--network) addr="$2"; shift; shift;; - -r|--restore-libvirt) restore=1; shift;; - -p|--restore-cib) restore_pcmk=1; shift;; - -R|--restore-all) - restore_all=1 - restore=1 - restore_pcmk=1 - shift;; - -g|--generate) generate=1; key_gen=1; shift;; - -k|--key-gen) key_gen=1; shift;; - -a|--add-cib) cib=1; shift;; - -A|--allow-anywhere) anywhere=1; shift;; - -m|--add-master) add_master=1; shift;; - -v|--verify) verify=1; shift;; - "") break;; - *) helptext 1;; - esac + case "$1" in + --help|-h|-\?) helptext 0;; + -c|--containers) containers="$2"; shift; shift;; + -d|--download-agent) download=1; shift;; + -s|--share-configs) share_configs=1; shift;; + -n|--network) addr="$2"; shift; shift;; + -r|--restore-libvirt) restore=1; shift;; + -p|--restore-cib) restore_pcmk=1; shift;; + -R|--restore-all) + restore_all=1 + restore=1 + restore_pcmk=1 + shift;; + -g|--generate) generate=1; key_gen=1; shift;; + -k|--key-gen) key_gen=1; shift;; + -a|--add-cib) cib=1; shift;; + -A|--allow-anywhere) anywhere=1; shift;; + -m|--add-master) add_master=1; shift;; + -v|--verify) verify=1; shift;; + "") break;; + *) helptext 1;; + esac done if [ $verify -eq 1 ]; then - # verify virsh tool is available and that - # we can connect to lxc driver. - virsh -c lxc:/// list --all > /dev/null 2>&1 - if [ $? -ne 0 ]; then - echo "Could not connect 'virsh -c lxc:///' check that libvirt lxc driver is installed" - # yum install -y libvirt-daemon-driver-lxc libvirt-daemon-lxc libvirt-login-shell - exit 1 - fi - - - cat /etc/selinux/config | grep -e "SELINUX.*=.*permissive" -e "SELINUX.*=.*enforcing" > /dev/null 2>&1 - if [ $? -ne 0 ]; then - echo "/etc/selinux/config must have SELINUX set to permissive or enforcing mode." - exit 1 - fi - - ps x > /tmp/lxc-autogen-libvirt-test.txt - grep "libvirtd" /tmp/lxc-autogen-libvirt-test.txt - if [ $? -ne 0 ]; then - rm -f /tmp/lxc-autogen-libvirt-test.txt - echo "libvirtd isn't up." - exit 1 - fi - rm -f /tmp/lxc-autogen-libvirt-test.txt - - which rsync > /dev/null 2>&1 - if [ $? -ne 0 ]; then - echo "rsync is required" - fi - - which pacemaker-remoted > /dev/null 2>&1 - if [ $? -ne 0 ]; then - echo "pacemaker-remoted is required" - fi + # verify virsh tool is available and that + # we can connect to lxc driver. + virsh -c lxc:/// list --all > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Could not connect 'virsh -c lxc:///' check that libvirt lxc driver is installed" + # yum install -y libvirt-daemon-driver-lxc libvirt-daemon-lxc libvirt-login-shell + exit 1 + fi + + + cat /etc/selinux/config | grep -e "SELINUX.*=.*permissive" -e "SELINUX.*=.*enforcing" > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "/etc/selinux/config must have SELINUX set to permissive or enforcing mode." + exit 1 + fi + + ps x > /tmp/lxc-autogen-libvirt-test.txt + grep "libvirtd" /tmp/lxc-autogen-libvirt-test.txt + if [ $? -ne 0 ]; then + rm -f /tmp/lxc-autogen-libvirt-test.txt + echo "libvirtd isn't up." + exit 1 + fi + rm -f /tmp/lxc-autogen-libvirt-test.txt + + which rsync > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "rsync is required" + fi + + which pacemaker-remoted > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "pacemaker-remoted is required" + fi fi #strip last digits off addr addr=$(echo $addr | awk -F. '{print $1"."$2"."$3}') this_node() { - crm_node -n + crm_node -n } other_nodes() { - crm_node -l | awk "\$2 != \"$(this_node)\" {print \$2}" + crm_node -l | awk "\$2 != \"$(this_node)\" {print \$2}" } make_directory() { - # argument must be full path - DIR="$1" - - mkdir -p "$DIR" - if [ $share_configs -eq 1 ]; then - for node in $(other_nodes); do - ssh $SSH_CMD_OPTS $node mkdir -p "$DIR" - done - fi + # argument must be full path + DIR="$1" + + mkdir -p "$DIR" + if [ $share_configs -eq 1 ]; then + for node in $(other_nodes); do + ssh $SSH_CMD_OPTS $node mkdir -p "$DIR" + done + fi } sync_file() { - TARGET="$1" + TARGET="$1" - if [ $share_configs -eq 1 ]; then - for node in $(other_nodes); do - rsync -ave "ssh $SSH_RSYNC_OPTS" "$TARGET" "${node}:${TARGET}" - done - fi + if [ $share_configs -eq 1 ]; then + for node in $(other_nodes); do + rsync -ave "ssh $SSH_RSYNC_OPTS" "$TARGET" "${node}:${TARGET}" + done + fi } download_agent() { - wget https://raw.github.com/ClusterLabs/resource-agents/master/heartbeat/VirtualDomain - chmod 755 VirtualDomain - mv -f VirtualDomain /usr/lib/ocf/resource.d/heartbeat/VirtualDomain - sync_file /usr/lib/ocf/resource.d/heartbeat/VirtualDomain + wget https://raw.github.com/ClusterLabs/resource-agents/master/heartbeat/VirtualDomain + chmod 755 VirtualDomain + mv -f VirtualDomain /usr/lib/ocf/resource.d/heartbeat/VirtualDomain + sync_file /usr/lib/ocf/resource.d/heartbeat/VirtualDomain } set_network() { - rm -f cur_network.xml - cat << END >> cur_network.xml + rm -f cur_network.xml + cat << END >> cur_network.xml default 41ebdb84-7134-1111-a136-91f0f1119225 END - sync_file ${working_dir}/cur_network.xml + sync_file ${working_dir}/cur_network.xml } distribute_configs() { - for node in $(other_nodes); do - rsync -ave "ssh $SSH_RSYNC_OPTS" ${working_dir}/lxc*.xml ${node}:${working_dir} - rsync -ave "ssh $SSH_RSYNC_OPTS" ${working_dir}/lxc*-filesystem ${node}:${working_dir} - done + for node in $(other_nodes); do + rsync -ave "ssh $SSH_RSYNC_OPTS" ${working_dir}/lxc*.xml ${node}:${working_dir} + rsync -ave "ssh $SSH_RSYNC_OPTS" ${working_dir}/lxc*-filesystem ${node}:${working_dir} + done } start_network() { - NODE="$1" - - ssh $SSH_CMD_OPTS $NODE <<-EOF - cd $working_dir - virsh net-info default >/dev/null 2>&1 - if [ \$? -eq 0 ]; then - if [ ! -f restore_default.xml ]; then - virsh net-dumpxml default > restore_default.xml - fi - virsh net-destroy default - virsh net-undefine default - fi - virsh net-define cur_network.xml - virsh net-start default - virsh net-autostart default + NODE="$1" + + ssh $SSH_CMD_OPTS $NODE <<-EOF + cd $working_dir + virsh net-info default >/dev/null 2>&1 + if [ \$? -eq 0 ]; then + if [ ! -f restore_default.xml ]; then + virsh net-dumpxml default > restore_default.xml + fi + virsh net-destroy default + virsh net-undefine default + fi + virsh net-define cur_network.xml + virsh net-start default + virsh net-autostart default EOF } start_network_all() { - start_network "$(this_node)" - if [ $share_configs -eq 1 ]; then - for node in $(other_nodes); do - start_network "$node" - done - fi + start_network "$(this_node)" + if [ $share_configs -eq 1 ]; then + for node in $(other_nodes); do + start_network "$node" + done + fi } add_hosts_entry() { - IP="$1" - HNAME="$2" - - echo $IP $HNAME >>/etc/hosts - if [ $share_configs -eq 1 ]; then - for node in $(other_nodes); do - ssh $SSH_CMD_OPTS $node "echo $IP $HNAME >>/etc/hosts" - done - fi + IP="$1" + HNAME="$2" + + echo $IP $HNAME >>/etc/hosts + if [ $share_configs -eq 1 ]; then + for node in $(other_nodes); do + ssh $SSH_CMD_OPTS $node "echo $IP $HNAME >>/etc/hosts" + done + fi } generate_key() { - if [ ! -e /etc/pacemaker/authkey ]; then - make_directory /etc/pacemaker - dd if=/dev/urandom of=/etc/pacemaker/authkey bs=4096 count=1 - sync_file /etc/pacemaker/authkey - fi + if [ ! -e /etc/pacemaker/authkey ]; then + make_directory /etc/pacemaker + dd if=/dev/urandom of=/etc/pacemaker/authkey bs=4096 count=1 + sync_file /etc/pacemaker/authkey + fi } generate() { - set_network - - # Generate libvirt domains in xml - for (( c=1; c <= $containers; c++ )) - do - # Clean any previous definition - rm -rf lxc$c.xml lxc$c-filesystem - - # Create a basic filesystem with run directories - for dir in $run_dirs; do - mkdir -p lxc$c-filesystem/$dir - done - - # Create libvirt definition - suffix=$((10 + $c)) - prefix=$(echo $addr | awk -F. '{print $1"."$2}') - subnet=$(echo $addr | awk -F. '{print $3}') - while [ $suffix -gt 255 ]; do - subnet=$(($subnet + 1)) - suffix=$(($subnet - 255)) - done - cip=$prefix.$subnet.$suffix - - cat << END >> lxc$c.xml + set_network + + # Generate libvirt domains in xml + for (( c=1; c <= $containers; c++ )) + do + # Clean any previous definition + rm -rf lxc$c.xml lxc$c-filesystem + + # Create a basic filesystem with run directories + for dir in $run_dirs; do + mkdir -p lxc$c-filesystem/$dir + done + + # Create libvirt definition + suffix=$((10 + $c)) + prefix=$(echo $addr | awk -F. '{print $1"."$2}') + subnet=$(echo $addr | awk -F. '{print $3}') + while [ $suffix -gt 255 ]; do + subnet=$(($subnet + 1)) + suffix=$(($subnet - 255)) + done + cip=$prefix.$subnet.$suffix + + cat << END >> lxc$c.xml lxc$c 200704 exe $working_dir/lxc$c-filesystem/launch-helper END - for dir in $run_dirs; do - cat << END >> lxc$c.xml + for dir in $run_dirs; do + cat << END >> lxc$c.xml END - done - cat << END >> lxc$c.xml + done + cat << END >> lxc$c.xml END - # Create CIB definition - rm -f container$c.cib - cat << END >> container$c.cib + # Create CIB definition + rm -f container$c.cib + cat << END >> container$c.cib END - # Create container init - rm -f lxc$c-filesystem/launch-helper - cat << END >> lxc$c-filesystem/launch-helper + # Create container init + rm -f lxc$c-filesystem/launch-helper + cat << END >> lxc$c-filesystem/launch-helper #!@BASH_PATH@ ip -f inet addr add $cip/24 dev eth0 ip link set eth0 up ip route add default via $addr.1 hostname lxc$c df > $working_dir/lxc$c-filesystem/disk_usage.txt export PCMK_debugfile=@CRM_LOG_DIR@/pacemaker_remote_lxc$c.log /usr/sbin/pacemaker-remoted END - chmod 711 lxc$c-filesystem/launch-helper + chmod 711 lxc$c-filesystem/launch-helper - add_hosts_entry $cip lxc$c - done + add_hosts_entry $cip lxc$c + done - # Create CIB fragment for a master-slave resource - rm -f lxc-ms.cib - cat << END >> lxc-ms.cib + # Create CIB fragment for a master-slave resource + rm -f lxc-ms.cib + cat << END >> lxc-ms.cib END } apply_cib_master() { - cibadmin -Q > cur.cib - export CIB_file=cur.cib - - cibadmin -o resources -Mc -x lxc-ms.cib - for tmp in $(ls lxc*.xml | sed -e 's/\.xml//g'); do - echo "" > tmp_constraint - cibadmin -o constraints -Mc -x tmp_constraint - done - # Make sure the version changes even if the content doesn't - cibadmin -B - unset CIB_file - - cibadmin --replace -o configuration --xml-file cur.cib - rm -f cur.cib + cibadmin -Q > cur.cib + export CIB_file=cur.cib + + cibadmin -o resources -Mc -x lxc-ms.cib + for tmp in $(ls lxc*.xml | sed -e 's/\.xml//g'); do + echo "" > tmp_constraint + cibadmin -o constraints -Mc -x tmp_constraint + done + # Make sure the version changes even if the content doesn't + cibadmin -B + unset CIB_file + + cibadmin --replace -o configuration --xml-file cur.cib + rm -f cur.cib } apply_cib_entries() { - cibadmin -Q > cur.cib - export CIB_file=cur.cib - for tmp in container*.cib; do - cibadmin -o resources -Mc -x $tmp - - remote_node=$(cat ${tmp} | grep remote-node | sed -n -e 's/^.*value=\"\(.*\)\".*/\1/p') - if [ $anywhere -eq 0 ]; then - tmp=$(echo $tmp | sed -e 's/\.cib//g') - crm_resource -M -r "$tmp" -H "$(this_node)" - fi - echo "" > tmp_constraint - # it's fine if applying this constraint fails. it's just to help with cts - # when the connectivity resources are in use. those resources fail the remote-nodes. - cibadmin -o constraints -Mc -x tmp_constraint > /dev/null 2>&1 - - for rsc in $(crm_resource -l | grep rsc_ ); do - echo "" > tmp_constraint - cibadmin -o constraints -Mc -x tmp_constraint > /dev/null 2>&1 - done - - rm -f tmp_constraint - done - - # Make sure the version changes even if the content doesn't - cibadmin -B - - unset CIB_file - - cibadmin --replace -o configuration --xml-file cur.cib - rm -f cur.cib + cibadmin -Q > cur.cib + export CIB_file=cur.cib + for tmp in container*.cib; do + cibadmin -o resources -Mc -x $tmp + + remote_node=$(cat ${tmp} | grep remote-node | sed -n -e 's/^.*value=\"\(.*\)\".*/\1/p') + if [ $anywhere -eq 0 ]; then + tmp=$(echo $tmp | sed -e 's/\.cib//g') + crm_resource -M -r "$tmp" -H "$(this_node)" + fi + echo "" > tmp_constraint + # it's fine if applying this constraint fails. it's just to help with cts + # when the connectivity resources are in use. those resources fail the remote-nodes. + cibadmin -o constraints -Mc -x tmp_constraint > /dev/null 2>&1 + + for rsc in $(crm_resource -l | grep rsc_ ); do + echo "" > tmp_constraint + cibadmin -o constraints -Mc -x tmp_constraint > /dev/null 2>&1 + done + + rm -f tmp_constraint + done + + # Make sure the version changes even if the content doesn't + cibadmin -B + + unset CIB_file + + cibadmin --replace -o configuration --xml-file cur.cib + rm -f cur.cib } restore_cib() { - cibadmin -Q > cur.cib - export CIB_file=cur.cib - - for tmp in $(ls lxc*.xml | sed -e 's/\.xml//g'); do - echo "" > tmp_constraint - cibadmin -o constraints -D -x tmp_constraint - echo "" > tmp_constraint - cibadmin -o constraints -D -x tmp_constraint - - for rsc in $(crm_resource -l | grep rsc_ ); do - echo "" > tmp_constraint - cibadmin -o constraints -D -x tmp_constraint - done - rm -f tmp_constraint - done - cibadmin -o resources -D -x lxc-ms.cib - - for tmp in container*.cib; do - tmp=$(echo $tmp | sed -e 's/\.cib//g') - crm_resource -U -r "$tmp" -H "$(this_node)" - crm_resource -D -r "$tmp" -t primitive - done - # Make sure the version changes even if the content doesn't - cibadmin -B - unset CIB_file - - cibadmin --replace -o configuration --xml-file cur.cib - rm -f cur.cib - - # Allow the cluster to stabilize before continuing - crm_resource --wait - - # Purge nodes from caches and CIB status section - for tmp in $(ls lxc*.xml | sed -e 's/\.xml//g'); do - crm_node --force --remove $tmp - done + cibadmin -Q > cur.cib + export CIB_file=cur.cib + + for tmp in $(ls lxc*.xml | sed -e 's/\.xml//g'); do + echo "" > tmp_constraint + cibadmin -o constraints -D -x tmp_constraint + echo "" > tmp_constraint + cibadmin -o constraints -D -x tmp_constraint + + for rsc in $(crm_resource -l | grep rsc_ ); do + echo "" > tmp_constraint + cibadmin -o constraints -D -x tmp_constraint + done + rm -f tmp_constraint + done + cibadmin -o resources -D -x lxc-ms.cib + + for tmp in container*.cib; do + tmp=$(echo $tmp | sed -e 's/\.cib//g') + crm_resource -U -r "$tmp" -H "$(this_node)" + crm_resource -D -r "$tmp" -t primitive + done + # Make sure the version changes even if the content doesn't + cibadmin -B + unset CIB_file + + cibadmin --replace -o configuration --xml-file cur.cib + rm -f cur.cib + + # Allow the cluster to stabilize before continuing + crm_resource --wait + + # Purge nodes from caches and CIB status section + for tmp in $(ls lxc*.xml | sed -e 's/\.xml//g'); do + crm_node --force --remove $tmp + done } restore_network() { - NODE="$1" - - ssh $SSH_CMD_OPTS $NODE <<-EOF - cd $working_dir - for tmp in \$(ls lxc*.xml | sed -e 's/\.xml//g'); do - virsh -c lxc:/// destroy \$tmp >/dev/null 2>&1 - virsh -c lxc:/// undefine \$tmp >/dev/null 2>&1 - sed -i.bak "/...\....\....\..* \${tmp}/d" /etc/hosts - done - virsh net-destroy default >/dev/null 2>&1 - virsh net-undefine default >/dev/null 2>&1 - if [ -f restore_default.xml ]; then - virsh net-define restore_default.xml - virsh net-start default - rm restore_default.xml - fi + NODE="$1" + + ssh $SSH_CMD_OPTS $NODE <<-EOF + cd $working_dir + for tmp in \$(ls lxc*.xml | sed -e 's/\.xml//g'); do + virsh -c lxc:/// destroy \$tmp >/dev/null 2>&1 + virsh -c lxc:/// undefine \$tmp >/dev/null 2>&1 + sed -i.bak "/...\....\....\..* \${tmp}/d" /etc/hosts + done + virsh net-destroy default >/dev/null 2>&1 + virsh net-undefine default >/dev/null 2>&1 + if [ -f restore_default.xml ]; then + virsh net-define restore_default.xml + virsh net-start default + rm restore_default.xml + fi EOF - echo "Containers destroyed and default network restored on $NODE" + echo "Containers destroyed and default network restored on $NODE" } restore_libvirt() { - restore_network "$(this_node)" - if [ $share_configs -eq 1 ]; then - for node in $(other_nodes); do - restore_network $node - done - fi + restore_network "$(this_node)" + if [ $share_configs -eq 1 ]; then + for node in $(other_nodes); do + restore_network $node + done + fi } restore_files() { - find . -maxdepth 1 -not -name "lxc*.xml" -a -not -name . -exec rm -rf "{}" ";" - if [ $share_configs -eq 1 ]; then - for node in $(other_nodes); do - ssh $SSH_CMD_OPTS $node rm -rf \ - $working_dir/lxc*-filesystem \ - $working_dir/cur_network.xml - done - fi + find . -maxdepth 1 -not -name "lxc*.xml" -a -not -name . -exec rm -rf "{}" ";" + if [ $share_configs -eq 1 ]; then + for node in $(other_nodes); do + ssh $SSH_CMD_OPTS $node rm -rf \ + $working_dir/lxc*-filesystem \ + $working_dir/cur_network.xml + done + fi } make_directory $working_dir cd $working_dir || exit 1 # Generate files as requested if [ $download -eq 1 ]; then - download_agent + download_agent fi if [ $key_gen -eq 1 ]; then - generate_key + generate_key fi if [ $generate -eq 1 ]; then - generate + generate fi if [ $share_configs -eq 1 ]; then - distribute_configs + distribute_configs fi if [ $generate -eq 1 ]; then - start_network_all + start_network_all fi # Update cluster as requested if [ $cib -eq 1 ]; then - apply_cib_entries + apply_cib_entries fi if [ $add_master -eq 1 ]; then - apply_cib_master + apply_cib_master fi # Restore original state as requested if [ $restore_pcmk -eq 1 ]; then - restore_cib + restore_cib fi if [ $restore -eq 1 ]; then - restore_libvirt + restore_libvirt fi if [ $restore_all -eq 1 ]; then - restore_files + restore_files fi + +# vim: set expandtab tabstop=8 softtabstop=4 shiftwidth=4 textwidth=80: