[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[Cluster-devel] conga ./clustermon.spec.in.in ./conga.spec.in. ...



CVSROOT:	/cvs/cluster
Module name:	conga
Branch: 	RHEL5
Changes by:	rmccabe sourceware org	2008-05-12 15:13:33

Modified files:
	.              : clustermon.spec.in.in conga.spec.in.in 
	luci/site/luci/Extensions: ricci_communicator.py 
	make           : version.in 
	ricci/common   : File.cpp Variable.cpp daemon_init.c utils.cpp 
	ricci/include  : shred_allocator.h 
	ricci/init.d   : ricci 
	ricci/modules/cluster/clumon: Makefile 
	ricci/modules/cluster/clumon/init.d: modclusterd 
	ricci/modules/cluster/clumon/src/common: Cluster.cpp 
	ricci/modules/storage: ContentFS.cpp ExtendedFS.cpp LV.cpp 
	                       Mapper.cpp MountHandler.cpp PTSource.cpp 
	                       PV.cpp Partition.cpp PartitionTable.cpp 
	                       parted_wrapper.cpp 

Log message:
	Fixes from HEAD

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/clustermon.spec.in.in.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.18.2.37&r2=1.18.2.38
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/conga.spec.in.in.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.45.2.84&r2=1.45.2.85
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/ricci_communicator.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.9.2.14&r2=1.9.2.15
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/make/version.in.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.21.2.38&r2=1.21.2.39
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/common/File.cpp.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.1.2.4&r2=1.1.2.5
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/common/Variable.cpp.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.8.2.1&r2=1.8.2.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/common/daemon_init.c.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.1.2.1&r2=1.1.2.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/common/utils.cpp.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.6.2.2&r2=1.6.2.3
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/include/shred_allocator.h.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.2.2.1&r2=1.2.2.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/init.d/ricci.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.8.2.4&r2=1.8.2.5
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/modules/cluster/clumon/Makefile.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.4.2.2&r2=1.4.2.3
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/modules/cluster/clumon/init.d/modclusterd.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.2.2.2&r2=1.2.2.3
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/modules/cluster/clumon/src/common/Cluster.cpp.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.6.2.2&r2=1.6.2.3
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/modules/storage/ContentFS.cpp.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.5.2.1&r2=1.5.2.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/modules/storage/ExtendedFS.cpp.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.7.2.2&r2=1.7.2.3
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/modules/storage/LV.cpp.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.6.2.4&r2=1.6.2.5
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/modules/storage/Mapper.cpp.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.3.2.1&r2=1.3.2.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/modules/storage/MountHandler.cpp.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.5.2.2&r2=1.5.2.3
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/modules/storage/PTSource.cpp.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.2.2.1&r2=1.2.2.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/modules/storage/PV.cpp.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.4.2.3&r2=1.4.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/modules/storage/Partition.cpp.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.3.2.1&r2=1.3.2.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/modules/storage/PartitionTable.cpp.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.5.2.1&r2=1.5.2.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/modules/storage/parted_wrapper.cpp.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.8.2.4&r2=1.8.2.5

--- conga/clustermon.spec.in.in	2008/04/11 06:54:43	1.18.2.37
+++ conga/clustermon.spec.in.in	2008/05/12 15:13:31	1.18.2.38
@@ -18,7 +18,7 @@
 Name: clustermon
 Version: @@VERS@@
 Release: @@REL@@%{?dist}
-License: GPL
+License: GPLv2
 URL: http://sources.redhat.com/cluster/conga
 
 Group: System Environment/Base
@@ -67,12 +67,11 @@
 make %{?_smp_mflags} clustermon
 
 %install
-rm -rf $RPM_BUILD_ROOT
-make DESTDIR=$RPM_BUILD_ROOT install_clustermon
+rm -rf %{buildroot}
+make DESTDIR=%{buildroot} install_clustermon
 
 %clean
-rm -rf $RPM_BUILD_ROOT
-
+rm -rf %{buildroot}
 
 
 
@@ -191,7 +190,7 @@
 			%{_docdir}/cluster-cim-%{version}/
 
 %post -n cluster-cim
-# pegasus might not be running, don't fail %post
+# pegasus might not be running, don't fail
 /sbin/service tog-pegasus condrestart >&/dev/null
 exit 0
 
@@ -200,7 +199,7 @@
 if [ "$1" == "0" ]; then
 	/sbin/service tog-pegasus condrestart >&/dev/null
 fi
-# pegasus might not be running, don't fail %postun
+# pegasus might not be running, don't fail
 exit 0
 
 
--- conga/conga.spec.in.in	2008/04/28 03:54:18	1.45.2.84
+++ conga/conga.spec.in.in	2008/05/12 15:13:32	1.45.2.85
@@ -62,11 +62,11 @@
 make %{?_smp_mflags} conga
 
 %install
-rm -rf $RPM_BUILD_ROOT
-make DESTDIR=$RPM_BUILD_ROOT install_conga
+rm -rf %{buildroot}
+make DESTDIR=%{buildroot} install_conga
 
 %clean
-rm -rf $RPM_BUILD_ROOT
+rm -rf %{buildroot}
 
 
 ####### luci #######
--- conga/luci/site/luci/Extensions/ricci_communicator.py	2008/01/23 04:44:32	1.9.2.14
+++ conga/luci/site/luci/Extensions/ricci_communicator.py	2008/05/12 15:13:32	1.9.2.15
@@ -169,7 +169,7 @@
 				luci_log.debug_net('RC:UNAUTH0: unauthenticate %s for %s:%d' \
 					% (ret, self.__hostname, self.__port))
 			if ret != '0':
-				raise Exception, 'Invalid response'
+				raise Exception, 'Invalid response: %s' % ret
 
 			try:
 				self.ss.untrust()
@@ -494,7 +494,7 @@
 					% batch_xml.toxml())
 			except:
 				pass
