[netcf-devel] [PATCH 1/2] redhat-put: fix identification of bonds with no slaves
Laine Stump
laine at laine.org
Thu May 28 20:53:22 UTC 2015
On 05/28/2015 04:36 PM, Laine Stump wrote:
> From: Lubomir Rintel <lkundrak at v3.sk>
>
> bond devices with no slaves were being misidentified as plain ethernet
> devices. This patch checks for BONDING_OPTS in the bond's own ifcfg
> file rather than looking for other ifcfg files that list this one as
> MASTER.
(The above description was added by me. Please correct if it's wrong)
As a complete novice with xslt, this is what I understand from that code
(someone else wrote all of the xslt in netcf, and it has sat mostly
dormant for several years).
>
> $ cat /etc/sysconfig/network-scripts/ifcfg-bond
> DEVICE=nm-bond
> TYPE=Bond
> BONDING_MASTER=yes
> BOOTPROTO=none
> DEFROUTE=yes
> IPV4_FAILURE_FATAL=no
> IPV6INIT=yes
> IPV6_AUTOCONF=yes
> IPV6_DEFROUTE=yes
> IPV6_FAILURE_FATAL=no
> NAME=bond
> UUID=66a3c5c4-1106-4a86-aa33-18ac5c7c20f2
> ONBOOT=yes
> BONDING_OPTS=mode=balance-rr
> IPADDR=1.2.3.4
> PREFIX=8
> IPV6_PEERDNS=yes
> IPV6_PEERROUTES=yes
>
> $ ncftool dumpxml nm-bond
> <?xml version="1.0"?>
> <interface type="ethernet" name="nm-bond">
> <start mode="onboot"/>
> <protocol family="ipv4">
> <ip address="1.2.3.4" prefix="8"/>
> </protocol>
> <protocol family="ipv6">
> <autoconf/>
> </protocol>
> </interface>
> ---
> data/xml/redhat-put.xsl | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/data/xml/redhat-put.xsl b/data/xml/redhat-put.xsl
> index ed56c66..21bd4ce 100644
> --- a/data/xml/redhat-put.xsl
> +++ b/data/xml/redhat-put.xsl
> @@ -135,7 +135,7 @@
> </xsl:template>
>
> <xsl:template name="bond-interface"
> - match="tree[node[@label = 'DEVICE'][@value = //tree/node[@label = 'MASTER']/@value]][count(node[@label = 'BRIDGE']) = 0]">
> + match="tree[count(node[@label = 'BONDING_OPTS']) > 0][count(node[@label = 'BRIDGE']) = 0]">
> <interface type="bond">
> <xsl:call-template name="name-attr"/>
> <xsl:call-template name="startmode"/>
I *think* ACK, but I have a couple of questions before I push this:
1) Is a BONDING_OPTS attribute required in an ifcfg file for a bond? If
it is, this change is okay, but if not we will need to find some other
way to identify bond devices.
2) what does the "[count(node[@label = 'BRIDGE']) = 0]" do? does that
exclude from the match any ifcfg that has an attribute named "BRIDGE"?
If so, that doesn't seem correct, because it's acceptable for a bond
device to be attached to a bridge. (yes, I know that part was in the
expression before, but as I said this code was written by someone else
and has been mostly untouched for 4 years or so).
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.fedorahosted.org/pipermail/netcf-devel/attachments/20150528/96ced9d1/attachment.html>
More information about the netcf-devel
mailing list