Mailing List Archive

[Patch] Patch for IPsrcaddr.(2/2)
Hi All,

We made a patch to IPsrcaddr.

This patch revises the next point.

* Made modifications to carry out validate_all processing.
* Undefined and deleted the unused IPROUTE variable
* The find_interface_generic processing revised it to search it by ip command.


However, we cannot test environment except Linux.
Therefore, we limited a condition to carry out processing to environment of Linux.

(snip)
@@ -458,6 +440,10 @@

ipaddress="$OCF_RESKEY_ipaddress"

+if [ "x$SYSTYPE" = "xLinux" ]; then
+ srca_validate_all
+fi
+
(snip)


Please please confirm my correction.
And please commit a correction.



Best Regards,
Hideo Yamauchi
Re: [Patch] Patch for IPsrcaddr.(2/2) [ In reply to ]
Hi again Hideo-san,

Again, apologies for such a late response.

On Tue, Nov 29, 2011 at 02:49:24PM +0900, renayama19661014@ybb.ne.jp wrote:
> Hi All,
>
> We made a patch to IPsrcaddr.
>
> This patch revises the next point.
>
> * Made modifications to carry out validate_all processing.

I'm not necessarily against it, but I wonder why. This would make
monitor validate the environment every time. Is that really
necessary? What was your motivation for this change?

> * Undefined and deleted the unused IPROUTE variable

OK.

> * The find_interface_generic processing revised it to search it by ip command.

Good.

> However, we cannot test environment except Linux.
> Therefore, we limited a condition to carry out processing to environment of Linux.

That's fine too.

Cheers,

Dejan

> (snip)
> @@ -458,6 +440,10 @@
>
> ipaddress="$OCF_RESKEY_ipaddress"
>
> +if [ "x$SYSTYPE" = "xLinux" ]; then
> + srca_validate_all
> +fi
> +
> (snip)
>
>
> Please please confirm my correction.
> And please commit a correction.
>
>
>
> Best Regards,
> Hideo Yamauchi

> diff -r e4d9d86a9577 IPsrcaddr
> --- a/IPsrcaddr Mon Nov 28 20:02:26 2011 +0900
> +++ b/IPsrcaddr Mon Nov 28 20:03:07 2011 +0900
> @@ -307,35 +307,14 @@
> #
> find_interface_generic() {
>
> - $IFCONFIG $IFCONFIG_A_OPT |
> - while read ifname linkstuff
> - do
> - : Read gave us ifname = $ifname
> -
> - read inet addr junk
> - : Read gave us inet = $inet addr = $addr
> -
> - while
> - read line && [ "X$line" != "X" ]
> - do
> - : Nothing
> - done
> -
> - case "$SYSTYPE" in
> - *BSD)
> - $IFCONFIG | grep "$BASEIP" -B`$IFCONFIG | grep -c inet` | grep "UP," | cut -d ":" -f 1
> - return 0;;
> - *)
> - : "comparing $BASEIP to $addr (from ifconfig)"
> - case $addr in
> - addr:$BASEIP) echo $ifname; return $OCF_SUCCESS;;
> - $BASEIP) echo $ifname; return $OCF_SUCCESS;;
> - esac
> - continue;;
> - esac
> -
> - done
> - return $OCF_ERR_GENERIC
> + local iface=`$IP2UTIL -o -f inet addr show | grep "\ $BASEIP" \
> + | cut -d ' ' -f2 | grep -v '^ipsec[0-9][0-9]*$'`
> + if [ -z "$iface" ]; then
> + return $OCF_ERR_GENERIC
> + else
> + echo $iface
> + return $OCF_SUCCESS
> + fi
> }
>
>
> @@ -409,7 +388,6 @@
> srca_validate_all() {
>
> check_binary $AWK
> - check_binary $IPROUTE
> check_binary $IFCONFIG
>
> # The IP address should be in good shape
> @@ -420,6 +398,10 @@
> exit $OCF_ERR_CONFIGURED
> fi
>
> + if ocf_is_probe; then
> + return $OCF_SUCCESS
> + fi
> +
> # We should serve this IP address of course
> if ip_status "$ipaddress"; then
> :
> @@ -458,6 +440,10 @@
>
> ipaddress="$OCF_RESKEY_ipaddress"
>
> +if [ "x$SYSTYPE" = "xLinux" ]; then
> + srca_validate_all
> +fi
> +
> findif_out=`$FINDIF -C`
> rc=$?
> [ $rc -ne 0 ] && {

> _______________________________________________________
> 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/

_______________________________________________________
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/
Re: [Patch] Patch for IPsrcaddr.(2/2) [ In reply to ]
Hi Dejan,

Thank you for comments.

> On Tue, Nov 29, 2011 at 02:49:24PM +0900, renayama19661014@ybb.ne.jp wrote:
> > Hi All,
> >
> > We made a patch to IPsrcaddr.
> >
> > This patch revises the next point.
> >
> >  * Made modifications to carry out validate_all processing.
>
> I'm not necessarily against it, but I wonder why. This would make
> monitor validate the environment every time. Is that really
> necessary? What was your motivation for this change?

I think that the handling of validate-all should be carried out in the same way as other RA.
Therefore we suggested this correction.
* All RA is not same, but give readability and conservatism if it is similar constitution.
>
> >  * Undefined and deleted the unused IPROUTE variable
>
> OK.
>
> >  * The find_interface_generic processing revised it to search it by ip command.
>
> Good.
>
> > However, we cannot test environment except Linux.
> > Therefore, we limited a condition to carry out processing to environment of Linux.
>
> That's fine too.

Many Thanks!
Hideo Yamauchi.


>
> Cheers,
>
> Dejan
>
> > (snip)
> > @@ -458,6 +440,10 @@
> > 
> >  ipaddress="$OCF_RESKEY_ipaddress"
> > 
> > +if [ "x$SYSTYPE" = "xLinux" ]; then
> > +    srca_validate_all
> > +fi
> > +
> > (snip)
> >
> >
> > Please please confirm my correction.
> > And please commit a correction.
> >
> >
> >
> > Best Regards,
> > Hideo Yamauchi
>
> > diff -r e4d9d86a9577 IPsrcaddr
> > --- a/IPsrcaddr    Mon Nov 28 20:02:26 2011 +0900
> > +++ b/IPsrcaddr    Mon Nov 28 20:03:07 2011 +0900
> > @@ -307,35 +307,14 @@
> >  #
> >  find_interface_generic() {
> > 
> > -  $IFCONFIG $IFCONFIG_A_OPT  |
> > -  while read ifname linkstuff
> > -  do
> > -    : Read gave us ifname = $ifname
> > -
> > -    read inet addr junk
> > -    : Read gave us inet = $inet addr = $addr
> > -
> > -    while
> > -      read line && [ "X$line" != "X" ]
> > -    do
> > -      : Nothing
> > -    done
> > -
> > -    case "$SYSTYPE" in
> > -      *BSD)
> > -        $IFCONFIG | grep "$BASEIP" -B`$IFCONFIG | grep -c inet` | grep "UP," | cut -d ":" -f 1
> > -        return 0;;
> > -      *)
> > -            : "comparing $BASEIP to $addr (from ifconfig)"
> > -        case $addr in
> > -          addr:$BASEIP)    echo $ifname; return $OCF_SUCCESS;;
> > -          $BASEIP)    echo $ifname; return $OCF_SUCCESS;;
> > -            esac
> > -        continue;;
> > -    esac
> > -
> > -  done
> > -  return $OCF_ERR_GENERIC
> > +    local iface=`$IP2UTIL -o -f inet addr show | grep "\ $BASEIP" \
> > +            | cut -d ' ' -f2 | grep -v '^ipsec[0-9][0-9]*$'`
> > +        if [ -z "$iface" ]; then
> > +            return $OCF_ERR_GENERIC
> > +        else
> > +            echo $iface
> > +            return $OCF_SUCCESS
> > +        fi
> >  }
> > 
> > 
> > @@ -409,7 +388,6 @@
> >  srca_validate_all() {
> > 
> >      check_binary $AWK
> > -    check_binary $IPROUTE
> >      check_binary $IFCONFIG
> > 
> >  #    The IP address should be in good shape
> > @@ -420,6 +398,10 @@
> >        exit $OCF_ERR_CONFIGURED
> >      fi
> > 
> > +    if ocf_is_probe; then
> > +      return $OCF_SUCCESS
> > +    fi
> > +
> >  #    We should serve this IP address of course
> >      if ip_status "$ipaddress"; then
> >        :
> > @@ -458,6 +440,10 @@
> > 
> >  ipaddress="$OCF_RESKEY_ipaddress"
> > 
> > +if [ "x$SYSTYPE" = "xLinux" ]; then
> > +    srca_validate_all
> > +fi
> > +
> >  findif_out=`$FINDIF -C`
> >  rc=$?
> >  [ $rc -ne 0 ] && {
>
> > _______________________________________________________
> > 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/
>
>
_______________________________________________________
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/
Re: [Patch] Patch for IPsrcaddr.(2/2) [ In reply to ]
Hi Dejan,

How about the patch of this place?

Best Regards,
Hideo Yamauchi.


--- On Mon, 2012/1/16, renayama19661014@ybb.ne.jp <renayama19661014@ybb.ne.jp> wrote:

> Hi Dejan,
>
> Thank you for comments.
>
> > On Tue, Nov 29, 2011 at 02:49:24PM +0900, renayama19661014@ybb.ne.jp wrote:
> > > Hi All,
> > >
> > > We made a patch to IPsrcaddr.
> > >
> > > This patch revises the next point.
> > >
> > >  * Made modifications to carry out validate_all processing.
> >
> > I'm not necessarily against it, but I wonder why. This would make
> > monitor validate the environment every time. Is that really
> > necessary? What was your motivation for this change?
>
> I think that the handling of validate-all should be carried out in the same way as other RA.
> Therefore we suggested this correction.
> * All RA is not same, but give readability and conservatism if it is similar constitution.
> >
> > >  * Undefined and deleted the unused IPROUTE variable
> >
> > OK.
> >
> > >  * The find_interface_generic processing revised it to search it by ip command.
> >
> > Good.
> >
> > > However, we cannot test environment except Linux.
> > > Therefore, we limited a condition to carry out processing to environment of Linux.
> >
> > That's fine too.
>
> Many Thanks!
> Hideo Yamauchi.
>
>
> >
> > Cheers,
> >
> > Dejan
> >
> > > (snip)
> > > @@ -458,6 +440,10 @@
> > > 
> > >  ipaddress="$OCF_RESKEY_ipaddress"
> > > 
> > > +if [ "x$SYSTYPE" = "xLinux" ]; then
> > > +    srca_validate_all
> > > +fi
> > > +
> > > (snip)
> > >
> > >
> > > Please please confirm my correction.
> > > And please commit a correction.
> > >
> > >
> > >
> > > Best Regards,
> > > Hideo Yamauchi
> >
> > > diff -r e4d9d86a9577 IPsrcaddr
> > > --- a/IPsrcaddr    Mon Nov 28 20:02:26 2011 +0900
> > > +++ b/IPsrcaddr    Mon Nov 28 20:03:07 2011 +0900
> > > @@ -307,35 +307,14 @@
> > >  #
> > >  find_interface_generic() {
> > > 
> > > -  $IFCONFIG $IFCONFIG_A_OPT  |
> > > -  while read ifname linkstuff
> > > -  do
> > > -    : Read gave us ifname = $ifname
> > > -
> > > -    read inet addr junk
> > > -    : Read gave us inet = $inet addr = $addr
> > > -
> > > -    while
> > > -      read line && [ "X$line" != "X" ]
> > > -    do
> > > -      : Nothing
> > > -    done
> > > -
> > > -    case "$SYSTYPE" in
> > > -      *BSD)
> > > -        $IFCONFIG | grep "$BASEIP" -B`$IFCONFIG | grep -c inet` | grep "UP," | cut -d ":" -f 1
> > > -        return 0;;
> > > -      *)
> > > -            : "comparing $BASEIP to $addr (from ifconfig)"
> > > -        case $addr in
> > > -          addr:$BASEIP)    echo $ifname; return $OCF_SUCCESS;;
> > > -          $BASEIP)    echo $ifname; return $OCF_SUCCESS;;
> > > -            esac
> > > -        continue;;
> > > -    esac
> > > -
> > > -  done
> > > -  return $OCF_ERR_GENERIC
> > > +    local iface=`$IP2UTIL -o -f inet addr show | grep "\ $BASEIP" \
> > > +            | cut -d ' ' -f2 | grep -v '^ipsec[0-9][0-9]*$'`
> > > +        if [ -z "$iface" ]; then
> > > +            return $OCF_ERR_GENERIC
> > > +        else
> > > +            echo $iface
> > > +            return $OCF_SUCCESS
> > > +        fi
> > >  }
> > > 
> > > 
> > > @@ -409,7 +388,6 @@
> > >  srca_validate_all() {
> > > 
> > >      check_binary $AWK
> > > -    check_binary $IPROUTE
> > >      check_binary $IFCONFIG
> > > 
> > >  #    The IP address should be in good shape
> > > @@ -420,6 +398,10 @@
> > >        exit $OCF_ERR_CONFIGURED
> > >      fi
> > > 
> > > +    if ocf_is_probe; then
> > > +      return $OCF_SUCCESS
> > > +    fi
> > > +
> > >  #    We should serve this IP address of course
> > >      if ip_status "$ipaddress"; then
> > >        :
> > > @@ -458,6 +440,10 @@
> > > 
> > >  ipaddress="$OCF_RESKEY_ipaddress"
> > > 
> > > +if [ "x$SYSTYPE" = "xLinux" ]; then
> > > +    srca_validate_all
> > > +fi
> > > +
> > >  findif_out=`$FINDIF -C`
> > >  rc=$?
> > >  [ $rc -ne 0 ] && {
> >
> > > _______________________________________________________
> > > 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/
> >
> >
>
_______________________________________________________
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/
Re: [Patch] Patch for IPsrcaddr.(2/2) [ In reply to ]
Hi Hideo-san,

On Mon, Jan 23, 2012 at 09:09:57AM +0900, renayama19661014@ybb.ne.jp wrote:
> Hi Dejan,
>
> How about the patch of this place?

Applied. Thanks for the patch.

Now the ocft test fails:

2012/01/23_21:39:40 ERROR: IP address [127.0.0.3] is a loopback
address, thus can not be preferred source address

Any idea how to update the ocft test case?

Cheers,

Dejan



> Best Regards,
> Hideo Yamauchi.
>
>
> --- On Mon, 2012/1/16, renayama19661014@ybb.ne.jp <renayama19661014@ybb.ne.jp> wrote:
>
> > Hi Dejan,
> >
> > Thank you for comments.
> >
> > > On Tue, Nov 29, 2011 at 02:49:24PM +0900, renayama19661014@ybb.ne.jp wrote:
> > > > Hi All,
> > > >
> > > > We made a patch to IPsrcaddr.
> > > >
> > > > This patch revises the next point.
> > > >
> > > >  * Made modifications to carry out validate_all processing.
> > >
> > > I'm not necessarily against it, but I wonder why. This would make
> > > monitor validate the environment every time. Is that really
> > > necessary? What was your motivation for this change?
> >
> > I think that the handling of validate-all should be carried out in the same way as other RA.
> > Therefore we suggested this correction.
> > * All RA is not same, but give readability and conservatism if it is similar constitution.
> > >
> > > >  * Undefined and deleted the unused IPROUTE variable
> > >
> > > OK.
> > >
> > > >  * The find_interface_generic processing revised it to search it by ip command.
> > >
> > > Good.
> > >
> > > > However, we cannot test environment except Linux.
> > > > Therefore, we limited a condition to carry out processing to environment of Linux.
> > >
> > > That's fine too.
> >
> > Many Thanks!
> > Hideo Yamauchi.
> >
> >
> > >
> > > Cheers,
> > >
> > > Dejan
> > >
> > > > (snip)
> > > > @@ -458,6 +440,10 @@
> > > > 
> > > >  ipaddress="$OCF_RESKEY_ipaddress"
> > > > 
> > > > +if [ "x$SYSTYPE" = "xLinux" ]; then
> > > > +    srca_validate_all
> > > > +fi
> > > > +
> > > > (snip)
> > > >
> > > >
> > > > Please please confirm my correction.
> > > > And please commit a correction.
> > > >
> > > >
> > > >
> > > > Best Regards,
> > > > Hideo Yamauchi
> > >
> > > > diff -r e4d9d86a9577 IPsrcaddr
> > > > --- a/IPsrcaddr    Mon Nov 28 20:02:26 2011 +0900
> > > > +++ b/IPsrcaddr    Mon Nov 28 20:03:07 2011 +0900
> > > > @@ -307,35 +307,14 @@
> > > >  #
> > > >  find_interface_generic() {
> > > > 
> > > > -  $IFCONFIG $IFCONFIG_A_OPT  |
> > > > -  while read ifname linkstuff
> > > > -  do
> > > > -    : Read gave us ifname = $ifname
> > > > -
> > > > -    read inet addr junk
> > > > -    : Read gave us inet = $inet addr = $addr
> > > > -
> > > > -    while
> > > > -      read line && [ "X$line" != "X" ]
> > > > -    do
> > > > -      : Nothing
> > > > -    done
> > > > -
> > > > -    case "$SYSTYPE" in
> > > > -      *BSD)
> > > > -        $IFCONFIG | grep "$BASEIP" -B`$IFCONFIG | grep -c inet` | grep "UP," | cut -d ":" -f 1
> > > > -        return 0;;
> > > > -      *)
> > > > -            : "comparing $BASEIP to $addr (from ifconfig)"
> > > > -        case $addr in
> > > > -          addr:$BASEIP)    echo $ifname; return $OCF_SUCCESS;;
> > > > -          $BASEIP)    echo $ifname; return $OCF_SUCCESS;;
> > > > -            esac
> > > > -        continue;;
> > > > -    esac
> > > > -
> > > > -  done
> > > > -  return $OCF_ERR_GENERIC
> > > > +    local iface=`$IP2UTIL -o -f inet addr show | grep "\ $BASEIP" \
> > > > +            | cut -d ' ' -f2 | grep -v '^ipsec[0-9][0-9]*$'`
> > > > +        if [ -z "$iface" ]; then
> > > > +            return $OCF_ERR_GENERIC
> > > > +        else
> > > > +            echo $iface
> > > > +            return $OCF_SUCCESS
> > > > +        fi
> > > >  }
> > > > 
> > > > 
> > > > @@ -409,7 +388,6 @@
> > > >  srca_validate_all() {
> > > > 
> > > >      check_binary $AWK
> > > > -    check_binary $IPROUTE
> > > >      check_binary $IFCONFIG
> > > > 
> > > >  #    The IP address should be in good shape
> > > > @@ -420,6 +398,10 @@
> > > >        exit $OCF_ERR_CONFIGURED
> > > >      fi
> > > > 
> > > > +    if ocf_is_probe; then
> > > > +      return $OCF_SUCCESS
> > > > +    fi
> > > > +
> > > >  #    We should serve this IP address of course
> > > >      if ip_status "$ipaddress"; then
> > > >        :
> > > > @@ -458,6 +440,10 @@
> > > > 
> > > >  ipaddress="$OCF_RESKEY_ipaddress"
> > > > 
> > > > +if [ "x$SYSTYPE" = "xLinux" ]; then
> > > > +    srca_validate_all
> > > > +fi
> > > > +
> > > >  findif_out=`$FINDIF -C`
> > > >  rc=$?
> > > >  [ $rc -ne 0 ] && {
> > >
> > > > _______________________________________________________
> > > > 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/
> > >
> > >
> >
> _______________________________________________________
> 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/
_______________________________________________________
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/
Re: [Patch] Patch for IPsrcaddr.(2/2) [ In reply to ]
Hi Dejan,

> > How about the patch of this place?
>
> Applied. Thanks for the patch.

Many Thanks!!

> Now the ocft test fails:
>
> 2012/01/23_21:39:40 ERROR: IP address [127.0.0.3] is a loopback
> address, thus can not be preferred source address
>
> Any idea how to update the ocft test case?

I try this problem, too.

Best Regards,
Hideo Yamauchi.


--- On Tue, 2012/1/24, Dejan Muhamedagic <dejan@suse.de> wrote:

> Hi Hideo-san,
>
> On Mon, Jan 23, 2012 at 09:09:57AM +0900, renayama19661014@ybb.ne.jp wrote:
> > Hi Dejan,
> >
> > How about the patch of this place?
>
> Applied. Thanks for the patch.
>
> Now the ocft test fails:
>
> 2012/01/23_21:39:40 ERROR: IP address [127.0.0.3] is a loopback
> address, thus can not be preferred source address
>
> Any idea how to update the ocft test case?
>
> Cheers,
>
> Dejan
>
>
>
> > Best Regards,
> > Hideo Yamauchi.
> >
> >
> > --- On Mon, 2012/1/16, renayama19661014@ybb.ne.jp <renayama19661014@ybb.ne.jp> wrote:
> >
> > > Hi Dejan,
> > >
> > > Thank you for comments.
> > >
> > > > On Tue, Nov 29, 2011 at 02:49:24PM +0900, renayama19661014@ybb.ne.jp wrote:
> > > > > Hi All,
> > > > >
> > > > > We made a patch to IPsrcaddr.
> > > > >
> > > > > This patch revises the next point.
> > > > >
> > > > >  * Made modifications to carry out validate_all processing.
> > > >
> > > > I'm not necessarily against it, but I wonder why. This would make
> > > > monitor validate the environment every time. Is that really
> > > > necessary? What was your motivation for this change?
> > >
> > > I think that the handling of validate-all should be carried out in the same way as other RA.
> > > Therefore we suggested this correction.
> > >  * All RA is not same, but give readability and conservatism if it is similar constitution.
> > > >
> > > > >  * Undefined and deleted the unused IPROUTE variable
> > > >
> > > > OK.
> > > >
> > > > >  * The find_interface_generic processing revised it to search it by ip command.
> > > >
> > > > Good.
> > > >
> > > > > However, we cannot test environment except Linux.
> > > > > Therefore, we limited a condition to carry out processing to environment of Linux.
> > > >
> > > > That's fine too.
> > >
> > > Many Thanks!
> > > Hideo Yamauchi.
> > >
> > >
> > > >
> > > > Cheers,
> > > >
> > > > Dejan
> > > >
> > > > > (snip)
> > > > > @@ -458,6 +440,10 @@
> > > > > 
> > > > >  ipaddress="$OCF_RESKEY_ipaddress"
> > > > > 
> > > > > +if [ "x$SYSTYPE" = "xLinux" ]; then
> > > > > +    srca_validate_all
> > > > > +fi
> > > > > +
> > > > > (snip)
> > > > >
> > > > >
> > > > > Please please confirm my correction.
> > > > > And please commit a correction.
> > > > >
> > > > >
> > > > >
> > > > > Best Regards,
> > > > > Hideo Yamauchi
> > > >
> > > > > diff -r e4d9d86a9577 IPsrcaddr
> > > > > --- a/IPsrcaddr    Mon Nov 28 20:02:26 2011 +0900
> > > > > +++ b/IPsrcaddr    Mon Nov 28 20:03:07 2011 +0900
> > > > > @@ -307,35 +307,14 @@
> > > > >  #
> > > > >  find_interface_generic() {
> > > > > 
> > > > > -  $IFCONFIG $IFCONFIG_A_OPT  |
> > > > > -  while read ifname linkstuff
> > > > > -  do
> > > > > -    : Read gave us ifname = $ifname
> > > > > -
> > > > > -    read inet addr junk
> > > > > -    : Read gave us inet = $inet addr = $addr
> > > > > -
> > > > > -    while
> > > > > -      read line && [ "X$line" != "X" ]
> > > > > -    do
> > > > > -      : Nothing
> > > > > -    done
> > > > > -
> > > > > -    case "$SYSTYPE" in
> > > > > -      *BSD)
> > > > > -        $IFCONFIG | grep "$BASEIP" -B`$IFCONFIG | grep -c inet` | grep "UP," | cut -d ":" -f 1
> > > > > -        return 0;;
> > > > > -      *)
> > > > > -            : "comparing $BASEIP to $addr (from ifconfig)"
> > > > > -        case $addr in
> > > > > -          addr:$BASEIP)    echo $ifname; return $OCF_SUCCESS;;
> > > > > -          $BASEIP)    echo $ifname; return $OCF_SUCCESS;;
> > > > > -            esac
> > > > > -        continue;;
> > > > > -    esac
> > > > > -
> > > > > -  done
> > > > > -  return $OCF_ERR_GENERIC
> > > > > +    local iface=`$IP2UTIL -o -f inet addr show | grep "\ $BASEIP" \
> > > > > +            | cut -d ' ' -f2 | grep -v '^ipsec[0-9][0-9]*$'`
> > > > > +        if [ -z "$iface" ]; then
> > > > > +            return $OCF_ERR_GENERIC
> > > > > +        else
> > > > > +            echo $iface
> > > > > +            return $OCF_SUCCESS
> > > > > +        fi
> > > > >  }
> > > > > 
> > > > > 
> > > > > @@ -409,7 +388,6 @@
> > > > >  srca_validate_all() {
> > > > > 
> > > > >      check_binary $AWK
> > > > > -    check_binary $IPROUTE
> > > > >      check_binary $IFCONFIG
> > > > > 
> > > > >  #    The IP address should be in good shape
> > > > > @@ -420,6 +398,10 @@
> > > > >        exit $OCF_ERR_CONFIGURED
> > > > >      fi
> > > > > 
> > > > > +    if ocf_is_probe; then
> > > > > +      return $OCF_SUCCESS
> > > > > +    fi
> > > > > +
> > > > >  #    We should serve this IP address of course
> > > > >      if ip_status "$ipaddress"; then
> > > > >        :
> > > > > @@ -458,6 +440,10 @@
> > > > > 
> > > > >  ipaddress="$OCF_RESKEY_ipaddress"
> > > > > 
> > > > > +if [ "x$SYSTYPE" = "xLinux" ]; then
> > > > > +    srca_validate_all
> > > > > +fi
> > > > > +
> > > > >  findif_out=`$FINDIF -C`
> > > > >  rc=$?
> > > > >  [ $rc -ne 0 ] && {
> > > >
> > > > > _______________________________________________________
> > > > > 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/
> > > >
> > > >
> > >
> > _______________________________________________________
> > 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/
>
_______________________________________________________
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/
Re: [Patch] Patch for IPsrcaddr.(2/2) [ In reply to ]
Hi Dejan,

> > Now the ocft test fails:
> >
> > 2012/01/23_21:39:40 ERROR: IP address [127.0.0.3] is a loopback
> > address, thus can not be preferred source address
> >
> > Any idea how to update the ocft test case?
>
> I try this problem, too.

I carried out ocf-tester with three cases.

Case1) I carry it out after improving an address by ifconfig command.

[root@rh57-3 ClusterLabs-resource-agents-7edbe1d]# ifconfig eth0:1 192.168.40.7 up
[root@rh57-3 ClusterLabs-resource-agents-7edbe1d]# ocf-tester -v -n IPsrcaddr -o ipaddress=192.168.40.7 /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr
Beginning tests for /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr...
Testing permissions with uid nobody
Testing: meta-data
Testing: meta-data
<?xml version="1.0"?>
<!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd">
<resource-agent name="IPsrcaddr">
<version>1.0</version>

<longdesc lang="en">
Resource script for IPsrcaddr. It manages the preferred source address
modification.
</longdesc>
<shortdesc lang="en">Manages the preferred source address for outgoing IP packets</shortdesc>

<parameters>
<parameter name="ipaddress" unique="0" required="1">
<longdesc lang="en">
The IP address.
</longdesc>
<shortdesc lang="en">IP address</shortdesc>
<content type="string" default="" />
</parameter>

<parameter name="cidr_netmask">
<longdesc lang="en">
The netmask for the interface in CIDR format. (ie, 24), or in
dotted quad notation 255.255.255.0).
</longdesc>
<shortdesc lang="en">Netmask</shortdesc>
<content type="string" default=""/>
</parameter>
</parameters>

<actions>
<action name="start" timeout="20s" />
<action name="stop" timeout="20s" />
<action name="monitor" depth="0" timeout="20s" interval="10" />
<action name="validate-all" timeout="5" />
<action name="meta-data" timeout="5" />
</actions>
</resource-agent>
Testing: validate-all
Checking current state
No preferred source address defined
Testing: monitor
No preferred source address defined
Testing: monitor
ERROR: Setup problem: couldn't find command: gawk
Testing: start
Testing: monitor
OK
Testing: monitor
OK
Testing: notify
usage: /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr {start|stop|status|monitor|validate-all|meta-data}
* Your agent does not support the notify action (optional)
Checking for demote action
usage: /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr {start|stop|status|monitor|validate-all|meta-data}
* Your agent does not support the demote action (optional)
Checking for promote action
usage: /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr {start|stop|status|monitor|validate-all|meta-data}
* Your agent does not support the promote action (optional)
* Your agent does not support master/slave (optional)
Testing: stop
Testing: monitor
No preferred source address defined
Restarting resource...
Testing: monitor
OK
Testing: starting a started resource
INFO: The ip route has been already set.(192.168.40.0/24, eth0, default via 192.168.40.1 dev eth0 )
Testing: monitor
OK
Stopping resource
Testing: monitor
No preferred source address defined
Testing: stopping a stopped resource
INFO: No preferred source address defined, nothing to stop
Testing: monitor
No preferred source address defined
Checking for migrate_to action
usage: /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr {start|stop|status|monitor|validate-all|meta-data}
Checking for reload action
usage: /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr {start|stop|status|monitor|validate-all|meta-data}
* Your agent does not support the reload action (optional)
/usr/lib/ocf/resource.d/heartbeat/IPsrcaddr passed all tests


Case2) I carry it out after improving an address by ip command.
[root@rh57-3 ClusterLabs-resource-agents-7edbe1d]# ip addr add 192.168.40.7/24 brd 192.168.40.255 dev eth0
[root@rh57-3 ClusterLabs-resource-agents-7edbe1d]# ocf-tester -v -n IPsrcaddr -o ipaddress=192.168.40.7 /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr
Beginning tests for /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr...
Testing permissions with uid nobody
Testing: meta-data
Testing: meta-data
<?xml version="1.0"?>
<!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd">
<resource-agent name="IPsrcaddr">
<version>1.0</version>

<longdesc lang="en">
Resource script for IPsrcaddr. It manages the preferred source address
modification.
</longdesc>
<shortdesc lang="en">Manages the preferred source address for outgoing IP packets</shortdesc>

<parameters>
<parameter name="ipaddress" unique="0" required="1">
<longdesc lang="en">
The IP address.
</longdesc>
<shortdesc lang="en">IP address</shortdesc>
<content type="string" default="" />
</parameter>

<parameter name="cidr_netmask">
<longdesc lang="en">
The netmask for the interface in CIDR format. (ie, 24), or in
dotted quad notation 255.255.255.0).
</longdesc>
<shortdesc lang="en">Netmask</shortdesc>
<content type="string" default=""/>
</parameter>
</parameters>

<actions>
<action name="start" timeout="20s" />
<action name="stop" timeout="20s" />
<action name="monitor" depth="0" timeout="20s" interval="10" />
<action name="validate-all" timeout="5" />
<action name="meta-data" timeout="5" />
</actions>
</resource-agent>
Testing: validate-all
Checking current state
No preferred source address defined
Testing: monitor
No preferred source address defined
Testing: monitor
ERROR: Setup problem: couldn't find command: gawk
Testing: start
Testing: monitor
OK
Testing: monitor
OK
Testing: notify
usage: /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr {start|stop|status|monitor|validate-all|meta-data}
* Your agent does not support the notify action (optional)
Checking for demote action
usage: /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr {start|stop|status|monitor|validate-all|meta-data}
* Your agent does not support the demote action (optional)
Checking for promote action
usage: /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr {start|stop|status|monitor|validate-all|meta-data}
* Your agent does not support the promote action (optional)
* Your agent does not support master/slave (optional)
Testing: stop
Testing: monitor
No preferred source address defined
Restarting resource...
Testing: monitor
OK
Testing: starting a started resource
INFO: The ip route has been already set.(192.168.40.0/24, eth0, default via 192.168.40.1 dev eth0 )
Testing: monitor
OK
Stopping resource
Testing: monitor
No preferred source address defined
Testing: stopping a stopped resource
INFO: No preferred source address defined, nothing to stop
Testing: monitor
No preferred source address defined
Checking for migrate_to action
usage: /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr {start|stop|status|monitor|validate-all|meta-data}
Checking for reload action
usage: /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr {start|stop|status|monitor|validate-all|meta-data}
* Your agent does not support the reload action (optional)
/usr/lib/ocf/resource.d/heartbeat/IPsrcaddr passed all tests

Case3) I carry it out without improving an address.
[root@rh57-3 ClusterLabs-resource-agents-7edbe1d]# ocf-tester -v -n IPsrcaddr -o ipaddress=192.168.40.7 /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr
Beginning tests for /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr...
Testing permissions with uid nobody
Testing: meta-data
Testing: meta-data
<?xml version="1.0"?>
<!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd">
<resource-agent name="IPsrcaddr">
<version>1.0</version>

<longdesc lang="en">
Resource script for IPsrcaddr. It manages the preferred source address
modification.
</longdesc>
<shortdesc lang="en">Manages the preferred source address for outgoing IP packets</shortdesc>

<parameters>
<parameter name="ipaddress" unique="0" required="1">
<longdesc lang="en">
The IP address.
</longdesc>
<shortdesc lang="en">IP address</shortdesc>
<content type="string" default="" />
</parameter>

<parameter name="cidr_netmask">
<longdesc lang="en">
The netmask for the interface in CIDR format. (ie, 24), or in
dotted quad notation 255.255.255.0).
</longdesc>
<shortdesc lang="en">Netmask</shortdesc>
<content type="string" default=""/>
</parameter>
</parameters>

<actions>
<action name="start" timeout="20s" />
<action name="stop" timeout="20s" />
<action name="monitor" depth="0" timeout="20s" interval="10" />
<action name="validate-all" timeout="5" />
<action name="meta-data" timeout="5" />
</actions>
</resource-agent>
Testing: validate-all
Checking current state
No preferred source address defined
Testing: monitor
No preferred source address defined
Testing: monitor
ERROR: Setup problem: couldn't find command: gawk
Testing: start
RTNETLINK answers: Invalid argument
ERROR: command 'ip route replace 192.168.40.0/24 dev eth0 src 192.168.40.7' failed
* rc=1: Start failed. Did you supply enough options with -o ?
Aborting tests

The third case thinks that it is right to become the error.

> > 2012/01/23_21:39:40 ERROR: IP address [127.0.0.3] is a loopback
> > address, thus can not be preferred source address

Which case is the test that you carried out?

Because the processing that the loopback address is not usable enters in IPsrcaddr, the error seems to be displayed.

(snip)
if [ $1 -eq 127 ]; then
ocf_log err "IP address [$ip] is a loopback address, thus can not be preferred source address"
exit $OCF_ERR_CONFIGURED
fi
(snip)

Processing to improve an address in ocf-tester is necessary to automatically carry it out.

Best Regards,
Hideo Yamauchi.


--- On Tue, 2012/1/24, renayama19661014@ybb.ne.jp <renayama19661014@ybb.ne.jp> wrote:

> Hi Dejan,
>
> > > How about the patch of this place?
> >
> > Applied. Thanks for the patch.
>
> Many Thanks!!
>
> > Now the ocft test fails:
> >
> > 2012/01/23_21:39:40 ERROR: IP address [127.0.0.3] is a loopback
> > address, thus can not be preferred source address
> >
> > Any idea how to update the ocft test case?
>
> I try this problem, too.
>
> Best Regards,
> Hideo Yamauchi.
>
>
> --- On Tue, 2012/1/24, Dejan Muhamedagic <dejan@suse.de> wrote:
>
> > Hi Hideo-san,
> >
> > On Mon, Jan 23, 2012 at 09:09:57AM +0900, renayama19661014@ybb.ne.jp wrote:
> > > Hi Dejan,
> > >
> > > How about the patch of this place?
> >
> > Applied. Thanks for the patch.
> >
> > Now the ocft test fails:
> >
> > 2012/01/23_21:39:40 ERROR: IP address [127.0.0.3] is a loopback
> > address, thus can not be preferred source address
> >
> > Any idea how to update the ocft test case?
> >
> > Cheers,
> >
> > Dejan
> >
> >
> >
> > > Best Regards,
> > > Hideo Yamauchi.
> > >
> > >
> > > --- On Mon, 2012/1/16, renayama19661014@ybb.ne.jp <renayama19661014@ybb.ne.jp> wrote:
> > >
> > > > Hi Dejan,
> > > >
> > > > Thank you for comments.
> > > >
> > > > > On Tue, Nov 29, 2011 at 02:49:24PM +0900, renayama19661014@ybb.ne.jp wrote:
> > > > > > Hi All,
> > > > > >
> > > > > > We made a patch to IPsrcaddr.
> > > > > >
> > > > > > This patch revises the next point.
> > > > > >
> > > > > >  * Made modifications to carry out validate_all processing.
> > > > >
> > > > > I'm not necessarily against it, but I wonder why. This would make
> > > > > monitor validate the environment every time. Is that really
> > > > > necessary? What was your motivation for this change?
> > > >
> > > > I think that the handling of validate-all should be carried out in the same way as other RA.
> > > > Therefore we suggested this correction.
> > > >  * All RA is not same, but give readability and conservatism if it is similar constitution.
> > > > >
> > > > > >  * Undefined and deleted the unused IPROUTE variable
> > > > >
> > > > > OK.
> > > > >
> > > > > >  * The find_interface_generic processing revised it to search it by ip command.
> > > > >
> > > > > Good.
> > > > >
> > > > > > However, we cannot test environment except Linux.
> > > > > > Therefore, we limited a condition to carry out processing to environment of Linux.
> > > > >
> > > > > That's fine too.
> > > >
> > > > Many Thanks!
> > > > Hideo Yamauchi.
> > > >
> > > >
> > > > >
> > > > > Cheers,
> > > > >
> > > > > Dejan
> > > > >
> > > > > > (snip)
> > > > > > @@ -458,6 +440,10 @@
> > > > > > 
> > > > > >  ipaddress="$OCF_RESKEY_ipaddress"
> > > > > > 
> > > > > > +if [ "x$SYSTYPE" = "xLinux" ]; then
> > > > > > +    srca_validate_all
> > > > > > +fi
> > > > > > +
> > > > > > (snip)
> > > > > >
> > > > > >
> > > > > > Please please confirm my correction.
> > > > > > And please commit a correction.
> > > > > >
> > > > > >
> > > > > >
> > > > > > Best Regards,
> > > > > > Hideo Yamauchi
> > > > >
> > > > > > diff -r e4d9d86a9577 IPsrcaddr
> > > > > > --- a/IPsrcaddr    Mon Nov 28 20:02:26 2011 +0900
> > > > > > +++ b/IPsrcaddr    Mon Nov 28 20:03:07 2011 +0900
> > > > > > @@ -307,35 +307,14 @@
> > > > > >  #
> > > > > >  find_interface_generic() {
> > > > > > 
> > > > > > -  $IFCONFIG $IFCONFIG_A_OPT  |
> > > > > > -  while read ifname linkstuff
> > > > > > -  do
> > > > > > -    : Read gave us ifname = $ifname
> > > > > > -
> > > > > > -    read inet addr junk
> > > > > > -    : Read gave us inet = $inet addr = $addr
> > > > > > -
> > > > > > -    while
> > > > > > -      read line && [ "X$line" != "X" ]
> > > > > > -    do
> > > > > > -      : Nothing
> > > > > > -    done
> > > > > > -
> > > > > > -    case "$SYSTYPE" in
> > > > > > -      *BSD)
> > > > > > -        $IFCONFIG | grep "$BASEIP" -B`$IFCONFIG | grep -c inet` | grep "UP," | cut -d ":" -f 1
> > > > > > -        return 0;;
> > > > > > -      *)
> > > > > > -            : "comparing $BASEIP to $addr (from ifconfig)"
> > > > > > -        case $addr in
> > > > > > -          addr:$BASEIP)    echo $ifname; return $OCF_SUCCESS;;
> > > > > > -          $BASEIP)    echo $ifname; return $OCF_SUCCESS;;
> > > > > > -            esac
> > > > > > -        continue;;
> > > > > > -    esac
> > > > > > -
> > > > > > -  done
> > > > > > -  return $OCF_ERR_GENERIC
> > > > > > +    local iface=`$IP2UTIL -o -f inet addr show | grep "\ $BASEIP" \
> > > > > > +            | cut -d ' ' -f2 | grep -v '^ipsec[0-9][0-9]*$'`
> > > > > > +        if [ -z "$iface" ]; then
> > > > > > +            return $OCF_ERR_GENERIC
> > > > > > +        else
> > > > > > +            echo $iface
> > > > > > +            return $OCF_SUCCESS
> > > > > > +        fi
> > > > > >  }
> > > > > > 
> > > > > > 
> > > > > > @@ -409,7 +388,6 @@
> > > > > >  srca_validate_all() {
> > > > > > 
> > > > > >      check_binary $AWK
> > > > > > -    check_binary $IPROUTE
> > > > > >      check_binary $IFCONFIG
> > > > > > 
> > > > > >  #    The IP address should be in good shape
> > > > > > @@ -420,6 +398,10 @@
> > > > > >        exit $OCF_ERR_CONFIGURED
> > > > > >      fi
> > > > > > 
> > > > > > +    if ocf_is_probe; then
> > > > > > +      return $OCF_SUCCESS
> > > > > > +    fi
> > > > > > +
> > > > > >  #    We should serve this IP address of course
> > > > > >      if ip_status "$ipaddress"; then
> > > > > >        :
> > > > > > @@ -458,6 +440,10 @@
> > > > > > 
> > > > > >  ipaddress="$OCF_RESKEY_ipaddress"
> > > > > > 
> > > > > > +if [ "x$SYSTYPE" = "xLinux" ]; then
> > > > > > +    srca_validate_all
> > > > > > +fi
> > > > > > +
> > > > > >  findif_out=`$FINDIF -C`
> > > > > >  rc=$?
> > > > > >  [ $rc -ne 0 ] && {
> > > > >
> > > > > > _______________________________________________________
> > > > > > 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/
> > > > >
> > > > >
> > > >
> > > _______________________________________________________
> > > 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/
> >
> _______________________________________________________
> 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/
>
_______________________________________________________
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/
Re: [Patch] Patch for IPsrcaddr.(2/2) [ In reply to ]
Hi Hideo-san,

On Tue, Jan 24, 2012 at 10:34:34AM +0900, renayama19661014@ybb.ne.jp wrote:
> Hi Dejan,
>
> > > Now the ocft test fails:
> > >
> > > 2012/01/23_21:39:40 ERROR: IP address [127.0.0.3] is a loopback
> > > address, thus can not be preferred source address
> > >
> > > Any idea how to update the ocft test case?
> >
> > I try this problem, too.
>
> I carried out ocf-tester with three cases.
>
> Case1) I carry it out after improving an address by ifconfig command.
>
> [root@rh57-3 ClusterLabs-resource-agents-7edbe1d]# ifconfig eth0:1 192.168.40.7 up
> [root@rh57-3 ClusterLabs-resource-agents-7edbe1d]# ocf-tester -v -n IPsrcaddr -o ipaddress=192.168.40.7 /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr
> Beginning tests for /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr...
> Testing permissions with uid nobody
> Testing: meta-data
[...] [Note to myself: drop the meta-data output]
> ERROR: Setup problem: couldn't find command: gawk

Install gawk perhaps?

[...]
> INFO: The ip route has been already set.(192.168.40.0/24, eth0, default via 192.168.40.1 dev eth0 )

Hmm, I saw different stuff:

ERROR: command 'ip route replace 10.2.13.0/24 169.254.0.0/16 dev eth0 src 10.2.13.154' failed

Debugging:

+ ip route replace 10.2.13.0/24 169.254.0.0/16 dev eth0 src 10.2.13.154
Error: either "to" is duplicate, or "169.254.0.0/16" is a garbage.

The route list:

xen-d:~ # ip route list
default via 10.2.13.1 dev eth0
10.2.13.0/24 dev eth0 proto kernel scope link src 10.2.13.54
127.0.0.0/8 dev lo scope link
169.254.0.0/16 dev eth0 scope link

It seems like the last entry confuses the new calculation code.

Cheers,

Dejan

> Testing: monitor
> OK
> Stopping resource
> Testing: monitor
> No preferred source address defined
> Testing: stopping a stopped resource
> INFO: No preferred source address defined, nothing to stop
> Testing: monitor
> No preferred source address defined
> Checking for migrate_to action
> usage: /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr {start|stop|status|monitor|validate-all|meta-data}
> Checking for reload action
> usage: /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr {start|stop|status|monitor|validate-all|meta-data}
> * Your agent does not support the reload action (optional)
> /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr passed all tests
>
>
> Case2) I carry it out after improving an address by ip command.
> [root@rh57-3 ClusterLabs-resource-agents-7edbe1d]# ip addr add 192.168.40.7/24 brd 192.168.40.255 dev eth0
> [root@rh57-3 ClusterLabs-resource-agents-7edbe1d]# ocf-tester -v -n IPsrcaddr -o ipaddress=192.168.40.7 /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr
> Beginning tests for /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr...
> Testing permissions with uid nobody
> Testing: meta-data
> Testing: meta-data
> <?xml version="1.0"?>
> <!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd">
> <resource-agent name="IPsrcaddr">
> <version>1.0</version>
>
> <longdesc lang="en">
> Resource script for IPsrcaddr. It manages the preferred source address
> modification.
> </longdesc>
> <shortdesc lang="en">Manages the preferred source address for outgoing IP packets</shortdesc>
>
> <parameters>
> <parameter name="ipaddress" unique="0" required="1">
> <longdesc lang="en">
> The IP address.
> </longdesc>
> <shortdesc lang="en">IP address</shortdesc>
> <content type="string" default="" />
> </parameter>
>
> <parameter name="cidr_netmask">
> <longdesc lang="en">
> The netmask for the interface in CIDR format. (ie, 24), or in
> dotted quad notation 255.255.255.0).
> </longdesc>
> <shortdesc lang="en">Netmask</shortdesc>
> <content type="string" default=""/>
> </parameter>
> </parameters>
>
> <actions>
> <action name="start" timeout="20s" />
> <action name="stop" timeout="20s" />
> <action name="monitor" depth="0" timeout="20s" interval="10" />
> <action name="validate-all" timeout="5" />
> <action name="meta-data" timeout="5" />
> </actions>
> </resource-agent>
> Testing: validate-all
> Checking current state
> No preferred source address defined
> Testing: monitor
> No preferred source address defined
> Testing: monitor
> ERROR: Setup problem: couldn't find command: gawk
> Testing: start
> Testing: monitor
> OK
> Testing: monitor
> OK
> Testing: notify
> usage: /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr {start|stop|status|monitor|validate-all|meta-data}
> * Your agent does not support the notify action (optional)
> Checking for demote action
> usage: /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr {start|stop|status|monitor|validate-all|meta-data}
> * Your agent does not support the demote action (optional)
> Checking for promote action
> usage: /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr {start|stop|status|monitor|validate-all|meta-data}
> * Your agent does not support the promote action (optional)
> * Your agent does not support master/slave (optional)
> Testing: stop
> Testing: monitor
> No preferred source address defined
> Restarting resource...
> Testing: monitor
> OK
> Testing: starting a started resource
> INFO: The ip route has been already set.(192.168.40.0/24, eth0, default via 192.168.40.1 dev eth0 )
> Testing: monitor
> OK
> Stopping resource
> Testing: monitor
> No preferred source address defined
> Testing: stopping a stopped resource
> INFO: No preferred source address defined, nothing to stop
> Testing: monitor
> No preferred source address defined
> Checking for migrate_to action
> usage: /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr {start|stop|status|monitor|validate-all|meta-data}
> Checking for reload action
> usage: /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr {start|stop|status|monitor|validate-all|meta-data}
> * Your agent does not support the reload action (optional)
> /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr passed all tests
>
> Case3) I carry it out without improving an address.
> [root@rh57-3 ClusterLabs-resource-agents-7edbe1d]# ocf-tester -v -n IPsrcaddr -o ipaddress=192.168.40.7 /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr
> Beginning tests for /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr...
> Testing permissions with uid nobody
> Testing: meta-data
> Testing: meta-data
> <?xml version="1.0"?>
> <!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd">
> <resource-agent name="IPsrcaddr">
> <version>1.0</version>
>
> <longdesc lang="en">
> Resource script for IPsrcaddr. It manages the preferred source address
> modification.
> </longdesc>
> <shortdesc lang="en">Manages the preferred source address for outgoing IP packets</shortdesc>
>
> <parameters>
> <parameter name="ipaddress" unique="0" required="1">
> <longdesc lang="en">
> The IP address.
> </longdesc>
> <shortdesc lang="en">IP address</shortdesc>
> <content type="string" default="" />
> </parameter>
>
> <parameter name="cidr_netmask">
> <longdesc lang="en">
> The netmask for the interface in CIDR format. (ie, 24), or in
> dotted quad notation 255.255.255.0).
> </longdesc>
> <shortdesc lang="en">Netmask</shortdesc>
> <content type="string" default=""/>
> </parameter>
> </parameters>
>
> <actions>
> <action name="start" timeout="20s" />
> <action name="stop" timeout="20s" />
> <action name="monitor" depth="0" timeout="20s" interval="10" />
> <action name="validate-all" timeout="5" />
> <action name="meta-data" timeout="5" />
> </actions>
> </resource-agent>
> Testing: validate-all
> Checking current state
> No preferred source address defined
> Testing: monitor
> No preferred source address defined
> Testing: monitor
> ERROR: Setup problem: couldn't find command: gawk
> Testing: start
> RTNETLINK answers: Invalid argument
> ERROR: command 'ip route replace 192.168.40.0/24 dev eth0 src 192.168.40.7' failed
> * rc=1: Start failed. Did you supply enough options with -o ?
> Aborting tests
>
> The third case thinks that it is right to become the error.
>
> > > 2012/01/23_21:39:40 ERROR: IP address [127.0.0.3] is a loopback
> > > address, thus can not be preferred source address
>
> Which case is the test that you carried out?
>
> Because the processing that the loopback address is not usable enters in IPsrcaddr, the error seems to be displayed.
>
> (snip)
> if [ $1 -eq 127 ]; then
> ocf_log err "IP address [$ip] is a loopback address, thus can not be preferred source address"
> exit $OCF_ERR_CONFIGURED
> fi
> (snip)
>
> Processing to improve an address in ocf-tester is necessary to automatically carry it out.
>
> Best Regards,
> Hideo Yamauchi.
>
>
> --- On Tue, 2012/1/24, renayama19661014@ybb.ne.jp <renayama19661014@ybb.ne.jp> wrote:
>
> > Hi Dejan,
> >
> > > > How about the patch of this place?
> > >
> > > Applied. Thanks for the patch.
> >
> > Many Thanks!!
> >
> > > Now the ocft test fails:
> > >
> > > 2012/01/23_21:39:40 ERROR: IP address [127.0.0.3] is a loopback
> > > address, thus can not be preferred source address
> > >
> > > Any idea how to update the ocft test case?
> >
> > I try this problem, too.
> >
> > Best Regards,
> > Hideo Yamauchi.
> >
> >
> > --- On Tue, 2012/1/24, Dejan Muhamedagic <dejan@suse.de> wrote:
> >
> > > Hi Hideo-san,
> > >
> > > On Mon, Jan 23, 2012 at 09:09:57AM +0900, renayama19661014@ybb.ne.jp wrote:
> > > > Hi Dejan,
> > > >
> > > > How about the patch of this place?
> > >
> > > Applied. Thanks for the patch.
> > >
> > > Now the ocft test fails:
> > >
> > > 2012/01/23_21:39:40 ERROR: IP address [127.0.0.3] is a loopback
> > > address, thus can not be preferred source address
> > >
> > > Any idea how to update the ocft test case?
> > >
> > > Cheers,
> > >
> > > Dejan
> > >
> > >
> > >
> > > > Best Regards,
> > > > Hideo Yamauchi.
> > > >
> > > >
> > > > --- On Mon, 2012/1/16, renayama19661014@ybb.ne.jp <renayama19661014@ybb.ne.jp> wrote:
> > > >
> > > > > Hi Dejan,
> > > > >
> > > > > Thank you for comments.
> > > > >
> > > > > > On Tue, Nov 29, 2011 at 02:49:24PM +0900, renayama19661014@ybb.ne.jp wrote:
> > > > > > > Hi All,
> > > > > > >
> > > > > > > We made a patch to IPsrcaddr.
> > > > > > >
> > > > > > > This patch revises the next point.
> > > > > > >
> > > > > > >  * Made modifications to carry out validate_all processing.
> > > > > >
> > > > > > I'm not necessarily against it, but I wonder why. This would make
> > > > > > monitor validate the environment every time. Is that really
> > > > > > necessary? What was your motivation for this change?
> > > > >
> > > > > I think that the handling of validate-all should be carried out in the same way as other RA.
> > > > > Therefore we suggested this correction.
> > > > >  * All RA is not same, but give readability and conservatism if it is similar constitution.
> > > > > >
> > > > > > >  * Undefined and deleted the unused IPROUTE variable
> > > > > >
> > > > > > OK.
> > > > > >
> > > > > > >  * The find_interface_generic processing revised it to search it by ip command.
> > > > > >
> > > > > > Good.
> > > > > >
> > > > > > > However, we cannot test environment except Linux.
> > > > > > > Therefore, we limited a condition to carry out processing to environment of Linux.
> > > > > >
> > > > > > That's fine too.
> > > > >
> > > > > Many Thanks!
> > > > > Hideo Yamauchi.
> > > > >
> > > > >
> > > > > >
> > > > > > Cheers,
> > > > > >
> > > > > > Dejan
> > > > > >
> > > > > > > (snip)
> > > > > > > @@ -458,6 +440,10 @@
> > > > > > > 
> > > > > > >  ipaddress="$OCF_RESKEY_ipaddress"
> > > > > > > 
> > > > > > > +if [ "x$SYSTYPE" = "xLinux" ]; then
> > > > > > > +    srca_validate_all
> > > > > > > +fi
> > > > > > > +
> > > > > > > (snip)
> > > > > > >
> > > > > > >
> > > > > > > Please please confirm my correction.
> > > > > > > And please commit a correction.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Best Regards,
> > > > > > > Hideo Yamauchi
> > > > > >
> > > > > > > diff -r e4d9d86a9577 IPsrcaddr
> > > > > > > --- a/IPsrcaddr    Mon Nov 28 20:02:26 2011 +0900
> > > > > > > +++ b/IPsrcaddr    Mon Nov 28 20:03:07 2011 +0900
> > > > > > > @@ -307,35 +307,14 @@
> > > > > > >  #
> > > > > > >  find_interface_generic() {
> > > > > > > 
> > > > > > > -  $IFCONFIG $IFCONFIG_A_OPT  |
> > > > > > > -  while read ifname linkstuff
> > > > > > > -  do
> > > > > > > -    : Read gave us ifname = $ifname
> > > > > > > -
> > > > > > > -    read inet addr junk
> > > > > > > -    : Read gave us inet = $inet addr = $addr
> > > > > > > -
> > > > > > > -    while
> > > > > > > -      read line && [ "X$line" != "X" ]
> > > > > > > -    do
> > > > > > > -      : Nothing
> > > > > > > -    done
> > > > > > > -
> > > > > > > -    case "$SYSTYPE" in
> > > > > > > -      *BSD)
> > > > > > > -        $IFCONFIG | grep "$BASEIP" -B`$IFCONFIG | grep -c inet` | grep "UP," | cut -d ":" -f 1
> > > > > > > -        return 0;;
> > > > > > > -      *)
> > > > > > > -            : "comparing $BASEIP to $addr (from ifconfig)"
> > > > > > > -        case $addr in
> > > > > > > -          addr:$BASEIP)    echo $ifname; return $OCF_SUCCESS;;
> > > > > > > -          $BASEIP)    echo $ifname; return $OCF_SUCCESS;;
> > > > > > > -            esac
> > > > > > > -        continue;;
> > > > > > > -    esac
> > > > > > > -
> > > > > > > -  done
> > > > > > > -  return $OCF_ERR_GENERIC
> > > > > > > +    local iface=`$IP2UTIL -o -f inet addr show | grep "\ $BASEIP" \
> > > > > > > +            | cut -d ' ' -f2 | grep -v '^ipsec[0-9][0-9]*$'`
> > > > > > > +        if [ -z "$iface" ]; then
> > > > > > > +            return $OCF_ERR_GENERIC
> > > > > > > +        else
> > > > > > > +            echo $iface
> > > > > > > +            return $OCF_SUCCESS
> > > > > > > +        fi
> > > > > > >  }
> > > > > > > 
> > > > > > > 
> > > > > > > @@ -409,7 +388,6 @@
> > > > > > >  srca_validate_all() {
> > > > > > > 
> > > > > > >      check_binary $AWK
> > > > > > > -    check_binary $IPROUTE
> > > > > > >      check_binary $IFCONFIG
> > > > > > > 
> > > > > > >  #    The IP address should be in good shape
> > > > > > > @@ -420,6 +398,10 @@
> > > > > > >        exit $OCF_ERR_CONFIGURED
> > > > > > >      fi
> > > > > > > 
> > > > > > > +    if ocf_is_probe; then
> > > > > > > +      return $OCF_SUCCESS
> > > > > > > +    fi
> > > > > > > +
> > > > > > >  #    We should serve this IP address of course
> > > > > > >      if ip_status "$ipaddress"; then
> > > > > > >        :
> > > > > > > @@ -458,6 +440,10 @@
> > > > > > > 
> > > > > > >  ipaddress="$OCF_RESKEY_ipaddress"
> > > > > > > 
> > > > > > > +if [ "x$SYSTYPE" = "xLinux" ]; then
> > > > > > > +    srca_validate_all
> > > > > > > +fi
> > > > > > > +
> > > > > > >  findif_out=`$FINDIF -C`
> > > > > > >  rc=$?
> > > > > > >  [ $rc -ne 0 ] && {
> > > > > >
> > > > > > > _______________________________________________________
> > > > > > > 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/
> > > > > >
> > > > > >
> > > > >
> > > > _______________________________________________________
> > > > 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/
> > >
> > _______________________________________________________
> > 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/
> >
> _______________________________________________________
> 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/
_______________________________________________________
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/
Re: [Patch] Patch for IPsrcaddr.(2/2) [ In reply to ]
On Tue, Jan 24, 2012 at 07:34:10PM +0100, Dejan Muhamedagic wrote:
> Hi Hideo-san,
>
> On Tue, Jan 24, 2012 at 10:34:34AM +0900, renayama19661014@ybb.ne.jp wrote:
> > Hi Dejan,
> >
> > > > Now the ocft test fails:
> > > >
> > > > 2012/01/23_21:39:40 ERROR: IP address [127.0.0.3] is a loopback
> > > > address, thus can not be preferred source address
> > > >
> > > > Any idea how to update the ocft test case?
> > >
> > > I try this problem, too.
> >
> > I carried out ocf-tester with three cases.
> >
> > Case1) I carry it out after improving an address by ifconfig command.
> >
> > [root@rh57-3 ClusterLabs-resource-agents-7edbe1d]# ifconfig eth0:1 192.168.40.7 up
> > [root@rh57-3 ClusterLabs-resource-agents-7edbe1d]# ocf-tester -v -n IPsrcaddr -o ipaddress=192.168.40.7 /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr
> > Beginning tests for /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr...
> > Testing permissions with uid nobody
> > Testing: meta-data
> [...] [Note to myself: drop the meta-data output]
> > ERROR: Setup problem: couldn't find command: gawk
>
> Install gawk perhaps?
>
> [...]
> > INFO: The ip route has been already set.(192.168.40.0/24, eth0, default via 192.168.40.1 dev eth0 )
>
> Hmm, I saw different stuff:
>
> ERROR: command 'ip route replace 10.2.13.0/24 169.254.0.0/16 dev eth0 src 10.2.13.154' failed
>
> Debugging:
>
> + ip route replace 10.2.13.0/24 169.254.0.0/16 dev eth0 src 10.2.13.154
> Error: either "to" is duplicate, or "169.254.0.0/16" is a garbage.
>
> The route list:
>
> xen-d:~ # ip route list
> default via 10.2.13.1 dev eth0
> 10.2.13.0/24 dev eth0 proto kernel scope link src 10.2.13.54
> 127.0.0.0/8 dev lo scope link
> 169.254.0.0/16 dev eth0 scope link
>
> It seems like the last entry confuses the new calculation code.

It turns out that the problem is here (nothing to do with your
patch):

NETWORK=`ip route list dev $INTERFACE scope link|grep -o '^[^ ]*'`

Perhaps we should do:

NETWORK=`ip route list dev $INTERFACE match $ipaddress scope link|grep -o '^[^ ]*'`

Opinions?

Thanks,

Dejan


> Cheers,
>
> Dejan
>
> > Testing: monitor
> > OK
> > Stopping resource
> > Testing: monitor
> > No preferred source address defined
> > Testing: stopping a stopped resource
> > INFO: No preferred source address defined, nothing to stop
> > Testing: monitor
> > No preferred source address defined
> > Checking for migrate_to action
> > usage: /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr {start|stop|status|monitor|validate-all|meta-data}
> > Checking for reload action
> > usage: /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr {start|stop|status|monitor|validate-all|meta-data}
> > * Your agent does not support the reload action (optional)
> > /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr passed all tests
> >
> >
> > Case2) I carry it out after improving an address by ip command.
> > [root@rh57-3 ClusterLabs-resource-agents-7edbe1d]# ip addr add 192.168.40.7/24 brd 192.168.40.255 dev eth0
> > [root@rh57-3 ClusterLabs-resource-agents-7edbe1d]# ocf-tester -v -n IPsrcaddr -o ipaddress=192.168.40.7 /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr
> > Beginning tests for /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr...
> > Testing permissions with uid nobody
> > Testing: meta-data
> > Testing: meta-data
> > <?xml version="1.0"?>
> > <!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd">
> > <resource-agent name="IPsrcaddr">
> > <version>1.0</version>
> >
> > <longdesc lang="en">
> > Resource script for IPsrcaddr. It manages the preferred source address
> > modification.
> > </longdesc>
> > <shortdesc lang="en">Manages the preferred source address for outgoing IP packets</shortdesc>
> >
> > <parameters>
> > <parameter name="ipaddress" unique="0" required="1">
> > <longdesc lang="en">
> > The IP address.
> > </longdesc>
> > <shortdesc lang="en">IP address</shortdesc>
> > <content type="string" default="" />
> > </parameter>
> >
> > <parameter name="cidr_netmask">
> > <longdesc lang="en">
> > The netmask for the interface in CIDR format. (ie, 24), or in
> > dotted quad notation 255.255.255.0).
> > </longdesc>
> > <shortdesc lang="en">Netmask</shortdesc>
> > <content type="string" default=""/>
> > </parameter>
> > </parameters>
> >
> > <actions>
> > <action name="start" timeout="20s" />
> > <action name="stop" timeout="20s" />
> > <action name="monitor" depth="0" timeout="20s" interval="10" />
> > <action name="validate-all" timeout="5" />
> > <action name="meta-data" timeout="5" />
> > </actions>
> > </resource-agent>
> > Testing: validate-all
> > Checking current state
> > No preferred source address defined
> > Testing: monitor
> > No preferred source address defined
> > Testing: monitor
> > ERROR: Setup problem: couldn't find command: gawk
> > Testing: start
> > Testing: monitor
> > OK
> > Testing: monitor
> > OK
> > Testing: notify
> > usage: /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr {start|stop|status|monitor|validate-all|meta-data}
> > * Your agent does not support the notify action (optional)
> > Checking for demote action
> > usage: /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr {start|stop|status|monitor|validate-all|meta-data}
> > * Your agent does not support the demote action (optional)
> > Checking for promote action
> > usage: /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr {start|stop|status|monitor|validate-all|meta-data}
> > * Your agent does not support the promote action (optional)
> > * Your agent does not support master/slave (optional)
> > Testing: stop
> > Testing: monitor
> > No preferred source address defined
> > Restarting resource...
> > Testing: monitor
> > OK
> > Testing: starting a started resource
> > INFO: The ip route has been already set.(192.168.40.0/24, eth0, default via 192.168.40.1 dev eth0 )
> > Testing: monitor
> > OK
> > Stopping resource
> > Testing: monitor
> > No preferred source address defined
> > Testing: stopping a stopped resource
> > INFO: No preferred source address defined, nothing to stop
> > Testing: monitor
> > No preferred source address defined
> > Checking for migrate_to action
> > usage: /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr {start|stop|status|monitor|validate-all|meta-data}
> > Checking for reload action
> > usage: /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr {start|stop|status|monitor|validate-all|meta-data}
> > * Your agent does not support the reload action (optional)
> > /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr passed all tests
> >
> > Case3) I carry it out without improving an address.
> > [root@rh57-3 ClusterLabs-resource-agents-7edbe1d]# ocf-tester -v -n IPsrcaddr -o ipaddress=192.168.40.7 /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr
> > Beginning tests for /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr...
> > Testing permissions with uid nobody
> > Testing: meta-data
> > Testing: meta-data
> > <?xml version="1.0"?>
> > <!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd">
> > <resource-agent name="IPsrcaddr">
> > <version>1.0</version>
> >
> > <longdesc lang="en">
> > Resource script for IPsrcaddr. It manages the preferred source address
> > modification.
> > </longdesc>
> > <shortdesc lang="en">Manages the preferred source address for outgoing IP packets</shortdesc>
> >
> > <parameters>
> > <parameter name="ipaddress" unique="0" required="1">
> > <longdesc lang="en">
> > The IP address.
> > </longdesc>
> > <shortdesc lang="en">IP address</shortdesc>
> > <content type="string" default="" />
> > </parameter>
> >
> > <parameter name="cidr_netmask">
> > <longdesc lang="en">
> > The netmask for the interface in CIDR format. (ie, 24), or in
> > dotted quad notation 255.255.255.0).
> > </longdesc>
> > <shortdesc lang="en">Netmask</shortdesc>
> > <content type="string" default=""/>
> > </parameter>
> > </parameters>
> >
> > <actions>
> > <action name="start" timeout="20s" />
> > <action name="stop" timeout="20s" />
> > <action name="monitor" depth="0" timeout="20s" interval="10" />
> > <action name="validate-all" timeout="5" />
> > <action name="meta-data" timeout="5" />
> > </actions>
> > </resource-agent>
> > Testing: validate-all
> > Checking current state
> > No preferred source address defined
> > Testing: monitor
> > No preferred source address defined
> > Testing: monitor
> > ERROR: Setup problem: couldn't find command: gawk
> > Testing: start
> > RTNETLINK answers: Invalid argument
> > ERROR: command 'ip route replace 192.168.40.0/24 dev eth0 src 192.168.40.7' failed
> > * rc=1: Start failed. Did you supply enough options with -o ?
> > Aborting tests
> >
> > The third case thinks that it is right to become the error.
> >
> > > > 2012/01/23_21:39:40 ERROR: IP address [127.0.0.3] is a loopback
> > > > address, thus can not be preferred source address
> >
> > Which case is the test that you carried out?
> >
> > Because the processing that the loopback address is not usable enters in IPsrcaddr, the error seems to be displayed.
> >
> > (snip)
> > if [ $1 -eq 127 ]; then
> > ocf_log err "IP address [$ip] is a loopback address, thus can not be preferred source address"
> > exit $OCF_ERR_CONFIGURED
> > fi
> > (snip)
> >
> > Processing to improve an address in ocf-tester is necessary to automatically carry it out.
> >
> > Best Regards,
> > Hideo Yamauchi.
> >
> >
> > --- On Tue, 2012/1/24, renayama19661014@ybb.ne.jp <renayama19661014@ybb.ne.jp> wrote:
> >
> > > Hi Dejan,
> > >
> > > > > How about the patch of this place?
> > > >
> > > > Applied. Thanks for the patch.
> > >
> > > Many Thanks!!
> > >
> > > > Now the ocft test fails:
> > > >
> > > > 2012/01/23_21:39:40 ERROR: IP address [127.0.0.3] is a loopback
> > > > address, thus can not be preferred source address
> > > >
> > > > Any idea how to update the ocft test case?
> > >
> > > I try this problem, too.
> > >
> > > Best Regards,
> > > Hideo Yamauchi.
> > >
> > >
> > > --- On Tue, 2012/1/24, Dejan Muhamedagic <dejan@suse.de> wrote:
> > >
> > > > Hi Hideo-san,
> > > >
> > > > On Mon, Jan 23, 2012 at 09:09:57AM +0900, renayama19661014@ybb.ne.jp wrote:
> > > > > Hi Dejan,
> > > > >
> > > > > How about the patch of this place?
> > > >
> > > > Applied. Thanks for the patch.
> > > >
> > > > Now the ocft test fails:
> > > >
> > > > 2012/01/23_21:39:40 ERROR: IP address [127.0.0.3] is a loopback
> > > > address, thus can not be preferred source address
> > > >
> > > > Any idea how to update the ocft test case?
> > > >
> > > > Cheers,
> > > >
> > > > Dejan
> > > >
> > > >
> > > >
> > > > > Best Regards,
> > > > > Hideo Yamauchi.
> > > > >
> > > > >
> > > > > --- On Mon, 2012/1/16, renayama19661014@ybb.ne.jp <renayama19661014@ybb.ne.jp> wrote:
> > > > >
> > > > > > Hi Dejan,
> > > > > >
> > > > > > Thank you for comments.
> > > > > >
> > > > > > > On Tue, Nov 29, 2011 at 02:49:24PM +0900, renayama19661014@ybb.ne.jp wrote:
> > > > > > > > Hi All,
> > > > > > > >
> > > > > > > > We made a patch to IPsrcaddr.
> > > > > > > >
> > > > > > > > This patch revises the next point.
> > > > > > > >
> > > > > > > >  * Made modifications to carry out validate_all processing.
> > > > > > >
> > > > > > > I'm not necessarily against it, but I wonder why. This would make
> > > > > > > monitor validate the environment every time. Is that really
> > > > > > > necessary? What was your motivation for this change?
> > > > > >
> > > > > > I think that the handling of validate-all should be carried out in the same way as other RA.
> > > > > > Therefore we suggested this correction.
> > > > > >  * All RA is not same, but give readability and conservatism if it is similar constitution.
> > > > > > >
> > > > > > > >  * Undefined and deleted the unused IPROUTE variable
> > > > > > >
> > > > > > > OK.
> > > > > > >
> > > > > > > >  * The find_interface_generic processing revised it to search it by ip command.
> > > > > > >
> > > > > > > Good.
> > > > > > >
> > > > > > > > However, we cannot test environment except Linux.
> > > > > > > > Therefore, we limited a condition to carry out processing to environment of Linux.
> > > > > > >
> > > > > > > That's fine too.
> > > > > >
> > > > > > Many Thanks!
> > > > > > Hideo Yamauchi.
> > > > > >
> > > > > >
> > > > > > >
> > > > > > > Cheers,
> > > > > > >
> > > > > > > Dejan
> > > > > > >
> > > > > > > > (snip)
> > > > > > > > @@ -458,6 +440,10 @@
> > > > > > > > 
> > > > > > > >  ipaddress="$OCF_RESKEY_ipaddress"
> > > > > > > > 
> > > > > > > > +if [ "x$SYSTYPE" = "xLinux" ]; then
> > > > > > > > +    srca_validate_all
> > > > > > > > +fi
> > > > > > > > +
> > > > > > > > (snip)
> > > > > > > >
> > > > > > > >
> > > > > > > > Please please confirm my correction.
> > > > > > > > And please commit a correction.
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > Best Regards,
> > > > > > > > Hideo Yamauchi
> > > > > > >
> > > > > > > > diff -r e4d9d86a9577 IPsrcaddr
> > > > > > > > --- a/IPsrcaddr    Mon Nov 28 20:02:26 2011 +0900
> > > > > > > > +++ b/IPsrcaddr    Mon Nov 28 20:03:07 2011 +0900
> > > > > > > > @@ -307,35 +307,14 @@
> > > > > > > >  #
> > > > > > > >  find_interface_generic() {
> > > > > > > > 
> > > > > > > > -  $IFCONFIG $IFCONFIG_A_OPT  |
> > > > > > > > -  while read ifname linkstuff
> > > > > > > > -  do
> > > > > > > > -    : Read gave us ifname = $ifname
> > > > > > > > -
> > > > > > > > -    read inet addr junk
> > > > > > > > -    : Read gave us inet = $inet addr = $addr
> > > > > > > > -
> > > > > > > > -    while
> > > > > > > > -      read line && [ "X$line" != "X" ]
> > > > > > > > -    do
> > > > > > > > -      : Nothing
> > > > > > > > -    done
> > > > > > > > -
> > > > > > > > -    case "$SYSTYPE" in
> > > > > > > > -      *BSD)
> > > > > > > > -        $IFCONFIG | grep "$BASEIP" -B`$IFCONFIG | grep -c inet` | grep "UP," | cut -d ":" -f 1
> > > > > > > > -        return 0;;
> > > > > > > > -      *)
> > > > > > > > -            : "comparing $BASEIP to $addr (from ifconfig)"
> > > > > > > > -        case $addr in
> > > > > > > > -          addr:$BASEIP)    echo $ifname; return $OCF_SUCCESS;;
> > > > > > > > -          $BASEIP)    echo $ifname; return $OCF_SUCCESS;;
> > > > > > > > -            esac
> > > > > > > > -        continue;;
> > > > > > > > -    esac
> > > > > > > > -
> > > > > > > > -  done
> > > > > > > > -  return $OCF_ERR_GENERIC
> > > > > > > > +    local iface=`$IP2UTIL -o -f inet addr show | grep "\ $BASEIP" \
> > > > > > > > +            | cut -d ' ' -f2 | grep -v '^ipsec[0-9][0-9]*$'`
> > > > > > > > +        if [ -z "$iface" ]; then
> > > > > > > > +            return $OCF_ERR_GENERIC
> > > > > > > > +        else
> > > > > > > > +            echo $iface
> > > > > > > > +            return $OCF_SUCCESS
> > > > > > > > +        fi
> > > > > > > >  }
> > > > > > > > 
> > > > > > > > 
> > > > > > > > @@ -409,7 +388,6 @@
> > > > > > > >  srca_validate_all() {
> > > > > > > > 
> > > > > > > >      check_binary $AWK
> > > > > > > > -    check_binary $IPROUTE
> > > > > > > >      check_binary $IFCONFIG
> > > > > > > > 
> > > > > > > >  #    The IP address should be in good shape
> > > > > > > > @@ -420,6 +398,10 @@
> > > > > > > >        exit $OCF_ERR_CONFIGURED
> > > > > > > >      fi
> > > > > > > > 
> > > > > > > > +    if ocf_is_probe; then
> > > > > > > > +      return $OCF_SUCCESS
> > > > > > > > +    fi
> > > > > > > > +
> > > > > > > >  #    We should serve this IP address of course
> > > > > > > >      if ip_status "$ipaddress"; then
> > > > > > > >        :
> > > > > > > > @@ -458,6 +440,10 @@
> > > > > > > > 
> > > > > > > >  ipaddress="$OCF_RESKEY_ipaddress"
> > > > > > > > 
> > > > > > > > +if [ "x$SYSTYPE" = "xLinux" ]; then
> > > > > > > > +    srca_validate_all
> > > > > > > > +fi
> > > > > > > > +
> > > > > > > >  findif_out=`$FINDIF -C`
> > > > > > > >  rc=$?
> > > > > > > >  [ $rc -ne 0 ] && {
> > > > > > >
> > > > > > > > _______________________________________________________
> > > > > > > > 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/
> > > > > > >
> > > > > > >
> > > > > >
> > > > > _______________________________________________________
> > > > > 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/
> > > >
> > > _______________________________________________________
> > > 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/
> > >
> > _______________________________________________________
> > 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/
> _______________________________________________________
> 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/
_______________________________________________________
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/
Re: [Patch] Patch for IPsrcaddr.(2/2) [ In reply to ]
Hi Dejan,

Thank you for comments.

> > > > > Now the ocft test fails:
> > > > >
> > > > > 2012/01/23_21:39:40 ERROR: IP address [127.0.0.3] is a loopback
> > > > > address, thus can not be preferred source address
> > > > >
> > > > > Any idea how to update the ocft test case?
> > > >
> > > > I try this problem, too.
> > >
> > > I carried out ocf-tester with three cases.
> > >
> > > Case1) I carry it out after improving an address by ifconfig command.
> > >
> > > [root@rh57-3 ClusterLabs-resource-agents-7edbe1d]# ifconfig eth0:1 192.168.40.7 up
> > > [root@rh57-3 ClusterLabs-resource-agents-7edbe1d]# ocf-tester -v -n IPsrcaddr -o ipaddress=192.168.40.7 /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr
> > > Beginning tests for /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr...
> > > Testing permissions with uid nobody
> > > Testing: meta-data
> > [...] [Note to myself: drop the meta-data output]
> > > ERROR: Setup problem: couldn't find command: gawk
> >
> > Install gawk perhaps?

I am mysterious...gwak had been already installed, but this error seemed to be given.

The next environment variable(OCF_TESTER_FAIL_HAVE_BINARY) of ocf-tester seems to influence it somehow or other.

(snip)
OCF_TESTER_FAIL_HAVE_BINARY=1
export OCF_TESTER_FAIL_HAVE_BINARY
OCF_RESKEY_CRM_meta_interval=0
test_command monitor
(snip)

Similar error occurs in IPaddr2.

[root@rh57-3 heartbeat]# ocf-tester -v -n IPaddr2 -o ip=192.168.40.8 /usr/lib/ocf/resource.d/heartbeat/IPaddr2
Beginning tests for /usr/lib/ocf/resource.d/heartbeat/IPaddr2...
Testing permissions with uid nobody
(snip)
Checking current state
Testing: monitor
Testing: monitor
ERROR: Setup problem: couldn't find command: ip
Testing: start
(snip)

Is not a correction of ocf-tester necessary?

> >
> > [...]
> > > INFO: The ip route has been already set.(192.168.40.0/24, eth0, default via 192.168.40.1 dev eth0 )
> >
> > Hmm, I saw different stuff:
> >
> > ERROR: command 'ip route replace 10.2.13.0/24 169.254.0.0/16 dev eth0 src 10.2.13.154' failed
> >
> > Debugging:
> >
> > + ip route replace 10.2.13.0/24 169.254.0.0/16 dev eth0 src 10.2.13.154
> > Error: either "to" is duplicate, or "169.254.0.0/16" is a garbage.
> >
> > The route list:
> >
> > xen-d:~ # ip route list
> > default via 10.2.13.1 dev eth0
> > 10.2.13.0/24 dev eth0  proto kernel  scope link  src 10.2.13.54
> > 127.0.0.0/8 dev lo  scope link
> > 169.254.0.0/16 dev eth0  scope link
> >
> > It seems like the last entry confuses the new calculation code.

In my environment, I set it in NOZEROCONF=yes.
Therefore, the last entry does not exist.

>
> It turns out that the problem is here (nothing to do with your
> patch):
>
> NETWORK=`ip route list dev $INTERFACE scope link|grep -o '^[^ ]*'`
>
> Perhaps we should do:
>
> NETWORK=`ip route list dev $INTERFACE match $ipaddress scope link|grep -o '^[^ ]*'`
>
> Opinions?

I think that the method that you showed is more right.

Best Regards,
Hideo Yamauchi.

_______________________________________________________
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/
Re: [Patch] Patch for IPsrcaddr.(2/2) [ In reply to ]
Hi Hideo-san,

On Wed, Jan 25, 2012 at 10:09:26AM +0900, renayama19661014@ybb.ne.jp wrote:
> Hi Dejan,
>
> Thank you for comments.
>
> > > > > > Now the ocft test fails:
> > > > > >
> > > > > > 2012/01/23_21:39:40 ERROR: IP address [127.0.0.3] is a loopback
> > > > > > address, thus can not be preferred source address
> > > > > >
> > > > > > Any idea how to update the ocft test case?
> > > > >
> > > > > I try this problem, too.
> > > >
> > > > I carried out ocf-tester with three cases.
> > > >
> > > > Case1) I carry it out after improving an address by ifconfig command.
> > > >
> > > > [root@rh57-3 ClusterLabs-resource-agents-7edbe1d]# ifconfig eth0:1 192.168.40.7 up
> > > > [root@rh57-3 ClusterLabs-resource-agents-7edbe1d]# ocf-tester -v -n IPsrcaddr -o ipaddress=192.168.40.7 /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr
> > > > Beginning tests for /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr...
> > > > Testing permissions with uid nobody
> > > > Testing: meta-data
> > > [...] [Note to myself: drop the meta-data output]
> > > > ERROR: Setup problem: couldn't find command: gawk
> > >
> > > Install gawk perhaps?
>
> I am mysterious...gwak had been already installed, but this error seemed to be given.