-		raise RicciError, 'Not an XML batch node'
+		raise RicciError, 'Not an XML batch node: %s' % batch_xml.nodeName
 
 	total = 0
 	last = 0
@@ -544,7 +544,7 @@
 		if LUCI_DEBUG_NET is True:
 			luci_log.debug_net_priv('RC:EMS0: Expecting "batch" got "%s"' \
 				% batch_xml.toxml())
-		raise RicciError, 'Invalid XML node; expecting a batch node'
+		raise RicciError, 'Invalid XML node; expecting a batch node: %s' % batch_xml.nodeName
 
 	c = 0
 	for node in batch_xml.childNodes:
--- conga/make/version.in	2008/04/28 03:54:18	1.21.2.38
+++ conga/make/version.in	2008/05/12 15:13:32	1.21.2.39
@@ -1,2 +1,2 @@
-VERSION=0.12.0
-RELEASE=9
+VERSION=0.14.0
+RELEASE=1
--- conga/ricci/common/File.cpp	2008/01/17 17:38:36	1.1.2.4
+++ conga/ricci/common/File.cpp	2008/05/12 15:13:32	1.1.2.5
@@ -139,17 +139,17 @@
 	MutexLocker l(*_mutex);
 
 	long len = size();
-	const auto_ptr<char> buff(new char[len]);
+	char buff[len];
 	try {
 		((fstream *) _pimpl->fs)->seekg(0, ios::beg);
 		check_failed();
-		((fstream *) _pimpl->fs)->read(buff.get(), len);
+		((fstream *) _pimpl->fs)->read(buff, len);
 		check_failed();
-		String ret(buff.get(), len);
-		::shred(buff.get(), len);
+		String ret(buff, len);
+		::shred(buff, len);
 		return ret;
 	} catch ( ... ) {
-		::shred(buff.get(), len);
+		::shred(buff, len);
 		throw;
 	}
 }
--- conga/ricci/common/Variable.cpp	2008/01/17 17:38:36	1.8.2.1
+++ conga/ricci/common/Variable.cpp	2008/05/12 15:13:32	1.8.2.2
@@ -26,6 +26,8 @@
 
 #include <stdio.h>
 
+#include <vector>
+#include <algorithm>
 using namespace std;
 
 // ##### class Variable #####
--- conga/ricci/common/daemon_init.c	2008/01/17 17:38:36	1.1.2.1
+++ conga/ricci/common/daemon_init.c	2008/05/12 15:13:32	1.1.2.2
@@ -20,7 +20,7 @@
 /** @file
  * daemon_init function, does sanity checks and calls daemon().
  *
- * $Id: daemon_init.c,v 1.1.2.1 2008/01/17 17:38:36 rmccabe Exp $
+ * $Id: daemon_init.c,v 1.1.2.2 2008/05/12 15:13:32 rmccabe Exp $
  *
  * Author: Jeff Moyer <moyer mclinux com>
  */
