[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-ha-dev
Subject:    [Linux-ha-dev] Patch for anything RA
From:       Yuusuke IIDA <iidayuus () intellilink ! co ! jp>
Date:       2010-06-30 11:00:18
Message-ID: 4C2B23C2.1060703 () intellilink ! co ! jp
[Download RAW message or body]

Hi,

For anything RA, I revised it with some function addition.

The list of the change is as follows.
 * I added the option which could choose whether you used a login shell to want
to let a command inherit an environment variable of Resource Agent.
 * I revised it to handle an escape character in character string set by
cmdline_options such as follows adequately.
  --- for example: ---
    primitive AAAAA ocf:heartbeat:anything \
      params \
        binfile="XXXXX" \
        cmdline_options="-V -c \"openssl des-ede3 -d -base64 -k 'yy y'\" -i" \
  --- ---
 * Strip off the trailing clone marker.
  - quotations from the following.
http://hg.clusterlabs.org/pacemaker/stable-1.0/file/94515b3503b5/extra/resources/Dummy#l143

Best Regards,
Yuusuke IIDA

-- 
----------------------------------------
METRO SYSTEMS CO., LTD

YuusukeIida
Mail: iidayuus@intellilink.co.jp
----------------------------------------

["anything.patch" (text/x-patch)]

--- anything	2010-06-30 19:53:06.000000000 +0900
+++ ../extra/anything	2010-06-30 19:55:42.000000000 +0900
@@ -74,14 +74,14 @@
 		if [ -n "$logfile" -a -n "$errlogfile" ]
 		then
 			# We have logfile and errlogfile, so redirect STDOUT und STDERR to different \
                files
-			cmd="su - $user -c \"nohup $binfile $cmdline_options >> $logfile 2>> $errlogfile \
& \"'echo \$!' " +			cmd="su $use_login_shell $user -c \"nohup $binfile \
$cmdline_options >> $logfile 2>> $errlogfile & \"'echo \$!' "  else if [ -n \
"$logfile" ]  then
 				# We only have logfile so redirect STDOUT and STDERR to the same file
-				cmd="su - $user -c \"nohup $binfile $cmdline_options >> $logfile 2>&1 & \"'echo \
\$!' " +				cmd="su $use_login_shell $user -c \"nohup $binfile $cmdline_options >> \
$logfile 2>&1 & \"'echo \$!' "  else
 				# We have neither logfile nor errlogfile, so we're not going to redirect \
                anything
-				cmd="su - $user -c \"nohup $binfile $cmdline_options & \"'echo \$!'"
+				cmd="su $use_login_shell $user -c \"nohup $binfile $cmdline_options & \"'echo \
\$!'"  fi
 		fi
 		ocf_log debug "Starting $process: $cmd"
@@ -165,15 +165,24 @@
 	fi
 }
 
-# FIXME: Attributes special meaning to the resource id
-process="$OCF_RESOURCE_INSTANCE"
+if [ ${OCF_RESKEY_CRM_meta_globally_unique} = "false" ]; then
+	# Strip off the trailing clone marker
+	process=`echo ${OCF_RESOURCE_INSTANCE} | sed s/:[0-9][0-9]//`
+else
+	process="$OCF_RESOURCE_INSTANCE"
+fi
 binfile="$OCF_RESKEY_binfile"
-cmdline_options="$OCF_RESKEY_cmdline_options"
+cmdline_options=`echo "$OCF_RESKEY_cmdline_options" | sed 's/\\\/\\\\\\\/g' | sed \
's/\"/\\\"/g'`  pidfile="$OCF_RESKEY_pidfile"
 [ -z "$pidfile" ] && pidfile=${HA_VARRUN}/anything_${process}.pid
 logfile="$OCF_RESKEY_logfile"
 errlogfile="$OCF_RESKEY_errlogfile"
 user="$OCF_RESKEY_user"
+if [ ocf_is_true $OCF_RESKEY_use_login_shell ]; then
+	use_login_shell="-"
+else
+	use_login_shell=""
+fi
 [ -z "$user" ] && user=root
 
 anything_validate() {
@@ -268,6 +277,13 @@
 <shortdesc lang="en">Seconds to wait after having sent SIGTERM before sending \
SIGKILL in stop operation</shortdesc>  <content type="string" default=""/>
 </parameter>
+<parameter name="use_login_shell">
+<longdesc lang="en">
+It is setting to decide whether you use a login shell in a user carrying out a \
command. +</longdesc>
+<shortdesc lang="en">Setting whether or not I use a login shell</shortdesc>
+<content type="string" default="true"/>
+</parameter>
 </parameters>
 <actions>
 <action name="start"   timeout="20s" />



_______________________________________________________
Linux-HA-Dev: Linux-HA-Dev@lists.linux-ha.org
http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
Home Page: http://linux-ha.org/


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic