Hi Hideo-san,
On Tue, Jan 24, 2012 at 10:34:34AM +0900, [email protected] 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, [email protected]
> <[email protected]> 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 <[email protected]> wrote:
> >
> > > Hi Hideo-san,
> > >
> > > On Mon, Jan 23, 2012 at 09:09:57AM +0900, [email protected]
> > > 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, [email protected]
> > > > <[email protected]> wrote:
> > > >
> > > > > Hi Dejan,
> > > > >
> > > > > Thank you for comments.
> > > > >
> > > > > > On Tue, Nov 29, 2011 at 02:49:24PM +0900,
> > > > > > [email protected] 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: [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/
> > >
> > _______________________________________________________
> > 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/
_______________________________________________________
Linux-HA-Dev: [email protected]
http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
Home Page: http://linux-ha.org/