Sorry, it was my mistake. ocf-tester does this on purpose.

> The next environment variable(OCF_TESTER_FAIL_HAVE_BINARY) of ocf-tester seems to influence it somehow or other.
>
> (snip)
> OCF_TESTER_FAIL_HAVE_BINARY=1
> export OCF_TESTER_FAIL_HAVE_BINARY
> OCF_RESKEY_CRM_meta_interval=0
> test_command monitor
> (snip)
>
> Similar error occurs in IPaddr2.
>
> [root@rh57-3 heartbeat]# ocf-tester -v -n IPaddr2 -o ip=192.168.40.8 /usr/lib/ocf/resource.d/heartbeat/IPaddr2
> Beginning tests for /usr/lib/ocf/resource.d/heartbeat/IPaddr2...
> Testing permissions with uid nobody
> (snip)
> Checking current state
> Testing: monitor
> Testing: monitor
> ERROR: Setup problem: couldn't find command: ip
> Testing: start
> (snip)
>
> Is not a correction of ocf-tester necessary?
>
> > >
> > > [...]
> > > > INFO: The ip route has been already set.(192.168.40.0/24, eth0, default via 192.168.40.1 dev eth0 )
> > >
> > > Hmm, I saw different stuff:
> > >
> > > ERROR: command 'ip route replace 10.2.13.0/24 169.254.0.0/16 dev eth0 src 10.2.13.154' failed
> > >
> > > Debugging:
> > >
> > > + ip route replace 10.2.13.0/24 169.254.0.0/16 dev eth0 src 10.2.13.154
> > > Error: either "to" is duplicate, or "169.254.0.0/16" is a garbage.
> > >
> > > The route list:
> > >
> > > xen-d:~ # ip route list
> > > default via 10.2.13.1 dev eth0
> > > 10.2.13.0/24 dev eth0  proto kernel  scope link  src 10.2.13.54
> > > 127.0.0.0/8 dev lo  scope link
> > > 169.254.0.0/16 dev eth0  scope link
> > >
> > > It seems like the last entry confuses the new calculation code.
>
> In my environment, I set it in NOZEROCONF=yes.
> Therefore, the last entry does not exist.