@@ -232,5 +232,4 @@
 
 	update_pidfile(prog);
 	nice(-1);
-	//mlockall(MCL_CURRENT | MCL_FUTURE);
 }
--- conga/ricci/common/utils.cpp	2008/01/17 17:38:36	1.6.2.2
+++ conga/ricci/common/utils.cpp	2008/05/12 15:13:32	1.6.2.3
@@ -23,8 +23,13 @@
 #include "utils.h"
 #include "executils.h"
 
-#include <openssl/md5.h>
+#include <unistd.h>
+#include <stdio.h>
 #include <stdlib.h>
+#include <math.h>
+#include <errno.h>
+#include <limits.h>
+#include <openssl/md5.h>
 
 //#include <iostream>
 
@@ -201,24 +206,44 @@
 long long
 utils::to_long(const String& str)
 {
-	return atoll(str.c_str());
+	char *p = NULL;
+	long long ret;
+	ret = strtoll(strip(str).c_str(), &p, 10);
+	if (p != NULL && *p != '\0')
+		throw String("Not a number: ") + str;
+	if (ret == LLONG_MIN && errno == ERANGE)
+		throw String("Numeric underflow: ") + str;
+	if (ret == LLONG_MAX && errno == ERANGE)
+		throw String("Numeric overflow: ") + str;
+	return ret;
 }
 
 float
 utils::to_float(const String& str)
 {
-	float num = 0;
+	char *p = NULL;
+	float ret;
 
-	sscanf(strip(str).c_str(), "%f", &num);
-	return num;
+	ret = strtof(strip(str).c_str(), &p);
+	if (p != NULL && *p == '\0')
+		throw String("Invalid floating point number: ") + str;
+	if (ret == 0 && errno == ERANGE)
+		throw String("Floating point underflow: ") + str;
+	if ((ret == HUGE_VALF || ret == HUGE_VALL) && errno == ERANGE)
+		throw String("Floating point overflow: ") + str;
+
+	return ret;
 }
 
 String
 utils::to_string(int value)
 {
 	char tmp[64];
+	int ret;
 
-	sprintf(tmp, "%d", value);
+	ret = snprintf(tmp, sizeof(tmp), "%d", value);
+	if (ret < 0 || (size_t) ret >= sizeof(tmp))
+		throw String("Invalid integer");
 	return tmp;
 }
 
@@ -226,8 +251,11 @@
 utils::to_string(long value)
 {
 	char tmp[64];
+	int ret;
 
-	sprintf(tmp, "%ld", value);
+	ret = snprintf(tmp, sizeof(tmp), "%ld", value);
+	if (ret < 0 || (size_t) ret >= sizeof(tmp))
+		throw String("Invalid long integer");
 	return tmp;
 }
 
@@ -235,8 +263,11 @@
 utils::to_string(long long value)
 {
 	char tmp[64];
+	int ret;
 
-	sprintf(tmp, "%lld", value);
+	ret = snprintf(tmp, sizeof(tmp), "%lld", value);
+	if (ret < 0 || (size_t) ret >= sizeof(tmp))
+		throw String("Invalid long long integer");
 	return tmp;
 }
 
--- conga/ricci/include/shred_allocator.h	2008/01/17 17:38:37	1.2.2.1
+++ conga/ricci/include/shred_allocator.h	2008/05/12 15:13:32	1.2.2.2
@@ -33,6 +33,12 @@
 #ifndef __CONGA_SHRED_ALLOCATOR_H
 #define __CONGA_SHRED_ALLOCATOR_H
 
+extern "C" {
+	#include <unistd.h>
+	#include <stdlib.h>
+	#include <string.h>
+}
+
 #include <new>
 
 template<typename _Tp>
