[netcf-devel] [PATCH 5/7] Moving bonding option-handling outside of initscripts-*.xsl
Jonas Eriksson
jonas.j.eriksson at ericsson.com
Thu Jul 23 12:37:06 UTC 2009
initscripts-get.xsl: Creation of
/forest/tree/node[@label = 'BONDING_OPTS']/@value moved to
util-get.xsl.
initscripts-put.xsl: Creation of /interface/bond-tree moved to
util-put.xsl.
Added util-get.xsl and util-put.xsl contaning bonding opts-templates.
---
data/xml/initscripts-get.xsl | 22 +++-------------------
data/xml/initscripts-put.xsl | 36 +++++-------------------------------
data/xml/util-get.xsl | 27 +++++++++++++++++++++++++++
data/xml/util-put.xsl | 41 +++++++++++++++++++++++++++++++++++++++++
4 files changed, 76 insertions(+), 50 deletions(-)
create mode 100644 data/xml/util-get.xsl
create mode 100644 data/xml/util-put.xsl
diff --git a/data/xml/initscripts-get.xsl b/data/xml/initscripts-get.xsl
index b2a9020..46e39b1 100644
--- a/data/xml/initscripts-get.xsl
+++ b/data/xml/initscripts-get.xsl
@@ -4,6 +4,8 @@
extension-element-prefixes="ipcalc"
version="1.0">
+ <xsl:import href="util-get.xsl"/>
+
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
@@ -98,25 +100,7 @@
<xsl:call-template name="interface-addressing"/>
<node label="BONDING_OPTS">
<xsl:attribute name="value">
- <xsl:text>'</xsl:text>
- <xsl:if test="bond/@mode">mode=<xsl:value-of select='bond/@mode'/></xsl:if>
- <xsl:if test="bond/@mode = 'active-backup'"> primary=<xsl:value-of select='bond/interface[1]/@name'/></xsl:if>
- <xsl:if test="bond/miimon">
- <xsl:text> miimon=</xsl:text><xsl:value-of select='bond/miimon/@freq'/>
- <xsl:if test="bond/miimon/@downdelay"><xsl:text> downdelay=</xsl:text><xsl:value-of select="bond/miimon/@downdelay"/></xsl:if>
- <xsl:if test="bond/miimon/@updelay"><xsl:text> updelay=</xsl:text><xsl:value-of select="bond/miimon/@updelay"/></xsl:if>
- <xsl:if test="bond/miimon/@carrier">
- <xsl:text> use_carrier=</xsl:text>
- <xsl:if test="bond/miimon/@carrier = 'ioctl'">0</xsl:if>
- <xsl:if test="bond/miimon/@carrier = 'netif'">1</xsl:if>
- </xsl:if>
- </xsl:if>
- <xsl:if test="bond/arpmon">
- <xsl:text> arp_interval=</xsl:text><xsl:value-of select="bond/arpmon/@interval"/>
- <xsl:text> arp_ip_target=</xsl:text><xsl:value-of select="bond/arpmon/@target"/>
- <xsl:if test="bond/arpmon/@validate"><xsl:text> arp_validate=</xsl:text><xsl:value-of select="bond/arpmon/@validate"/></xsl:if>
- </xsl:if>
- <xsl:text>'</xsl:text>
+ <xsl:call-template name="bonding-opts"/>
</xsl:attribute>
</node>
</tree>
diff --git a/data/xml/initscripts-put.xsl b/data/xml/initscripts-put.xsl
index 8df15c7..886a265 100644
--- a/data/xml/initscripts-put.xsl
+++ b/data/xml/initscripts-put.xsl
@@ -5,6 +5,8 @@
extension-element-prefixes="bond ipcalc"
version="1.0">
+ <xsl:import href="util-put.xsl"/>
+
<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*"/>
@@ -104,38 +106,10 @@
<xsl:call-template name="interface-addressing"/>
<bond>
<xsl:variable name="opts" select="node[@label = 'BONDING_OPTS']/@value"/>
- <xsl:variable name="mode" select="bond:option($opts, 'mode')"/>
+ <xsl:call-template name="bonding-opts">
+ <xsl:with-param name="opts" select="$opts"/>
+ </xsl:call-template>
<xsl:variable name="primary" select="bond:option($opts, 'primary')"/>
- <xsl:if test="string-length($mode) > 0">
- <xsl:attribute name="mode">
- <xsl:value-of select="$mode"/>
- </xsl:attribute>
- </xsl:if>
- <xsl:if test="bond:option($opts, 'miimon')">
- <miimon freq="{bond:option($opts, 'miimon')}">
- <xsl:if test="bond:option($opts, 'downdelay')"><xsl:attribute name="downdelay"><xsl:value-of select="bond:option($opts, 'downdelay')"/></xsl:attribute></xsl:if>
- <xsl:if test="bond:option($opts, 'updelay')"><xsl:attribute name="updelay"><xsl:value-of select="bond:option($opts, 'updelay')"/></xsl:attribute></xsl:if>
- <xsl:if test="bond:option($opts, 'use_carrier')">
- <xsl:attribute name="carrier">
- <xsl:if test="bond:option($opts, 'use_carrier') = '0'">ioctl</xsl:if>
- <xsl:if test="bond:option($opts, 'use_carrier') = '1'">netif</xsl:if>
- </xsl:attribute>
- </xsl:if>
- </miimon>
- </xsl:if>
- <xsl:if test="bond:option($opts, 'arp_interval')">
- <arpmon interval="{bond:option($opts, 'arp_interval')}" target="{bond:option($opts, 'arp_ip_target')}">
- <xsl:variable name="val" select="bond:option($opts, 'arp_validate')"/>
- <xsl:if test="$val">
- <xsl:attribute name="validate">
- <xsl:if test="$val = 'none' or $val = '0'">none</xsl:if>
- <xsl:if test="$val = 'active' or $val = '1'">active</xsl:if>
- <xsl:if test="$val = 'backup' or $val = '2'">backup</xsl:if>
- <xsl:if test="$val = 'all' or $val = '3'">all</xsl:if>
- </xsl:attribute>
- </xsl:if>
- </arpmon>
- </xsl:if>
<xsl:for-each select="/descendant-or-self::*[node[@label = 'MASTER' and @value = $iface]][node[@label = 'DEVICE' and @value = $primary]]">
<xsl:call-template name='bare-ethernet-interface'/>
</xsl:for-each>
diff --git a/data/xml/util-get.xsl b/data/xml/util-get.xsl
new file mode 100644
index 0000000..f3984ee
--- /dev/null
+++ b/data/xml/util-get.xsl
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+ <xsl:template name="bonding-opts">
+ <xsl:text>'</xsl:text>
+ <xsl:if test="bond/@mode">mode=<xsl:value-of select='bond/@mode'/></xsl:if>
+ <xsl:if test="bond/@mode = 'active-backup'"> primary=<xsl:value-of select='bond/interface[1]/@name'/></xsl:if>
+ <xsl:if test="bond/miimon">
+ <xsl:text> miimon=</xsl:text><xsl:value-of select='bond/miimon/@freq'/>
+ <xsl:if test="bond/miimon/@downdelay"><xsl:text> downdelay=</xsl:text><xsl:value-of select="bond/miimon/@downdelay"/></xsl:if>
+ <xsl:if test="bond/miimon/@updelay"><xsl:text> updelay=</xsl:text><xsl:value-of select="bond/miimon/@updelay"/></xsl:if>
+ <xsl:if test="bond/miimon/@carrier">
+ <xsl:text> use_carrier=</xsl:text>
+ <xsl:if test="bond/miimon/@carrier = 'ioctl'">0</xsl:if>
+ <xsl:if test="bond/miimon/@carrier = 'netif'">1</xsl:if>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="bond/arpmon">
+ <xsl:text> arp_interval=</xsl:text><xsl:value-of select="bond/arpmon/@interval"/>
+ <xsl:text> arp_ip_target=</xsl:text><xsl:value-of select="bond/arpmon/@target"/>
+ <xsl:if test="bond/arpmon/@validate"><xsl:text> arp_validate=</xsl:text><xsl:value-of select="bond/arpmon/@validate"/></xsl:if>
+ </xsl:if>
+ <xsl:text>'</xsl:text>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/data/xml/util-put.xsl b/data/xml/util-put.xsl
new file mode 100644
index 0000000..c1cd0b6
--- /dev/null
+++ b/data/xml/util-put.xsl
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:bond = "http://redhat.com/xslt/netcf/bond/1.0"
+ extension-element-prefixes="bond"
+ version="1.0">
+
+ <xsl:template name="bonding-opts">
+ <xsl:param name="opts" />
+ <xsl:variable name="mode" select="bond:option($opts, 'mode')"/>
+ <xsl:if test="string-length($mode) > 0">
+ <xsl:attribute name="mode">
+ <xsl:value-of select="$mode"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="bond:option($opts, 'miimon')">
+ <miimon freq="{bond:option($opts, 'miimon')}">
+ <xsl:if test="bond:option($opts, 'downdelay')"><xsl:attribute name="downdelay"><xsl:value-of select="bond:option($opts, 'downdelay')"/></xsl:attribute></xsl:if>
+ <xsl:if test="bond:option($opts, 'updelay')"><xsl:attribute name="updelay"><xsl:value-of select="bond:option($opts, 'updelay')"/></xsl:attribute></xsl:if>
+ <xsl:if test="bond:option($opts, 'use_carrier')">
+ <xsl:attribute name="carrier">
+ <xsl:if test="bond:option($opts, 'use_carrier') = '0'">ioctl</xsl:if>
+ <xsl:if test="bond:option($opts, 'use_carrier') = '1'">netif</xsl:if>
+ </xsl:attribute>
+ </xsl:if>
+ </miimon>
+ </xsl:if>
+ <xsl:if test="bond:option($opts, 'arp_interval')">
+ <arpmon interval="{bond:option($opts, 'arp_interval')}" target="{bond:option($opts, 'arp_ip_target')}">
+ <xsl:variable name="val" select="bond:option($opts, 'arp_validate')"/>
+ <xsl:if test="$val">
+ <xsl:attribute name="validate">
+ <xsl:if test="$val = 'none' or $val = '0'">none</xsl:if>
+ <xsl:if test="$val = 'active' or $val = '1'">active</xsl:if>
+ <xsl:if test="$val = 'backup' or $val = '2'">backup</xsl:if>
+ <xsl:if test="$val = 'all' or $val = '3'">all</xsl:if>
+ </xsl:attribute>
+ </xsl:if>
+ </arpmon>
+ </xsl:if>
+ </xsl:template>
+</xsl:stylesheet>
--
1.6.2
More information about the netcf-devel
mailing list