Hello community, here is the log from the commit of package ha-cluster-bootstrap for openSUSE:Factory checked in at 2014-03-09 18:22:51 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ha-cluster-bootstrap (Old) and /work/SRC/openSUSE:Factory/.ha-cluster-bootstrap.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "ha-cluster-bootstrap" Changes: -------- --- /work/SRC/openSUSE:Factory/ha-cluster-bootstrap/ha-cluster-bootstrap.changes 2014-02-28 16:25:06.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.ha-cluster-bootstrap.new/ha-cluster-bootstrap.changes 2014-03-09 18:22:54.000000000 +0100 @@ -1,0 +2,10 @@ +Fri Mar 7 11:57:29 UTC 2014 - tserong@suse.com + +- Warn if /dev/watchdog not present +- Set/clear two_node in corosync.conf (bnc#866435) +- Ensure corosync and SBD config are marked dirty before syncing +- Use `csync2 -R` to cleanup DB when removing node (bnc#867039) +- Sync all config files across all nodes when adding new node (bnc#867048) +- Upstream version cs:cc1daef + +------------------------------------------------------------------- Old: ---- sleha-bootstrap-0.4+git.1393474526.37debd0.tar.bz2 New: ---- sleha-bootstrap-0.4+git.1394193228.cc1daef.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ha-cluster-bootstrap.spec ++++++ --- /var/tmp/diff_new_pack.ACBTH5/_old 2014-03-09 18:22:54.000000000 +0100 +++ /var/tmp/diff_new_pack.ACBTH5/_new 2014-03-09 18:22:54.000000000 +0100 @@ -18,7 +18,7 @@ Name: ha-cluster-bootstrap -Version: 0.4+git.1393474526.37debd0 +Version: 0.4+git.1394193228.cc1daef Release: 0 Summary: Pacemaker HA Cluster Bootstrap Tool License: GPL-2.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.ACBTH5/_old 2014-03-09 18:22:54.000000000 +0100 +++ /var/tmp/diff_new_pack.ACBTH5/_new 2014-03-09 18:22:54.000000000 +0100 @@ -4,7 +4,7 @@ <param name="scm">git</param> <param name="exclude">.git</param> <param name="versionformat">0.4+git.%ct.%h</param> - <param name="revision">37debd0</param> + <param name="revision">cc1daef</param> </service> <service name="recompress" mode="disabled"> ++++++ sleha-bootstrap-0.4+git.1393474526.37debd0.tar.bz2 -> sleha-bootstrap-0.4+git.1394193228.cc1daef.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sleha-bootstrap-0.4+git.1393474526.37debd0/scripts/ha-cluster-functions new/sleha-bootstrap-0.4+git.1394193228.cc1daef/scripts/ha-cluster-functions --- old/sleha-bootstrap-0.4+git.1393474526.37debd0/scripts/ha-cluster-functions 2014-02-28 06:13:11.000000000 +0100 +++ new/sleha-bootstrap-0.4+git.1394193228.cc1daef/scripts/ha-cluster-functions 2014-03-07 12:57:20.000000000 +0100 @@ -404,6 +404,12 @@ warned=1 fi + if ! [ -c /dev/watchdog ] ; then + warn "There does not appear to be a watchdog device. If you use" + warn "SBD the cluster will be unable to start without a watchdog." + warned=1 + fi + if [ $warned -ne 0 ]; then confirm 'Do you want to continue anyway?' || exit fi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sleha-bootstrap-0.4+git.1393474526.37debd0/scripts/ha-cluster-init new/sleha-bootstrap-0.4+git.1394193228.cc1daef/scripts/ha-cluster-init --- old/sleha-bootstrap-0.4+git.1393474526.37debd0/scripts/ha-cluster-init 2014-02-28 06:13:11.000000000 +0100 +++ new/sleha-bootstrap-0.4+git.1394193228.cc1daef/scripts/ha-cluster-init 2014-03-07 12:57:20.000000000 +0100 @@ -280,10 +280,13 @@ # see also corosync.conf.5 and votequorum.5 provider: corosync_votequorum expected_votes: 1 + two_node: 0 } END # fi install_tmp $tmp_conf $COROSYNC_CONF + invoke csync2 -m $COROSYNC_CONF + invoke csync2 -f $COROSYNC_CONF invoke csync2 -xv $COROSYNC_CONF } @@ -422,6 +425,8 @@ local tmp_conf=$SYSCONFIG_SBD.$$ sed -e 's/^\([^#].*\)$/#\1/g' $SYSCONFIG_SBD > $tmp_conf install_tmp $tmp_conf $SYSCONFIG_SBD + invoke csync2 -m $SYSCONFIG_SBD + invoke csync2 -f $SYSCONFIG_SBD invoke csync2 -xv $SYSCONFIG_SBD fi return @@ -456,6 +461,8 @@ SBD_OPTS="-W" END install_tmp $tmp_conf $SYSCONFIG_SBD + invoke csync2 -m $SYSCONFIG_SBD + invoke csync2 -f $SYSCONFIG_SBD invoke csync2 -xv $SYSCONFIG_SBD } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sleha-bootstrap-0.4+git.1393474526.37debd0/scripts/ha-cluster-join new/sleha-bootstrap-0.4+git.1394193228.cc1daef/scripts/ha-cluster-join --- old/sleha-bootstrap-0.4+git.1393474526.37debd0/scripts/ha-cluster-join 2014-02-14 13:31:38.000000000 +0100 +++ new/sleha-bootstrap-0.4+git.1394193228.cc1daef/scripts/ha-cluster-join 2014-03-07 12:57:20.000000000 +0100 @@ -105,16 +105,16 @@ start_service csync2.socket - # Sync csync2.cfg out to all hosts (else hosts other than the seed and - # the joining host won't have the joining host in their config yet). - invoke ssh root@$SEED_HOST "csync2 -m $CSYNC2_CFG ; csync2 -f $CSYNC2_CFG ; csync2 -xv $CSYNC2_CFG" \ - || warn "csync2 of $CSYNC2_CFG failed - file may not be in sync on all nodes" - - # Sync everything else to the joining node only - # -mr marks all as dirty - # -fr forces all in sync - # -P syncs only to one host - invoke ssh root@$SEED_HOST "csync2 -mr / ; csync2 -fr / ; csync2 -xv -P $(hostname)" \ + # Sync new config out. This goes to all hosts; csync2.cfg definitely + # needs to go to all hosts (else hosts other than the seed and the + # joining host won't have the joining host in their config yet). + # Strictly, the rest of the files need only go to the new host which + # could theoretically be effected using `csync2 -xv -P $(hostname)`, + # but this still leaves all the other files in dirty state (becuase + # they haven't gone to all nodes in the cluster, which means a + # subseqent join of another node can fail its sync of corosync.conf + # when it updates expected_votes. Grrr... + invoke ssh root@$SEED_HOST "csync2 -mr / ; csync2 -fr / ; csync2 -xv" \ || warn "csync2 run failed - some files may not be sync'd" } @@ -174,10 +174,15 @@ # TODO(must): this is rather fragile (see related code in ha-cluster-remove) local tmp_conf=${COROSYNC_CONF}.$$ local new_quorum=$(awk -F[^0-9] '/^[[:space:]]*expected_votes/ { print $NF + 1 };' $COROSYNC_CONF) + local two_node=0 + [ $new_quorum -eq 2 ] && two_node=1 sed \ -e 's/^\([[:space:]]*expected_votes:[[:space:]]*\).*/\1'$new_quorum'/' \ + -e 's/^\([[:space:]]*two_node:[[:space:]]*\).*/\1'$two_node'/' \ $COROSYNC_CONF > $tmp_conf install_tmp $tmp_conf $COROSYNC_CONF + invoke csync2 -m $COROSYNC_CONF + invoke csync2 -f $COROSYNC_CONF invoke csync2 -xv $COROSYNC_CONF # ...now that that's out of the way, let's initialize the cluster. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sleha-bootstrap-0.4+git.1393474526.37debd0/scripts/ha-cluster-remove new/sleha-bootstrap-0.4+git.1394193228.cc1daef/scripts/ha-cluster-remove --- old/sleha-bootstrap-0.4+git.1393474526.37debd0/scripts/ha-cluster-remove 2014-02-18 07:05:06.000000000 +0100 +++ new/sleha-bootstrap-0.4+git.1394193228.cc1daef/scripts/ha-cluster-remove 2014-03-07 12:57:20.000000000 +0100 @@ -168,17 +168,24 @@ || error "remove the node $SEED_HOST from file $CSYNC2_CFG failed" status "Propagating the files across the surviving nodes" - #csync the file to all the node - invoke csync2 -f $CSYNC2_CFG && csync2 -xv >/dev/null 2>&1 || error "Propagate the file $CYNC2_CFG failed" + # csync the file to all the node + # `csync2 -R` is needed to remove old records from the database + # for the host that's now gone. + invoke csync2 -R && invoke csync2 -m $CSYNC2_CFG && invoke csync2 -f $CSYNC2_CFG && invoke csync2 -xv >/dev/null 2>&1 || error "Propagate the file $CYNC2_CFG failed" # Decrement expected_votes in corosync.conf # TODO(must): this is rather fragile (see related code in ha-cluster-join) local tmp_conf=${COROSYNC_CONF}.$$ local new_quorum=$(awk -F[^0-9] '/^[[:space:]]*expected_votes/ { print $NF - 1 };' $COROSYNC_CONF) + local two_node=0 + [ $new_quorum -eq 2 ] && two_node=1 sed \ -e 's/^\([[:space:]]*expected_votes:[[:space:]]*\).*/\1'$new_quorum'/' \ + -e 's/^\([[:space:]]*two_node:[[:space:]]*\).*/\1'$two_node'/' \ $COROSYNC_CONF > $tmp_conf install_tmp $tmp_conf $COROSYNC_CONF + invoke csync2 -m $COROSYNC_CONF + invoke csync2 -f $COROSYNC_CONF invoke csync2 -xv $COROSYNC_CONF # Trigger corosync config reload to ensure expected_votes is propagated -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org