--- conga/ricci/init.d/ricci	2008/01/17 17:38:37	1.8.2.4
+++ conga/ricci/init.d/ricci	2008/05/12 15:13:32	1.8.2.5
@@ -53,103 +53,159 @@
 {
 	rm -f "$SSL_PUBKEY" "$SSL_PRIVKEY"
 	echo -n "generating SSL certificates...  "
-	/usr/bin/openssl genrsa -out "$SSL_PRIVKEY" 2048 >&/dev/null
-	/usr/bin/openssl req -new -x509 -key "$SSL_PRIVKEY" -out "$SSL_PUBKEY" -days 1825 -config /var/lib/ricci/certs/cacert.config
-	/bin/chown $RUNASUSER:$RUNASUSER "$SSL_PRIVKEY" "$SSL_PUBKEY"
+	/usr/bin/openssl genrsa -out "$SSL_PRIVKEY" 2048 >&/dev/null &&
+	/usr/bin/openssl req -new -x509 -key "$SSL_PRIVKEY" -out "$SSL_PUBKEY" -days 1825 -config /var/lib/ricci/certs/cacert.config &&
+	/bin/chown $RUNASUSER:$RUNASUSER "$SSL_PRIVKEY" "$SSL_PUBKEY" &&
+	/bin/chmod 600 "$SSL_PRIVKEY" &&
 	/bin/chmod 644 "$SSL_PUBKEY"
-	/bin/chmod 600 "$SSL_PRIVKEY"
 	ret=$?
 	echo "done"
 	return $ret
 }
 
+check_ricci_lockfiles() {
+	ricci_status >& /dev/null
+	ret=$?
+	if [ "$ret" -eq 1 ] || [ "$ret" -eq 2 ]; then
+		# stale pid and/or lockfile
+		rm -f -- "$PIDFILE" "$LOCKFILE"
+	fi
+}
+
+ricci_status() {
+	if [ -f "$PIDFILE" ]; then
+		status -p "$PIDFILE" "$RICCID"
+		ricci_up=$?
+	else
+		status "$RICCID"
+		ricci_up=$?
+	fi
+	return $ricci_up
+}
+
+ricci_stop() {
+	ricci_status >& /dev/null
+	ret=$?
+
+	if [ "$ret" -ne 0 ]; then
+		# already stopped - no error
+		check_ricci_lockfiles
+		return 0
+	fi
+
+	killproc "$RICCID" SIGTERM
+
+	ricci_status >& /dev/null
+	ret=$?
+
+	max_wait=10
+	cur_wait=0
+	while [ "$ret" -eq 0 ] && [ $cur_wait -lt $max_wait ]; do
+		sleep 1
+		cur_wait=`expr $cur_wait + 1`
+        ricci_status >& /dev/null
+		ret=$?
+    done
+
+	ricci_status >& /dev/null
+	ret=$?
+
+	if [ "$ret" -ne 0 ]; then
+		rm -f -- "$PIDFILE" "$LOCKFILE"
+		return 0
+	fi
+
+	return 1
+}
 
 case $1 in
 	start)
 		service messagebus status >&/dev/null
-		if [ $? -ne 0 ]; then
+		if [ "$?" -ne 0 ]; then
 			service messagebus start
 			service messagebus status >&/dev/null
-			if [ $? -ne 0 ]; then
-				echo "not starting ricci..."
-				/usr/bin/logger -t $RICCID "startup failed"
+			if [ "$?" -ne 0 ]; then
+				/usr/bin/logger -t "$RICCID" -- "messagebus startup failed"
+				failure "not starting $RICCID"
 				exit 1
 			fi
 		fi
+
 		service oddjobd status >&/dev/null
-		if [ $? -ne 0 ]; then
+		if [ "$?" -ne 0 ]; then
 			service oddjobd start
 			service oddjobd status >&/dev/null
-			if [ $? -ne 0 ]; then
-				echo "not starting ricci..."
-				/usr/bin/logger -t $RICCID "startup failed"
+			if [ "$?" -ne 0 ]; then
+				/usr/bin/logger -t "$RICCID" -- "oddjob startup failed"
+				failure "not starting $RICCID"
 				exit 1
 			fi
 		fi
 
 		service saslauthd start >&/dev/null
+
 		ssl_certs_ok
-		if [ "1$?" != "10" ] ; then
+		if [ "$?" -ne 0 ] ; then
 			generate_ssl_certs
 		fi
 
-		NewUID=`grep "^$RUNASUSER:" /etc/passwd | sed -e 's/^[^:]*:[^:]*://' -e 's/:.*//'`
+		check_ricci_lockfiles
+		NewUID=`grep "^$RUNASUSER:" /etc/passwd | cut -d: -f3`
 		echo -n $"Starting $ID: "
-		daemon $RICCID -u $NewUID
-		rtrn=$?
+		daemon "$RICCID" -u "$NewUID"
 		echo
