Hi,

On Fri, May 21, 2010 at 03:38:53PM +0200, Thomas Bätzler wrote:
> Hello,
> 
> Am 19.04.2010 17:28, schrieb Florian Haas:
> >After last week's resource-agents 1.0.3 release, I have merged the
> >exportfs resource agent, which has lived in its separate branch so far,
> >into the default branch.
> 
> Thank you all for your work on this, it seems to be exactly what I
> have been looking for for quite some time now.
> 
> I've been testing this on a Debian Lenny-based Pacemaker cluster
> with mixed success so far.
> 
> The first issue I ran into is certainly partly home-made when I set
> up the exportfs RA with a permissive clientspec, i.e.
> 
>   primitive export_r0 ocf:heartbeat:exportfs \
>         params clientspec="*" \
>         options="rw,sync,no_subtree_check,no_root_squash" \
>         directory="/var/exports/r0" fsid="1" \
>         op start interval="0" timeout="60" \
>         op stop interval="0" timeout="30" \
>         op monitor interval="10" timeout="20" \
> 
> This causes an incorrect "Export not reported by showmount -e" in
> exportfs_start().
> 
> I fixed this for myself by shortening
> 
>   grep -E "^${OCF_RESKEY_directory}[[:space:]]*${OCF_RESKEY_clientspec}$"
> 
> to
> 
>   grep -E "^${OCF_RESKEY_directory}[[:space:]]"
> 
> The only problem I see with this is that it could cause problems if
> I wanted to have multiple exportsfs resources for the same
> filesystem. On the other hand, the existing pattern would fail in
> that case, too, since showmount seems to list multiple clients specs
> separated by comma in a single line.

True. Perhaps something like this could work:

for client in $(grep "^${OCF_RESKEY_directory}[[:space:]]" | \
        awk '{print $2}' | sed 's/,/ /g')
do
        [ "$client" = "$OCF_RESKEY_clientspec" ] &&
                return 0
done
return 1

Can you test this?

> The second problem I ran into seems to have been introduced by accident
> in changeset 1768 (http://hg.linux-ha.org/agents/rev/64bc3f067df0),
> where at lines 20-21 /var/lib/nfs/etab is changed to $RMTAB, which
> refers to /var/lib/nfs/rmtab.

Oops. There are so many footabs there.

> I'm attaching two patches for your kind consideration.

The etab related part accepted. Many thanks!

Cheers,

Dejan

> Cheers,
> Thomas

> diff --git a/heartbeat/exportfs b/heartbeat/exportfs
> --- a/heartbeat/exportfs
> +++ b/heartbeat/exportfs
> @@ -108,7 +108,7 @@
>  
>  exportfs_monitor ()
>  {
> -       grep -qs "${OCF_RESKEY_directory}" $RMTAB
> +       grep -qs "${OCF_RESKEY_directory}" $ETAB
>  
>  #Adapt grep status code to OCF return code
>         case $? in
> @@ -229,6 +229,7 @@
>         exit $OCF_ERR_ARGS
>  fi
>  
> +ETAB=/var/lib/nfs/etab
>  RMTAB=/var/lib/nfs/rmtab
>  PIDF=${OCF_RESKEY_directory}/.exportfs_backup.pid
>  FS_RMTAB=${OCF_RESKEY_directory}/.rmtab

> diff --git a/heartbeat/exportfs b/heartbeat/exportfs
> --- a/heartbeat/exportfs
> +++ b/heartbeat/exportfs
> @@ -139,7 +139,7 @@
>  
>         RETRIES=0
>         while [ 1 ]; do
> -               showmount -e | grep -E 
> "^${OCF_RESKEY_directory}[[:space:]]*${OCF_RESKEY_clientspec}$"
> +               showmount -e | grep -E "^${OCF_RESKEY_directory}[[:space:]]"
>                 rc=$?
>                 if [ $rc -eq 0 ]; then
>                         break

> _______________________________________________________
> Linux-HA-Dev: [email protected]
> http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
> Home Page: http://linux-ha.org/

_______________________________________________________
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