Right. But it's still better that the RA can handle this
situation too.

> > It turns out that the problem is here (nothing to do with your
> > patch):
> >
> > NETWORK=`ip route list dev $INTERFACE scope link|grep -o '^[^ ]*'`
> >
> > Perhaps we should do:
> >
> > NETWORK=`ip route list dev $INTERFACE match $ipaddress scope link|grep -o '^[^ ]*'`
> >
> > Opinions?
>
> I think that the method that you showed is more right.

OK. Applied that too. The ocft test passes, but cannot work
without specifying the existing address. I'm not sure, but I
think that ocft cannot ask for user input, so the test is going
to be semi-automatic.

Cheers,

Dejan

> Best Regards,
> Hideo Yamauchi.
>
> _______________________________________________________
> 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/
_______________________________________________________
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/
Re: [Patch] Patch for IPsrcaddr.(2/2) [ In reply to ]
Hi Dejan,

Thank you for comments.

> OK. Applied that too. The ocft test passes, but cannot work
> without specifying the existing address. I'm not sure, but I
> think that ocft cannot ask for user input, so the test is going
> to be semi-automatic.

All right!
I confirmed the next contents.
* https://github.com/ClusterLabs/resource-agents/commit/9cd054d15112bd7053763c7655059a07e07f4e69
* https://github.com/ClusterLabs/resource-agents/commit/7bfd0597a1d2efcd4cd2f579675510cff725ec17

