[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