[csw-devel] SF.net SVN: gar:[3061] csw/mgar/pkg/nginx/trunk/files

aigoshin at users.sourceforge.net aigoshin at users.sourceforge.net
Wed Feb 11 20:17:35 CET 2009


Revision: 3061
          http://gar.svn.sourceforge.net/gar/?rev=3061&view=rev
Author:   aigoshin
Date:     2009-02-11 19:17:34 +0000 (Wed, 11 Feb 2009)

Log Message:
-----------
nginx: milestone 2.4

Modified Paths:
--------------
    csw/mgar/pkg/nginx/trunk/files/CSWnginx.postinstall
    csw/mgar/pkg/nginx/trunk/files/svc-cswnginx

Modified: csw/mgar/pkg/nginx/trunk/files/CSWnginx.postinstall
===================================================================
--- csw/mgar/pkg/nginx/trunk/files/CSWnginx.postinstall	2009-02-11 18:02:39 UTC (rev 3060)
+++ csw/mgar/pkg/nginx/trunk/files/CSWnginx.postinstall	2009-02-11 19:17:34 UTC (rev 3061)
@@ -4,42 +4,50 @@
 #################################################################################
 
 if [ $UPGRADE_NGINX -eq 1 ]; then
+	MSG=""
 	UPGRADE_NGINX_ERR=0
-	if [ -x "$BASEDIR/opt/csw/lib/svc/method/svc-cswnginx" ]; then
-		MSG=`$BASEDIR/opt/csw/lib/svc/method/svc-cswnginx upgrade`
-		if [ $? -eq 0 ]; then
-			echo " "
-			echo "nginx was upgraded"
-		else
+	if [ "$SMF" = "yes" ]; then
+		CSWNGINX="$BASEDIR/opt/csw/lib/svc/method/svc-cswnginx"
+	else
+		CSWNGINX="$BASEDIR/etc/init.d/cswnginx"
+	fi
+	if [ -x $CSWNGINX ]; then
+		MSG=`$CSWNGINX upgrade`
+		if [ $? -ne 0 ]; then
 			UPGRADE_NGINX_ERR=1
 		fi
-	else
-		if [ -x $BASEDIR/etc/init.d/cswnginx ]; then
-			MSG=`$BASEDIR/etc/init.d/cswnginx upgrade`
-			if [ $? -eq 0 ]; then
-				echo " "
-				echo "nginx was upgraded"
-			else
-				UPGRADE_NGINX_ERR=1
-			fi
-		else
-			echo " "
-			echo "nginx was NOT upgraded"
-		fi
 	fi
 
-	if [ $UPGRADE_NGINX_ERR -eq 1 ]; then
+	if [ $UPGRADE_NGINX_ERR -eq 0 ]; then
 		echo " "
+		echo "nginx was upgraded"
+		echo " "
+		echo "If this new version of nginx works properly please run"
+		echo "'$CSWNGINX upgrade-commit'"
+		echo "to finalize the online upgrade process."
+		echo " "
+		echo "If there are problems with new version you can rollback"
+		echo "to the old version (which is still running) by command"
+		echo "'$CSWNGINX upgrade-rollback'"
+		echo "and subsequent reinstallation of the old package."
+		echo " "
+		echo "More details can be found in the nginx documentation:"
+		echo "http://sysoev.ru/nginx/docs/control.html"
+	else
+		echo " "
 		echo "nginx was NOT upgraded"
 		echo "$MSG"
 	fi
 else
 	echo " "
-	echo "This package may use online upgrade feature of nginx which"
-	echo "allows not to interrupt the processing of clients requests"
-	echo "during the nginx version upgrade."
-	echo "To use it you should install the package over the existing"
-	echo "version (without removing)."
+	echo "This package may use online upgrade feature of nginx which allows"
+	echo "not to interrupt the processing of clients requests during the nginx"
+	echo "version upgrade. To use it you should install the package over the"
+	echo "existing version (without preliminary removing)."
+	echo " "
+	echo "NOTE: if you wish to take advantage of nginx online upgrade feature"
+	echo "you should NOT use CSW automatic package update since it sequently"
+	echo "runs pkgrm/pkgadd."
 fi
 
 #################################################################################

Modified: csw/mgar/pkg/nginx/trunk/files/svc-cswnginx
===================================================================
--- csw/mgar/pkg/nginx/trunk/files/svc-cswnginx	2009-02-11 18:02:39 UTC (rev 3060)
+++ csw/mgar/pkg/nginx/trunk/files/svc-cswnginx	2009-02-11 19:17:34 UTC (rev 3061)
@@ -9,8 +9,8 @@
 PIDFILE=${VARRUNX}/nginx.pid
 PIDFILO=${VARRUNX}/nginx.pid.oldbin
 
-[ ! -f ${NGINX} ]   && exit $NGINX
-[ ! -f ${CFGFILE} ] && exit $CFGFILE
+#[ ! -f ${NGINX} ]   && exit 255
+#[ ! -f ${CFGFILE} ] && exit 254
 
 
 start() {
@@ -80,8 +80,10 @@
 	COMM=`/bin/ps -o comm= -p $FPID`
 	if [ "$NGINX" = "$COMM" ]; then
 		echo "running"
+		return 0
 	else
 		echo "running, but it is not a CSW package"
+		return 1
 	fi
 }
 
@@ -89,10 +91,47 @@
 {
 	killpidf -USR2
 	RETVAL=$?
+	[ $RETVAL -ne 0 ] && return $RETVAL
+	OLDBINPID=0
+	for i in 1 2 3 4 5; do
+		if [ -f $PIDFILO ]; then
+			OLDBINPID=1
+			break
+		else
+			sleep 1
+		fi
+	done
+	if [ $OLDBINPID -eq 1 ]; then
+		state >/dev/null
+		RETVAL=$?
+		if [ $RETVAL -eq 0 ]; then
+			killpidf -WINCH $PIDFILO
+			RETVAL=$?
+		fi
+		return $RETVAL
+	fi
+	return 1
+}
+
+upgrade_commit()
+{
+	killpidf -QUIT $PIDFILO
+	RETVAL=$?
 	return $RETVAL
 }
 
+upgrade_rollback()
+{
+	killpidf -HUP $PIDFILO
+	RETVAL=$?
+	if [ $RETVAL -eq 0 ]; then
+		killpidf -QUIT $PIDFILE
+		RETVAL=$?
+	fi
+	return $RETVAL
+}
 
+
 case "$1" in
 start)
 	[ ! -d $VARRUNX ] && /bin/mkdir -p $VARRUNX
@@ -126,8 +165,16 @@
 	RETVAL=$?
 	[ $RETVAL -eq 0 ] && upgrade ||:
 	;;
+upgrade-commit)
+	upgrade_commit
+	RETVAL=$?
+	;;
+upgrade-rollback)
+	upgrade_rollback
+	RETVAL=$?
+	;;
 *)
-	echo "Usage: $0 {start|stop|refresh|reload|restart|rotate|state|upgrade}"
+	echo "Usage:" `basename $0` "{start|stop|refresh|reload|restart|rotate|state|upgrade|upgrade-commit|upgrade-rollback}"
 	exit 1
 	;;
 esac


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the devel mailing list