On Tue, Jun 22, 2010 at 01:16:35PM +0200, Dejan Muhamedagic wrote:
> Hi Serge,
> 
> On Mon, Jun 21, 2010 at 10:19:13AM -0600, Serge Dubrouski wrote:
> > Hello -
> > 
> > Some users reported a need for this patch to cover the situation with
> > non-default unix socket directory in PostgreSQL configuration.
> 
> Why not set OCF_RESKEY_socketdir_default=/var/run/postgresql (or
> whatever is its standard location)? I don't see how things could
> go wrong with that.
> 
> BTW, how comes that nobody complained about this before? I
> understand that cleaning up all directories under /var/run is in
> LSB.
> 
> Cheers,
> 
> Dejan
> 
> > -- 
> > Serge Dubrouski.
> 
> > --- a/heartbeat/pgsql       2010-06-21 09:41:06.000000000 -0600
> > +++ b/heartbeat/pgsql       2010-06-21 10:03:04.000000000 -0600
> > @@ -27,6 +27,7 @@
> >  OCF_RESKEY_start_opt_default=""
> >  OCF_RESKEY_pgdb_default=template1
> >  OCF_RESKEY_logfile_default=/dev/null
> > +OCF_RESKEY_socketdir_default=""

could it be parsed from the postgres config file instead?

> >  OCF_RESKEY_stop_escalate_default=30
> >  
> >  : ${OCF_RESKEY_pgctl=${OCF_RESKEY_pgctl_default}}
> > @@ -39,6 +40,7 @@
> >  : ${OCF_RESKEY_start_opt=${OCF_RESKEY_start_opt_default}}
> >  : ${OCF_RESKEY_pgdb=${OCF_RESKEY_pgdb_default}}
> >  : ${OCF_RESKEY_logfile=${OCF_RESKEY_logfile_default}}
> > +: ${OCF_RESKEY_socketdir=${OCF_RESKEY_socketdir_default}}
> >  : ${OCF_RESKEY_stop_escalate=${OCF_RESKEY_stop_escalate_default}}
> >  
> >  usage() {
> > @@ -166,6 +168,14 @@
> >  <content type="string" default="${OCF_RESKEY_logfile_default}" />
> >  </parameter>
> >  
> > +<parameter name="socketdir" unique="0" required="0">
> > +<longdesc lang="en">
> > +Unix socket directory for PostgeSQL
> > +</longdesc>
> > +<shortdesc lang="en">socketdir</shortdesc>
> > +<content type="string" default="${OCF_RESKEY_socketdir_default}" />
> > +</parameter>
> > +
> >  <parameter name="stop_escalate" unique="0" required="0">
> >  <longdesc lang="en">
> >  Number of shutdown retries (using -m fast) before resorting to -m immediate
> > @@ -238,6 +248,11 @@
> >          ocf_log err "PostgreSQL can't write to the log file: 
> > $OCF_RESKEY_logfile"
> >     return $OCF_ERR_GENERIC
> >      fi
> > +    # Check if we need to create a socket directory
> > +    if [ -n "$OCF_RESKEY_socketdir" ]
> > +    then
> > +        check_socket_dir $OCF_RESKEY_socketdir
> > +    fi
> >  
> >      # Set options passed to pg_ctl
> >      pgctl_options="$OCF_RESKEY_ctl_opt -D $OCF_RESKEY_pgdata -l 
> > $OCF_RESKEY_logfile"
> > @@ -419,6 +434,17 @@
> >      return 0
> >  }
> >  
> > +# Check socket directory
> > +check_socket_dir() {
> > +    if [ ! -d "$1" ]
> > +    then
> > +        mkdir $1

please mkdir "$1"
and if mkdir  fails, fail the script.

> > +    fi
> > +    
> > +    chmod 2775 $1

"$1", add error check

> > +    chown $OCF_RESKEY_pgdba:$(getent passwd $OCF_RESKEY_pgdba | cut -d ":" 
> > -f 4) $1

"$1", add error check
btw, I'd first chown, then chmod.

-- 
: Lars Ellenberg
: LINBIT | Your Way to High Availability
: DRBD/HA support and consulting http://www.linbit.com

DRBD® and LINBIT® are registered trademarks of LINBIT, Austria.
_______________________________________________________
Linux-HA-Dev: [email protected]
http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
Home Page: http://linux-ha.org/

Reply via email to