+		ret=$?
 
-		if [ $rtrn -eq 0 ]; then
-			touch "$LOCKFILE"
-			/usr/bin/logger -t $RICCID "startup succeeded"
+		if [ "$ret" -eq 0 ]; then
+			touch -- "$LOCKFILE"
+			/usr/bin/logger -t $RICCID -- "startup succeeded"
 		else
-			/usr/bin/logger -t $RICCID "startup failed"
+			/usr/bin/logger -t $RICCID -- "startup failed"
 		fi
 	;;
 
 	restart)
 		$0 stop
 		$0 start
-		rtrn=$?
+		ret=$?
 	;;
 
 	status)
-		status $RICCID
-		rtrn=$?
+		ricci_status
+		ret=$?
 	;;
 
 	stop)
 		echo -n "Shutting down $ID: "
-		killproc $RICCID SIGTERM
-		rtrn=$?
-		if [ $rtrn -eq 0 ]; then
-			sleep 8
-			rm -f $PIDFILE
-			rm -f $LOCKFILE
-			/usr/bin/logger -t $RICCID "shutdown succeeded"
-			rtrn=0
+		ricci_stop
+		ret=$?
+		if [ "$ret" -eq 0 ]; then
+			/usr/bin/logger -t "$RICCID" -- "shutdown succeeded"
 		else
-			/usr/bin/logger -t $RICCID "shutdown failed"
-			rtrn=1
+			/usr/bin/logger -t "$RICCID" -- "shutdown failed"
 		fi
 		echo
 	;;
 
 	condrestart)
-		if [ -f ${PIDFILE} ] ; then
+		if [ -f "$PIDFILE" ]; then
 			$0 restart
-			rtrn=$?
+			ret=$?
 		fi
 	;;
 
+	try-restart)
+		ret=3
+	;;
+
 	reload)
-		rtrn=3
+		ret=3
 	;;
 
 	*)
 		echo "Usage: $0 {start|stop|status|restart|condrestart|reload}"
-		rtrn=3
+		ret=3
 	;;
 esac
 
-exit $rtrn
+exit $ret
--- conga/ricci/modules/cluster/clumon/Makefile	2008/01/17 17:38:37	1.4.2.2
+++ conga/ricci/modules/cluster/clumon/Makefile	2008/05/12 15:13:33	1.4.2.3
@@ -11,6 +11,7 @@
 top_srcdir=../../..
 UNINSTALL=${top_srcdir}/scripts/uninstall.pl
 
+include ${top_srcdir}/make/version.in
 include ${top_srcdir}/make/defines.mk
 
 all:
--- conga/ricci/modules/cluster/clumon/init.d/modclusterd	2008/01/17 17:38:37	1.2.2.2
+++ conga/ricci/modules/cluster/clumon/init.d/modclusterd	2008/05/12 15:13:33	1.2.2.3
@@ -37,66 +37,122 @@
 # If we're not configured, then don't start anything.
 #
 [ "${NETWORKING}" = "yes" ] || exit 1
-#[ -f "$CFG_FILE" ] || exit 0
 
+modclusterd_status() {
+	if [ -f "$PIDFILE" ]; then
+		status -p "$PIDFILE" "$MODCLUSTERD"
+		ret=$?
+	else
+		status "$MODCLUSTERD"
+		ret=$?
+	fi
+	return $ret
+}
+
+check_modclusterd_lockfiles() {
+	modclusterd_status >& /dev/null
+	ret=$?
+	if [ "$ret" -eq 1 ] || [ "$ret" -eq 2 ]; then
+		# stale pid and/or lockfile
+		rm -f -- "$PIDFILE" "$LOCKFILE"
+	fi
+	return 0
+}
+
+modclusterd_stop() {
+	modclusterd_status >& /dev/null
+	ret=$?
+
+	if [ "$ret" -ne 0 ]; then
+		# already stopped - no error
+		check_modclusterd_lockfiles
+		return 0
+	fi
+
+	killproc "$MODCLUSTERD" SIGTERM
+
+	modclusterd_status >& /dev/null
+	ret=$?
+
+	max_wait=10
+	cur_wait=0
+	while [ "$ret" -eq 0 ] && [ $cur_wait -lt $max_wait ]; do
+		sleep 1
+		cur_wait=`expr $cur_wait + 1`
+		modclusterd_status >& /dev/null
+		ret=$?
+	done
+
+	modclusterd_status >& /dev/null
+	ret=$?
+
+	if [ "$ret" -ne 0 ]; then
+		rm -f -- "$PIDFILE" "$LOCKFILE"
+		return 0
+	fi
+
+	return 1
+}
 
 case $1 in
 	start)
 		echo -n $"Starting $ID: "
-		daemon $MODCLUSTERD
-		rtrn=$?
-		if [ $rtrn -eq 0 ]; then
-			touch $LOCKFILE
-			/usr/bin/logger -t $MODCLUSTERD "startup succeeded"
+		check_modclusterd_lockfiles
+		daemon "$MODCLUSTERD"
+		ret=$?
+		if [ "$ret" -eq 0 ]; then
+			touch -- "$LOCKFILE"
+			/usr/bin/logger -t "$MODCLUSTERD" -- "startup succeeded"
 		else
-			/usr/bin/logger -t $MODCLUSTERD "startup failed"
-			rtrn=1
+			/usr/bin/logger -t "$MODCLUSTERD" -- "startup failed"
+			ret=1
 		fi
 		echo
 	;;
 
 	restart)
 		$0 stop
-		sleep 8
 		$0 start
-		rtrn=$?
+		ret=$?
 	;;
 
 	status)
-		status $MODCLUSTERD
-		rtrn=$?
+		modclusterd_status
+		ret=$?
 	;;
 
 	stop)
 		echo -n "Shutting down $ID: "
-		killproc $MODCLUSTERD SIGTERM
-		rtrn=$?
-		if [ $rtrn -eq 0 ]; then
-			rm -f $PIDFILE
-			rm -f $LOCKFILE
-			/usr/bin/logger -t $MODCLUSTERD "shutdown succeeded"
+		modclusterd_stop
+		ret=$?
+		if [ "$ret" -eq 0 ]; then
+			/usr/bin/logger -t "$MODCLUSTERD" -- "shutdown succeeded"
 		else
-			/usr/bin/logger -t $MODCLUSTERD "shutdown failed"
-			rtrn=1
+			/usr/bin/logger -t "$MODCLUSTERD" -- "shutdown failed"
+			ret=1
 		fi
 		echo
 	;;
 
 	condrestart)
-		if [ -f ${PIDFILE} ] ; then
+		if [ -f "$PIDFILE" ]; then
 			$0 restart
-			rtrn=$?
+			ret=$?
 		fi
 	;;
 
+	try-restart)
+		ret=3
+	;;
+
 	reload)
-		rtrn=3
+		ret=3
 	;;
 
 	*)
 		echo $"Usage: $0 {start|stop|reload|restart|status}"
-		rtrn=3
+		ret=3
 	;;
 esac
 
-exit $rtrn
+exit $ret
--- conga/ricci/modules/cluster/clumon/src/common/Cluster.cpp	2008/01/17 17:38:38	1.6.2.2
+++ conga/ricci/modules/cluster/clumon/src/common/Cluster.cpp	2008/05/12 15:13:33	1.6.2.3
@@ -25,7 +25,8 @@
 #include <stdio.h>
 
 extern "C" {
-#	include <libcman.h>
+	#include <limits.h>
+	#include <libcman.h>
 }
 
 using namespace std;
--- conga/ricci/modules/storage/ContentFS.cpp	2008/01/17 17:38:39	1.5.2.1
+++ conga/ricci/modules/storage/ContentFS.cpp	2008/05/12 15:13:33	1.5.2.2
@@ -28,6 +28,7 @@
 #include "BDFactory.h"
 #include "defines.h"
 #include "utils.h"
+#include <algorithm>
 
 
 using namespace std;
--- conga/ricci/modules/storage/ExtendedFS.cpp	2008/01/17 17:38:39	1.7.2.2
+++ conga/ricci/modules/storage/ExtendedFS.cpp	2008/05/12 15:13:33	1.7.2.3
@@ -27,8 +27,9 @@
 #include "UMountError.h"
 #include "FileMagic.h"
 
-
+#include <algorithm>
 #include <iostream>
+
 using namespace std;
 
 
