[pve-devel] r6433 - in pve-cluster/trunk: data data/PVE debian

svn-commits at proxmox.com svn-commits at proxmox.com
Mon Aug 8 11:52:23 CEST 2011


Author: dietmar
Date: 2011-08-08 11:52:23 +0200 (Mon, 08 Aug 2011)
New Revision: 6433

Modified:
   pve-cluster/trunk/data/ChangeLog
   pve-cluster/trunk/data/PVE/pvecert
   pve-cluster/trunk/data/PVE/pvecm
   pve-cluster/trunk/debian/init.d
Log:
	(create): Wait for quorum and restart apache2 



Modified: pve-cluster/trunk/data/ChangeLog
===================================================================
--- pve-cluster/trunk/data/ChangeLog	2011-08-08 09:22:30 UTC (rev 6432)
+++ pve-cluster/trunk/data/ChangeLog	2011-08-08 09:52:23 UTC (rev 6433)
@@ -1,7 +1,9 @@
 2011-08-08  Proxmox Support Team  <support at proxmox.com>
 
 	* PVE/pvecm: try to create all files/dirs in 'addnode', because that
-	node has quorum. (create) Add id_rsa.pub to authorized_keys.
+	node has quorum. 
+	(create): Add id_rsa.pub to authorized_keys.
+	(create): Wait for quorum and restart apache2 
 
 	* src/cfs-plug-func.c (cfs_plug_func_new): add write callback (to
 	trigger actions).

Modified: pve-cluster/trunk/data/PVE/pvecert
===================================================================
--- pve-cluster/trunk/data/PVE/pvecert	2011-08-08 09:22:30 UTC (rev 6432)
+++ pve-cluster/trunk/data/PVE/pvecert	2011-08-08 09:52:23 UTC (rev 6433)
@@ -10,15 +10,17 @@
 die "please run as root\n" if $> != 0;
 
 my $opt_force;
+my $opt_silent; # supress error if we do not have quorum
 
-if (!GetOptions ('force' => \$opt_force)) {
-    print STDERR "Usage: pvecert [--force]\n";
+if (!GetOptions ('force' => \$opt_force, 'silent' => \$opt_silent)) {
+    print STDERR "Usage: pvecert [--force] [--silent]\n";
     exit (-1);
 }
 
+exit (0) if $opt_silent && !PVE::Cluster::check_cfs_quorum();
+
 my $nodename = PVE::INotify::nodename();
 my $ip = PVE::Cluster::remote_node_ip($nodename);
-
 PVE::Cluster::gen_pve_node_files($nodename, $ip, $opt_force);
 
 exit (0);

Modified: pve-cluster/trunk/data/PVE/pvecm
===================================================================
--- pve-cluster/trunk/data/PVE/pvecm	2011-08-08 09:22:30 UTC (rev 6432)
+++ pve-cluster/trunk/data/PVE/pvecm	2011-08-08 09:52:23 UTC (rev 6433)
@@ -499,6 +499,22 @@
 		die "starting pve-cluster failed\n";
 
 	    system("/etc/init.d/cman start");
+
+	    # wait for quorum
+	    my $printqmsg = 1;
+	    while (!PVE::Cluster::check_cfs_quorum()) {
+		if ($printqmsg) {
+		    print "waiting for quorum...";
+		    STDOUT->flush();
+		    $printqmsg = 0;
+		}
+		sleep(1);
+	    }
+	    print "OK\n";
+	    # restart apache (changed certs)
+	    system("/etc/init.d/apache2 restart");
+
+	    print "successfully added node '$nodename' to cluster.\n";
 	};
 	my $err = $@;
 

Modified: pve-cluster/trunk/debian/init.d
===================================================================
--- pve-cluster/trunk/debian/init.d	2011-08-08 09:22:30 UTC (rev 6432)
+++ pve-cluster/trunk/debian/init.d	2011-08-08 09:52:23 UTC (rev 6433)
@@ -81,9 +81,12 @@
         fi
 	errcode=0
         start_server || errcode=$?
-	# try to create required directories
+	# try to create required directories. This only works
+	# for a single node setup, because we have no quorum
+	# in a cluster setup. But this doesn't matter, because the 
+	# cluster manager creates all needed files (pvecm)
 	if [ $errcode -eq 0 ] ; then
-	    /usr/bin/pvecert || true
+	    /usr/bin/pvecert --silent || true
 	fi
         log_end_msg $errcode
 	;;



More information about the pve-devel mailing list