Many thanks!!
Hideo Yamauchi.

--- On Sat, 2012/1/28, Dejan Muhamedagic <dejan@suse.de> wrote:

> Hi Hideo-san,
>
> On Wed, Jan 25, 2012 at 10:09:26AM +0900, renayama19661014@ybb.ne.jp wrote:
> > Hi Dejan,
> >
> > Thank you for comments.
> >
> > > > > > > Now the ocft test fails:
> > > > > > >
> > > > > > > 2012/01/23_21:39:40 ERROR: IP address [127.0.0.3] is a loopback
> > > > > > > address, thus can not be preferred source address
> > > > > > >
> > > > > > > Any idea how to update the ocft test case?
> > > > > >
> > > > > > I try this problem, too.
> > > > >
> > > > > I carried out ocf-tester with three cases.
> > > > >
> > > > > Case1) I carry it out after improving an address by ifconfig command.
> > > > >
> > > > > [root@rh57-3 ClusterLabs-resource-agents-7edbe1d]# ifconfig eth0:1 192.168.40.7 up
> > > > > [root@rh57-3 ClusterLabs-resource-agents-7edbe1d]# ocf-tester -v -n IPsrcaddr -o ipaddress=192.168.40.7 /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr
> > > > > Beginning tests for /usr/lib/ocf/resource.d/heartbeat/IPsrcaddr...
> > > > > Testing permissions with uid nobody
> > > > > Testing: meta-data
> > > > [...] [Note to myself: drop the meta-data output]
> > > > > ERROR: Setup problem: couldn't find command: gawk
> > > >
> > > > Install gawk perhaps?
> >
> > I am mysterious...gwak had been already installed, but this error seemed to be given.
>
> Sorry, it was my mistake. ocf-tester does this on purpose.
>
> > The next environment variable(OCF_TESTER_FAIL_HAVE_BINARY) of ocf-tester seems to influence it somehow or other.
> >
> > (snip)
> > OCF_TESTER_FAIL_HAVE_BINARY=1
> > export OCF_TESTER_FAIL_HAVE_BINARY
> > OCF_RESKEY_CRM_meta_interval=0
> > test_command monitor
> > (snip)
> >
> > Similar error occurs in IPaddr2.
> >
> > [root@rh57-3 heartbeat]# ocf-tester -v -n IPaddr2 -o ip=192.168.40.8 /usr/lib/ocf/resource.d/heartbeat/IPaddr2
> > Beginning tests for /usr/lib/ocf/resource.d/heartbeat/IPaddr2...
> > Testing permissions with uid nobody
> > (snip)
> > Checking current state
> > Testing: monitor
> > Testing: monitor
> > ERROR: Setup problem: couldn't find command: ip
> > Testing: start
> > (snip)
> >
> > Is not a correction of ocf-tester necessary?
> >
> > > >
> > > > [...]
> > > > > INFO: The ip route has been already set.(192.168.40.0/24, eth0, default via 192.168.40.1 dev eth0 )
> > > >
> > > > Hmm, I saw different stuff:
> > > >
> > > > ERROR: command 'ip route replace 10.2.13.0/24 169.254.0.0/16 dev eth0 src 10.2.13.154' failed
> > > >
> > > > Debugging:
> > > >
> > > > + ip route replace 10.2.13.0/24 169.254.0.0/16 dev eth0 src 10.2.13.154
> > > > Error: either "to" is duplicate, or "169.254.0.0/16" is a garbage.
> > > >
> > > > The route list:
> > > >
> > > > xen-d:~ # ip route list
> > > > default via 10.2.13.1 dev eth0
> > > > 10.2.13.0/24 dev eth0  proto kernel  scope link  src 10.2.13.54
> > > > 127.0.0.0/8 dev lo  scope link
> > > > 169.254.0.0/16 dev eth0  scope link
> > > >
> > > > It seems like the last entry confuses the new calculation code.
> >
> > In my environment, I set it in NOZEROCONF=yes.
> > Therefore, the last entry does not exist.
>
> Right. But it's still better that the RA can handle this
> situation too.
>
> > > It turns out that the problem is here (nothing to do with your
> > > patch):
> > >
> > > NETWORK=`ip route list dev $INTERFACE scope link|grep -o '^[^ ]*'`
> > >
> > > Perhaps we should do:
> > >
> > > NETWORK=`ip route list dev $INTERFACE match $ipaddress scope link|grep -o '^[^ ]*'`
> > >
> > > Opinions?
> >
> > I think that the method that you showed is more right.
>
> OK. Applied that too. The ocft test passes, but cannot work
> without specifying the existing address. I'm not sure, but I
> think that ocft cannot ask for user input, so the test is going
> to be semi-automatic.
>
> Cheers,
>
> Dejan
>
> > Best Regards,
> > Hideo Yamauchi.
> >
> > _______________________________________________________
> > 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/
>
_______________________________________________________
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/