--- conga/ricci/modules/storage/LV.cpp	2008/01/17 17:38:39	1.6.2.4
+++ conga/ricci/modules/storage/LV.cpp	2008/05/12 15:13:33	1.6.2.5
@@ -124,7 +124,7 @@
     long long min  = utils::to_long(xml.get_attr("min"));
     long long max  = utils::to_long(xml.get_attr("max"));
     long long step = utils::to_long(xml.get_attr("step"));
-    long long min_size = (long long ) (size * (usage / 100.0));
+    long long min_size = (long long) (size * usage) / 100;
     if (min_size > min)
       min = min_size;
     else if (min_size > max)
--- conga/ricci/modules/storage/Mapper.cpp	2008/01/17 17:38:39	1.3.2.1
+++ conga/ricci/modules/storage/Mapper.cpp	2008/05/12 15:13:33	1.3.2.2
@@ -26,6 +26,7 @@
 #include "BDFactory.h"
 #include "MapperFactory.h"
 #include "MidAir.h"
+#include <algorithm>
 
 
 using namespace std;
--- conga/ricci/modules/storage/MountHandler.cpp	2008/01/17 17:38:39	1.5.2.2
+++ conga/ricci/modules/storage/MountHandler.cpp	2008/05/12 15:13:33	1.5.2.3
@@ -37,8 +37,9 @@
 #include <sys/file.h>
 #include <errno.h>
 
-
+#include <algorithm>
 #include <iostream>
+
 using namespace std;
 
 
--- conga/ricci/modules/storage/PTSource.cpp	2008/01/17 17:38:39	1.2.2.1
+++ conga/ricci/modules/storage/PTSource.cpp	2008/05/12 15:13:33	1.2.2.2
@@ -25,6 +25,7 @@
 #include "PartitionTable.h"
 #include "parted_wrapper.h"
 
+#include <algorithm>
 
 using namespace std;
 
--- conga/ricci/modules/storage/PV.cpp	2008/01/17 17:38:39	1.4.2.3
+++ conga/ricci/modules/storage/PV.cpp	2008/05/12 15:13:33	1.4.2.4
@@ -26,6 +26,7 @@
 #include "MapperFactory.h"
 #include "utils.h"
 #include "LVMClusterLockingError.h"
+#include <algorithm>
 
 
 using namespace std;
--- conga/ricci/modules/storage/Partition.cpp	2008/01/17 17:38:39	1.3.2.1
+++ conga/ricci/modules/storage/Partition.cpp	2008/05/12 15:13:33	1.3.2.2
@@ -30,6 +30,7 @@
 #include "ContentExtendedPartition.h"
 #include "PV.h"
 
+#include <algorithm>
 
 using namespace std;
 
--- conga/ricci/modules/storage/PartitionTable.cpp	2008/01/17 17:38:39	1.5.2.1
+++ conga/ricci/modules/storage/PartitionTable.cpp	2008/05/12 15:13:33	1.5.2.2
@@ -28,7 +28,7 @@
 #include "MapperFactory.h"
 #include "utils.h"
 
-
+#include <algorithm>
 #include <iostream>
 
 
--- conga/ricci/modules/storage/parted_wrapper.cpp	2008/01/17 17:38:39	1.8.2.4
+++ conga/ricci/modules/storage/parted_wrapper.cpp	2008/05/12 15:13:33	1.8.2.5
@@ -24,8 +24,9 @@
 #include "parted_wrapper.h"
 #include "utils.h"
 
-
+#include <algorithm>
 #include <iostream>
+
 using namespace std;
 
 
@@ -667,11 +668,13 @@
   String s = utils::to_lower(utils::strip(size_str));
   long long multiplier;
   // parted defines 1KB as 1000 bytes.
-  if (s.find("b") == s.npos)
+  if (s.find("b") == s.npos) {
     multiplier = 1000 * 1000;  // by old parted behavior, size is in MB
-  else {
+    return (long long) utils::to_long(s) * multiplier;
+  } else {
     if (s.size() < 3)
       throw String("parted size has an invalid value: ") + s;
+	/* This path should never be hit on RHEL5 and later. */
     multiplier = 1;
     if (s[s.size()-2] == 'k')
       multiplier = 1000;
@@ -681,7 +684,6 @@
       multiplier = 1000 * 1000 * 1000;
     else if (s[s.size()-2] == 't')
       multiplier = (long long) 1000 * 1000 * 1000 * 1000;
+    return (long long) utils::to_float(s) * multiplier;
   }
-
-  return (long long) utils::to_float(s) * multiplier;
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]