[ovs-dev] [PATCH 12/12] tests: Add basic unit tests for interface-reconfigure.

Ben Pfaff blp at nicira.com
Mon Feb 22 16:42:48 PST 2010


These tests are probably not perfect, and we could and should certainly
add more of them, but they should at least help us to notice when commits
change interface-reconfigure's behavior.
---
 tests/automake.mk              |    3 +-
 tests/interface-reconfigure.at |  910 ++++++++++++++++++++++++++++++++++++++++
 tests/testsuite.at             |    1 +
 3 files changed, 913 insertions(+), 1 deletions(-)
 create mode 100644 tests/interface-reconfigure.at

diff --git a/tests/automake.mk b/tests/automake.mk
index 920117f..e5cd0ec 100644
--- a/tests/automake.mk
+++ b/tests/automake.mk
@@ -38,7 +38,8 @@ TESTSUITE_AT = \
 	tests/ovsdb-monitor.at \
 	tests/ovsdb-idl.at \
 	tests/stp.at \
-	tests/ovs-vsctl.at
+	tests/ovs-vsctl.at \
+	tests/interface-reconfigure.at
 TESTSUITE = $(srcdir)/tests/testsuite
 DISTCLEANFILES += tests/atconfig tests/atlocal $(TESTSUITE)
 
diff --git a/tests/interface-reconfigure.at b/tests/interface-reconfigure.at
new file mode 100644
index 0000000..446cc7c
--- /dev/null
+++ b/tests/interface-reconfigure.at
@@ -0,0 +1,910 @@
+dnl IFR_SETUP
+dnl
+dnl Creates a directory tree for use with "interface-reconfigure --root-dir".
+m4_define([IFR_SETUP], 
+  [[for script in \
+        interface-reconfigure \
+        InterfaceReconfigure.py \
+        InterfaceReconfigureBridge.py \
+        InterfaceReconfigureVswitch.py
+    do
+        cp $top_srcdir/xenserver/opt_xensource_libexec_$script $script
+    done
+
+    mkdir -p etc
+    cat > etc/xensource-inventory <<EOF
+PRODUCT_BRAND='XenServer'
+PRODUCT_NAME='xenenterprise'
+PRODUCT_VERSION='5.5.0'
+BUILD_NUMBER='24648p'
+KERNEL_VERSION='2.6.18-128.1.6.el5.xs5.5.0.505.1024xen'
+XEN_VERSION='3.3.1'
+INSTALLATION_DATE='2010-02-10 16:45:28.748345'
+PRIMARY_DISK='/dev/disk/by-id/scsi-360022190add7fc001241a14e0ee3e85c'
+BACKUP_PARTITION='/dev/disk/by-id/scsi-360022190add7fc001241a14e0ee3e85c-part2'
+INSTALLATION_UUID='852ee692-71b4-439e-abfb-0eba72dc85f0'
+CONTROL_DOMAIN_UUID='44e6b66e-3074-4a3c-bbcd-756d845a3b56'
+DEFAULT_SR_PHYSDEVS='/dev/sda3'
+DOM0_MEM='752'
+MANAGEMENT_INTERFACE='xenbr2'
+EOF
+
+    mkdir -p etc/xensource
+    echo vswitch > etc/xensource/network.conf
+
+    for utility in \
+        sbin/ethtool \
+        sbin/ifconfig \
+        sbin/ifdown \
+        sbin/ifup \
+        sbin/ip \
+        sbin/update-issue \
+        sbin/vconfig \
+        usr/bin/ovs-vsctl \
+        usr/sbin/brctl
+    do
+        mkdir -p `dirname $utility`
+        cat > $utility <<'EOF'
+#! /bin/sh
+echo ${0} ${*} >&2
+EOF
+        chmod +x $utility
+    done
+
+    mkdir -p etc/sysconfig/network-scripts
+    configure_netdev () {
+        mkdir -p sys/class/net/${1}
+        echo ${2} > sys/class/net/${1}/address
+        echo ${3} > sys/class/net/${1}/tx_queue_len
+
+        : >> etc/sysconfig/network-scripts/ifcfg-${1}
+    }
+
+    configure_netdev lo   00:00:00:00:00:00 0
+    configure_netdev eth0 00:22:19:22:4b:af 1000
+    configure_netdev eth1 00:22:19:22:4b:b1 1000
+    configure_netdev eth2 00:15:17:a0:29:80 1000
+    configure_netdev eth3 00:15:17:a0:29:81 1000
+    configure_netdev eth4 00:1b:21:29:ce:51 1000
+
+    mkdir -p var/xapi
+    cat > var/xapi/network.dbcache <<'EOF'
+<?xml version="1.0" ?>
+<xenserver-network-configuration>
+	<pif ref="OpaqueRef:e0955887-571f-17fc-a971-61c1ec7d81b6">
+		<VLAN_slave_of/>
+		<management>
+			False
+		</management>
+		<bond_slave_of>
+			OpaqueRef:86d81bcf-0d25-90b2-cb11-af2007bd586e
+		</bond_slave_of>
+		<uuid>
+			bd62a141-091f-3909-e334-0334f67ff3be
+		</uuid>
+		<IP>
+			
+		</IP>
+		<VLAN_master_of>
+			OpaqueRef:NULL
+		</VLAN_master_of>
+		<VLAN>
+			-1
+		</VLAN>
+		<netmask>
+			
+		</netmask>
+		<other_config/>
+		<MAC>
+			00:22:19:22:4b:af
+		</MAC>
+		<ip_configuration_mode>
+			None
+		</ip_configuration_mode>
+		<DNS>
+			
+		</DNS>
+		<device>
+			eth0
+		</device>
+		<bond_master_of/>
+		<currently_attached>
+			False
+		</currently_attached>
+		<gateway>
+			
+		</gateway>
+		<network>
+			OpaqueRef:83e4a934-aeb5-e6f0-a743-d1c7ef7364c5
+		</network>
+	</pif>
+	<pif ref="OpaqueRef:eea8da94-a5e6-18fc-34a7-5e9b5a235806">
+		<VLAN_slave_of/>
+		<management>
+			False
+		</management>
+		<bond_slave_of>
+			OpaqueRef:NULL
+		</bond_slave_of>
+		<uuid>
+			df8d35c2-cc3a-a623-7065-d987a29feb75
+		</uuid>
+		<IP>
+			
+		</IP>
+		<VLAN_master_of>
+			OpaqueRef:NULL
+		</VLAN_master_of>
+		<VLAN>
+			-1
+		</VLAN>
+		<netmask>
+			
+		</netmask>
+		<other_config/>
+		<MAC>
+			00:1b:21:29:ce:51
+		</MAC>
+		<ip_configuration_mode>
+			None
+		</ip_configuration_mode>
+		<DNS>
+			
+		</DNS>
+		<device>
+			eth4
+		</device>
+		<bond_master_of/>
+		<currently_attached>
+			False
+		</currently_attached>
+		<gateway>
+			
+		</gateway>
+		<network>
+			OpaqueRef:bf51b4d3-7bdc-ea55-ba21-539b150b0531
+		</network>
+	</pif>
+	<pif ref="OpaqueRef:2956e6c8-487e-981c-85ff-c84796418768">
+		<VLAN_slave_of/>
+		<management>
+			False
+		</management>
+		<bond_slave_of>
+			OpaqueRef:86d81bcf-0d25-90b2-cb11-af2007bd586e
+		</bond_slave_of>
+		<uuid>
+			2f87fc95-5ab4-571a-2487-3f4ac1985663
+		</uuid>
+		<IP>
+			
+		</IP>
+		<VLAN_master_of>
+			OpaqueRef:NULL
+		</VLAN_master_of>
+		<VLAN>
+			-1
+		</VLAN>
+		<netmask>
+			
+		</netmask>
+		<other_config/>
+		<MAC>
+			00:22:19:22:4b:b1
+		</MAC>
+		<ip_configuration_mode>
+			None
+		</ip_configuration_mode>
+		<DNS>
+			
+		</DNS>
+		<device>
+			eth1
+		</device>
+		<bond_master_of/>
+		<currently_attached>
+			False
+		</currently_attached>
+		<gateway>
+			
+		</gateway>
+		<network>
+			OpaqueRef:92b41bf6-aa21-45d3-1c86-c87a5fa98f7d
+		</network>
+	</pif>
+	<pif ref="OpaqueRef:d2d1e51e-4da9-3163-8f57-bb683429335e">
+		<VLAN_slave_of/>
+		<management>
+			False
+		</management>
+		<bond_slave_of>
+			OpaqueRef:NULL
+		</bond_slave_of>
+		<uuid>
+			d2dfdab3-daf4-afea-f055-a25a0d24d714
+		</uuid>
+		<IP>
+			
+		</IP>
+		<VLAN_master_of>
+			OpaqueRef:4c0eb823-4d96-da1d-e75f-411b85badb0c
+		</VLAN_master_of>
+		<VLAN>
+			4
+		</VLAN>
+		<netmask>
+			
+		</netmask>
+		<other_config/>
+		<MAC>
+			fe:ff:ff:ff:ff:ff
+		</MAC>
+		<ip_configuration_mode>
+			None
+		</ip_configuration_mode>
+		<DNS>
+			
+		</DNS>
+		<device>
+			bond0
+		</device>
+		<bond_master_of/>
+		<currently_attached>
+			True
+		</currently_attached>
+		<gateway>
+			
+		</gateway>
+		<network>
+			OpaqueRef:a63afad0-fb4c-b4a4-3696-cbb3d88afc47
+		</network>
+	</pif>
+	<pif ref="OpaqueRef:2bc0fab5-523a-4125-609d-212391f5f6fc">
+		<VLAN_slave_of>
+			<master>
+				OpaqueRef:e623e1d6-cd02-be8d-820d-49d65c710297
+			</master>
+		</VLAN_slave_of>
+		<management>
+			False
+		</management>
+		<bond_slave_of>
+			OpaqueRef:NULL
+		</bond_slave_of>
+		<uuid>
+			f4ba396e-a993-a592-5fbc-a1d566afb59e
+		</uuid>
+		<IP>
+			10.0.0.188
+		</IP>
+		<VLAN_master_of>
+			OpaqueRef:NULL
+		</VLAN_master_of>
+		<VLAN>
+			-1
+		</VLAN>
+		<netmask>
+			255.0.0.0
+		</netmask>
+		<other_config/>
+		<MAC>
+			00:15:17:a0:29:81
+		</MAC>
+		<ip_configuration_mode>
+			Static
+		</ip_configuration_mode>
+		<DNS>
+			
+		</DNS>
+		<device>
+			eth3
+		</device>
+		<bond_master_of/>
+		<currently_attached>
+			True
+		</currently_attached>
+		<gateway>
+			
+		</gateway>
+		<network>
+			OpaqueRef:d9189da2-d00b-61ba-8a6d-ac42cc868e32
+		</network>
+	</pif>
+	<pif ref="OpaqueRef:205d1186-2cd1-d5e6-45e4-ea1698ea6e15">
+		<VLAN_slave_of/>
+		<management>
+			True
+		</management>
+		<bond_slave_of>
+			OpaqueRef:NULL
+		</bond_slave_of>
+		<uuid>
+			646ca9a1-36ad-e2f9-3ecc-1e5622c201c2
+		</uuid>
+		<IP>
+			172.18.3.188
+		</IP>
+		<VLAN_master_of>
+			OpaqueRef:NULL
+		</VLAN_master_of>
+		<VLAN>
+			-1
+		</VLAN>
+		<netmask>
+			255.255.0.0
+		</netmask>
+		<other_config/>
+		<MAC>
+			00:15:17:a0:29:80
+		</MAC>
+		<ip_configuration_mode>
+			DHCP
+		</ip_configuration_mode>
+		<DNS>
+			
+		</DNS>
+		<device>
+			eth2
+		</device>
+		<bond_master_of/>
+		<currently_attached>
+			True
+		</currently_attached>
+		<gateway>
+			
+		</gateway>
+		<network>
+			OpaqueRef:6e7c6e81-6b5e-b91f-e1f9-9e028567bdfe
+		</network>
+	</pif>
+	<pif ref="OpaqueRef:8e3e37e6-ebb9-087e-0201-f6a56bf554c3">
+		<VLAN_slave_of/>
+		<management>
+			False
+		</management>
+		<bond_slave_of>
+			OpaqueRef:NULL
+		</bond_slave_of>
+		<uuid>
+			3941edd2-865b-8dd8-61f0-199f5e1fa652
+		</uuid>
+		<IP>
+			
+		</IP>
+		<VLAN_master_of>
+			OpaqueRef:e623e1d6-cd02-be8d-820d-49d65c710297
+		</VLAN_master_of>
+		<VLAN>
+			123
+		</VLAN>
+		<netmask>
+			
+		</netmask>
+		<other_config/>
+		<MAC>
+			fe:ff:ff:ff:ff:ff
+		</MAC>
+		<ip_configuration_mode>
+			None
+		</ip_configuration_mode>
+		<DNS>
+			
+		</DNS>
+		<device>
+			eth3
+		</device>
+		<bond_master_of/>
+		<currently_attached>
+			True
+		</currently_attached>
+		<gateway>
+			
+		</gateway>
+		<network>
+			OpaqueRef:240fb5f8-addc-6ea3-f921-2a42b42acd17
+		</network>
+	</pif>
+	<pif ref="OpaqueRef:69c904bb-8da9-3424-485b-8b47c2d3ef11">
+		<VLAN_slave_of>
+			<master>
+				OpaqueRef:4c0eb823-4d96-da1d-e75f-411b85badb0c
+			</master>
+		</VLAN_slave_of>
+		<management>
+			False
+		</management>
+		<bond_slave_of>
+			OpaqueRef:NULL
+		</bond_slave_of>
+		<uuid>
+			6c0327a9-afa3-fc19-6798-a1bfe20095ed
+		</uuid>
+		<IP>
+			
+		</IP>
+		<VLAN_master_of>
+			OpaqueRef:NULL
+		</VLAN_master_of>
+		<VLAN>
+			-1
+		</VLAN>
+		<netmask>
+			
+		</netmask>
+		<other_config/>
+		<MAC>
+			00:22:19:22:4b:af
+		</MAC>
+		<ip_configuration_mode>
+			None
+		</ip_configuration_mode>
+		<DNS>
+			
+		</DNS>
+		<device>
+			bond0
+		</device>
+		<bond_master_of>
+			<slave>
+				OpaqueRef:86d81bcf-0d25-90b2-cb11-af2007bd586e
+			</slave>
+		</bond_master_of>
+		<currently_attached>
+			True
+		</currently_attached>
+		<gateway>
+			
+		</gateway>
+		<network>
+			OpaqueRef:ec1e5037-60ea-97e5-54b8-39bdb43c071a
+		</network>
+	</pif>
+	<bond ref="OpaqueRef:86d81bcf-0d25-90b2-cb11-af2007bd586e">
+		<master>
+			OpaqueRef:69c904bb-8da9-3424-485b-8b47c2d3ef11
+		</master>
+		<uuid>
+			dad825f1-6d81-386e-849c-5589281e53e1
+		</uuid>
+		<slaves>
+			<slave>
+				OpaqueRef:e0955887-571f-17fc-a971-61c1ec7d81b6
+			</slave>
+			<slave>
+				OpaqueRef:2956e6c8-487e-981c-85ff-c84796418768
+			</slave>
+		</slaves>
+	</bond>
+	<vlan ref="OpaqueRef:4c0eb823-4d96-da1d-e75f-411b85badb0c">
+		<tagged_PIF>
+			OpaqueRef:69c904bb-8da9-3424-485b-8b47c2d3ef11
+		</tagged_PIF>
+		<uuid>
+			841814da-d0d2-9da4-0b2e-b6143480bbfb
+		</uuid>
+		<untagged_PIF>
+			OpaqueRef:d2d1e51e-4da9-3163-8f57-bb683429335e
+		</untagged_PIF>
+	</vlan>
+	<vlan ref="OpaqueRef:e623e1d6-cd02-be8d-820d-49d65c710297">
+		<tagged_PIF>
+			OpaqueRef:2bc0fab5-523a-4125-609d-212391f5f6fc
+		</tagged_PIF>
+		<uuid>
+			399279a2-5ccd-5368-9af3-8622a1f1ac82
+		</uuid>
+		<untagged_PIF>
+			OpaqueRef:8e3e37e6-ebb9-087e-0201-f6a56bf554c3
+		</untagged_PIF>
+	</vlan>
+	<network ref="OpaqueRef:a63afad0-fb4c-b4a4-3696-cbb3d88afc47">
+		<PIFs>
+			<PIF>
+				OpaqueRef:d2d1e51e-4da9-3163-8f57-bb683429335e
+			</PIF>
+		</PIFs>
+		<bridge>
+			xapi2
+		</bridge>
+		<other_config/>
+		<uuid>
+			99be2da4-6c33-6f8e-49ea-3bc592fe3c85
+		</uuid>
+	</network>
+	<network ref="OpaqueRef:d9189da2-d00b-61ba-8a6d-ac42cc868e32">
+		<PIFs>
+			<PIF>
+				OpaqueRef:2bc0fab5-523a-4125-609d-212391f5f6fc
+			</PIF>
+		</PIFs>
+		<bridge>
+			xenbr3
+		</bridge>
+		<other_config/>
+		<uuid>
+			2902ae1b-8013-897a-b697-0b200ea3aaa5
+		</uuid>
+	</network>
+	<network ref="OpaqueRef:ec1e5037-60ea-97e5-54b8-39bdb43c071a">
+		<PIFs>
+			<PIF>
+				OpaqueRef:69c904bb-8da9-3424-485b-8b47c2d3ef11
+			</PIF>
+		</PIFs>
+		<bridge>
+			xapi1
+		</bridge>
+		<other_config/>
+		<uuid>
+			45cbbb43-113d-a712-3231-c6463f253cef
+		</uuid>
+	</network>
+	<network ref="OpaqueRef:92b41bf6-aa21-45d3-1c86-c87a5fa98f7d">
+		<PIFs>
+			<PIF>
+				OpaqueRef:2956e6c8-487e-981c-85ff-c84796418768
+			</PIF>
+		</PIFs>
+		<bridge>
+			xenbr1
+		</bridge>
+		<other_config/>
+		<uuid>
+			99f8771a-645a-26a3-e06c-30a401f1d009
+		</uuid>
+	</network>
+	<network ref="OpaqueRef:6e7c6e81-6b5e-b91f-e1f9-9e028567bdfe">
+		<PIFs>
+			<PIF>
+				OpaqueRef:205d1186-2cd1-d5e6-45e4-ea1698ea6e15
+			</PIF>
+		</PIFs>
+		<bridge>
+			xenbr2
+		</bridge>
+		<other_config/>
+		<uuid>
+			d08c8749-0c8f-9e8d-ce25-fd364661ee99
+		</uuid>
+	</network>
+	<network ref="OpaqueRef:83e4a934-aeb5-e6f0-a743-d1c7ef7364c5">
+		<PIFs>
+			<PIF>
+				OpaqueRef:e0955887-571f-17fc-a971-61c1ec7d81b6
+			</PIF>
+		</PIFs>
+		<bridge>
+			xenbr0
+		</bridge>
+		<other_config/>
+		<uuid>
+			c9eecb03-560d-61de-b6a8-56dfc766f67e
+		</uuid>
+	</network>
+	<network ref="OpaqueRef:bf51b4d3-7bdc-ea55-ba21-539b150b0531">
+		<PIFs>
+			<PIF>
+				OpaqueRef:eea8da94-a5e6-18fc-34a7-5e9b5a235806
+			</PIF>
+		</PIFs>
+		<bridge>
+			xenbr4
+		</bridge>
+		<other_config/>
+		<uuid>
+			d2c14c89-29cc-51d4-7664-633eff02b2ad
+		</uuid>
+	</network>
+	<network ref="OpaqueRef:0b7354a4-8f4b-aa08-2f16-a22c117e4211">
+		<PIFs/>
+		<bridge>
+			xapi0
+		</bridge>
+		<other_config/>
+		<uuid>
+			dc0f0632-c2aa-1b78-2fea-0d3a23c51740
+		</uuid>
+	</network>
+	<network ref="OpaqueRef:240fb5f8-addc-6ea3-f921-2a42b42acd17">
+		<PIFs>
+			<PIF>
+				OpaqueRef:8e3e37e6-ebb9-087e-0201-f6a56bf554c3
+			</PIF>
+		</PIFs>
+		<bridge>
+			xapi3
+		</bridge>
+		<other_config/>
+		<uuid>
+			db7bdc03-074d-42ae-fc73-9b06de1d57f6
+		</uuid>
+	</network>
+</xenserver-network-configuration>
+EOF
+]])
+
+m4_define([IFR_RUN], [./interface-reconfigure --root-prefix=$PWD --no-syslog])
+
+m4_define([IFR_FILTER], [sed -n -e "s,$PWD,,g" -e 's/ -- /\
+    /g' -e '/^Running command:/!p' stderr])
+
+AT_BANNER([interface-reconfigure])
+
+AT_SETUP([non-VLAN, non-bond])
+AT_KEYWORDS([interface-reconfigure])
+IFR_SETUP
+
+AT_CHECK([IFR_RUN --force xenbr2 up], [0], [], [stderr])
+AT_CHECK([IFR_FILTER], [0], [[Force interface xenbr2 up
+Loading xapi database cache from /var/xapi/network.dbcache
+Configured for Vswitch datapath
+action_up: xenbr2
+Writing network configuration for xenbr2
+Configuring xenbr2 using DHCP configuration
+configure_datapath: bridge      - xenbr2
+configure_datapath: physical    - [u'eth2']
+configure_datapath: extra ports - []
+configure_datapath: extra bonds - []
+Applying changes to /etc/sysconfig/network-scripts/route-xenbr2 configuration
+Applying changes to /etc/sysconfig/network configuration
+Applying changes to /etc/sysconfig/network-scripts/ifcfg-xenbr2 configuration
+/sbin/ifconfig eth2 up
+/usr/bin/ovs-vsctl --timeout=20
+    --with-iface --if-exists del-port eth2
+    --may-exist add-br xenbr2
+    --may-exist add-port xenbr2 eth2
+    br-set-external-id xenbr2 xs-network-uuids d08c8749-0c8f-9e8d-ce25-fd364661ee99
+/sbin/ifup xenbr2
+/sbin/update-issue
+Committing changes to /etc/sysconfig/network-scripts/route-xenbr2 configuration
+Committing changes to /etc/sysconfig/network configuration
+Committing changes to /etc/sysconfig/network-scripts/ifcfg-xenbr2 configuration
+]])
+
+AT_CHECK([cat etc/sysconfig/network-scripts/ifcfg-xenbr2], [0],
+  [# DO NOT EDIT: This file (ifcfg-xenbr2) was autogenerated by interface-reconfigure
+XEMANAGED=yes
+DEVICE=xenbr2
+ONBOOT=no
+TYPE=Ethernet
+BOOTPROTO=dhcp
+PERSISTENT_DHCLIENT=yes
+])
+
+# Simulate interface-reconfigure creating xenbr2, so that we can tell
+# interface-reconfigure to take it back down.
+AT_CHECK([configure_netdev xenbr2 00:15:17:a0:29:80 0])
+
+AT_CHECK([IFR_RUN --force xenbr2 down], [0], [], [stderr])
+AT_CHECK([IFR_FILTER], [0], [[Force interface xenbr2 down
+Loading xapi database cache from /var/xapi/network.dbcache
+Configured for Vswitch datapath
+action_down: xenbr2
+/sbin/ifdown xenbr2
+deconfigure ipdev xenbr2 on xenbr2
+deconfigure_bridge: bridge           - xenbr2
+/usr/bin/ovs-vsctl --timeout=20
+    --with-iface --if-exists del-port xenbr2
+    --if-exists del-br xenbr2
+]])
+
+AT_CLEANUP
+
+AT_SETUP([VLAN, non-bond])
+AT_KEYWORDS([interface-reconfigure])
+IFR_SETUP
+
+AT_CHECK([IFR_RUN --force xapi3 up], [0], [], [stderr])
+AT_CHECK([IFR_FILTER], [0], [[Force interface xapi3 up
+Loading xapi database cache from /var/xapi/network.dbcache
+Configured for Vswitch datapath
+action_up: xapi3
+Writing network configuration for xapi3
+Configuring xapi3 using None configuration
+configure_datapath: bridge      - xenbr3
+configure_datapath: physical    - [u'eth3']
+configure_datapath: extra ports - []
+configure_datapath: extra bonds - []
+Applying changes to /etc/sysconfig/network-scripts/route-xapi3 configuration
+Applying changes to /etc/sysconfig/network-scripts/ifcfg-xapi3 configuration
+/sbin/ifconfig eth3 up
+/usr/bin/ovs-vsctl --timeout=20
+    --with-iface --if-exists del-port eth3
+    --may-exist add-br xenbr3
+    --may-exist add-port xenbr3 eth3
+    br-set-external-id xenbr3 xs-network-uuids 2902ae1b-8013-897a-b697-0b200ea3aaa5;db7bdc03-074d-42ae-fc73-9b06de1d57f6
+    --if-exists del-br xapi3
+    --may-exist add-br xapi3 xenbr3 123
+    br-set-external-id xapi3 xs-network-uuids 2902ae1b-8013-897a-b697-0b200ea3aaa5;db7bdc03-074d-42ae-fc73-9b06de1d57f6
+/sbin/ifup xapi3
+/sbin/update-issue
+Committing changes to /etc/sysconfig/network-scripts/route-xapi3 configuration
+Committing changes to /etc/sysconfig/network-scripts/ifcfg-xapi3 configuration
+]])
+
+AT_CHECK([cat etc/sysconfig/network-scripts/ifcfg-xapi3], [0],
+  [# DO NOT EDIT: This file (ifcfg-xapi3) was autogenerated by interface-reconfigure
+XEMANAGED=yes
+DEVICE=xapi3
+ONBOOT=no
+TYPE=Ethernet
+BOOTPROTO=none
+])
+
+# Simulate interface-reconfigure creating xapi3, so that we can tell
+# interface-reconfigure to take it back down.
+AT_CHECK([configure_netdev xapi3 00:23:20:AC:AF:02 0])
+
+AT_CHECK([IFR_RUN --force xapi3 down], [0], [], [stderr])
+AT_CHECK([IFR_FILTER], [0], [[Force interface xapi3 down
+Loading xapi database cache from /var/xapi/network.dbcache
+Configured for Vswitch datapath
+action_down: xapi3
+/sbin/ifdown xapi3
+deconfigure ipdev xapi3 on xenbr3
+deconfigure_bridge: bridge           - xapi3
+action_down: no more masters, bring down slave xenbr3
+deconfigure_bridge: bridge           - xenbr3
+/usr/bin/ovs-vsctl --timeout=20
+    --with-iface --if-exists del-port xapi3
+    --if-exists del-br xapi3
+    --if-exists del-br xenbr3
+]])
+
+AT_CLEANUP
+
+AT_SETUP([Bond, non-VLAN])
+AT_KEYWORDS([interface-reconfigure])
+IFR_SETUP
+
+# Pretend that bond0 exists, even though it would really be created by
+# a "create-bond" call in an ovs-vsctl invocation within
+# interface-reconfigure, because otherwise interface-reconfigure will
+# die with "failed to apply changes: netdev: up: device bond0 does not
+# exist" after it thinks it created bond0.
+AT_CHECK([configure_netdev bond0 00:23:20:e6:39:75 0])
+
+AT_CHECK([IFR_RUN --force xapi1 up], [0], [], [stderr])
+AT_CHECK([IFR_FILTER], [0], [[Force interface xapi1 up
+Loading xapi database cache from /var/xapi/network.dbcache
+Configured for Vswitch datapath
+action_up: xapi1
+Writing network configuration for xapi1
+Configuring xapi1 using None configuration
+configure_datapath: leaving bond bond0 up
+configure_datapath: leaving bond bond0 up
+configure_datapath: bridge      - xapi1
+configure_datapath: physical    - [u'eth0', u'eth1']
+configure_datapath: extra ports - []
+configure_datapath: extra bonds - []
+netdev: down: device xenbr0 does not exist, ignoring
+netdev: down: device xenbr1 does not exist, ignoring
+Applying changes to /etc/sysconfig/network-scripts/route-xapi1 configuration
+Applying changes to /etc/sysconfig/network-scripts/ifcfg-xapi1 configuration
+/sbin/ifconfig eth0 up
+/sbin/ifconfig eth1 up
+/usr/bin/ovs-vsctl --timeout=20
+    --if-exists del-br xenbr0
+    --if-exists del-br xenbr1
+    --with-iface --if-exists del-port eth0
+    --with-iface --if-exists del-port eth1
+    --may-exist add-br xapi1
+    --with-iface --if-exists del-port bond0
+    --fake-iface add-bond xapi1 bond0 eth0 eth1
+    br-set-external-id xapi1 xs-network-uuids 99be2da4-6c33-6f8e-49ea-3bc592fe3c85;45cbbb43-113d-a712-3231-c6463f253cef
+/sbin/ifup xapi1
+action_up: bring up bond0
+/sbin/ifconfig bond0 up
+/sbin/update-issue
+Committing changes to /etc/sysconfig/network-scripts/route-xapi1 configuration
+Committing changes to /etc/sysconfig/network-scripts/ifcfg-xapi1 configuration
+]])
+
+AT_CHECK([cat etc/sysconfig/network-scripts/ifcfg-xapi1], [0],
+  [# DO NOT EDIT: This file (ifcfg-xapi1) was autogenerated by interface-reconfigure
+XEMANAGED=yes
+DEVICE=xapi1
+ONBOOT=no
+TYPE=Ethernet
+BOOTPROTO=none
+])
+
+# Simulate interface-reconfigure creating xapi1, so that we can tell
+# interface-reconfigure to take it back down.
+AT_CHECK([configure_netdev xapi1 00:22:19:22:4B:AF 0])
+
+AT_CHECK([IFR_RUN --force xapi1 down], [0], [], [stderr])
+AT_CHECK([IFR_FILTER], [0], [[Force interface xapi1 down
+Loading xapi database cache from /var/xapi/network.dbcache
+Configured for Vswitch datapath
+action_down: xapi1
+/sbin/ifdown xapi1
+deconfigure ipdev xapi1 on xapi1
+deconfigure_bridge: bridge           - xapi1
+/usr/bin/ovs-vsctl --timeout=20
+    --with-iface --if-exists del-port xapi1
+    --if-exists del-br xapi1
+]])
+
+AT_CLEANUP
+
+AT_SETUP([VLAN on bond])
+AT_KEYWORDS([interface-reconfigure])
+IFR_SETUP
+
+# Pretend that bond0 exists, even though it would really be created by
+# a "create-bond" call in an ovs-vsctl invocation within
+# interface-reconfigure, because otherwise interface-reconfigure will
+# die with "failed to apply changes: netdev: up: device bond0 does not
+# exist" after it thinks it created bond0.
+AT_CHECK([configure_netdev bond0 00:23:20:e6:39:75 0])
+
+AT_CHECK([IFR_RUN --force xapi2 up], [0], [], [stderr])
+AT_CHECK([IFR_FILTER], [0], [[Force interface xapi2 up
+Loading xapi database cache from /var/xapi/network.dbcache
+Configured for Vswitch datapath
+action_up: xapi2
+Writing network configuration for xapi2
+Configuring xapi2 using None configuration
+configure_datapath: leaving bond bond0 up
+configure_datapath: leaving bond bond0 up
+configure_datapath: bridge      - xapi1
+configure_datapath: physical    - [u'eth0', u'eth1']
+configure_datapath: extra ports - []
+configure_datapath: extra bonds - []
+netdev: down: device xenbr0 does not exist, ignoring
+netdev: down: device xenbr1 does not exist, ignoring
+Applying changes to /etc/sysconfig/network-scripts/route-xapi2 configuration
+Applying changes to /etc/sysconfig/network-scripts/ifcfg-xapi2 configuration
+/sbin/ifconfig eth0 up
+/sbin/ifconfig eth1 up
+/usr/bin/ovs-vsctl --timeout=20
+    --if-exists del-br xenbr0
+    --if-exists del-br xenbr1
+    --with-iface --if-exists del-port eth0
+    --with-iface --if-exists del-port eth1
+    --may-exist add-br xapi1
+    --with-iface --if-exists del-port bond0
+    --fake-iface add-bond xapi1 bond0 eth0 eth1
+    br-set-external-id xapi1 xs-network-uuids 99be2da4-6c33-6f8e-49ea-3bc592fe3c85;45cbbb43-113d-a712-3231-c6463f253cef
+    --if-exists del-br xapi2
+    --may-exist add-br xapi2 xapi1 4
+    br-set-external-id xapi2 xs-network-uuids 99be2da4-6c33-6f8e-49ea-3bc592fe3c85;45cbbb43-113d-a712-3231-c6463f253cef
+/sbin/ifup xapi2
+action_up: bring up bond0
+/sbin/ifconfig bond0 up
+/sbin/update-issue
+Committing changes to /etc/sysconfig/network-scripts/route-xapi2 configuration
+Committing changes to /etc/sysconfig/network-scripts/ifcfg-xapi2 configuration
+]])
+
+AT_CHECK([cat etc/sysconfig/network-scripts/ifcfg-xapi2], [0],
+  [# DO NOT EDIT: This file (ifcfg-xapi2) was autogenerated by interface-reconfigure
+XEMANAGED=yes
+DEVICE=xapi2
+ONBOOT=no
+TYPE=Ethernet
+BOOTPROTO=none
+])
+
+# Simulate interface-reconfigure creating xapi2, so that we can tell
+# interface-reconfigure to take it back down.
+AT_CHECK([configure_netdev xapi2 00:23:20:A4:71:C2 0])
+
+AT_CHECK([IFR_RUN --force xapi2 down], [0], [], [stderr])
+AT_CHECK([IFR_FILTER], [0], [[Force interface xapi2 down
+Loading xapi database cache from /var/xapi/network.dbcache
+Configured for Vswitch datapath
+action_down: xapi2
+/sbin/ifdown xapi2
+deconfigure ipdev xapi2 on xapi1
+deconfigure_bridge: bridge           - xapi2
+action_down: no more masters, bring down slave xapi1
+deconfigure_bridge: bridge           - xapi1
+/usr/bin/ovs-vsctl --timeout=20
+    --with-iface --if-exists del-port xapi2
+    --if-exists del-br xapi2
+    --if-exists del-br xapi1
+]])
+
+AT_CLEANUP
diff --git a/tests/testsuite.at b/tests/testsuite.at
index 4d8e896..f4e80ca 100644
--- a/tests/testsuite.at
+++ b/tests/testsuite.at
@@ -52,3 +52,4 @@ m4_include([tests/reconnect.at])
 m4_include([tests/ovsdb.at])
 m4_include([tests/stp.at])
 m4_include([tests/ovs-vsctl.at])
+m4_include([tests/interface-reconfigure.at])
-- 
1.6.6.1





More information about the dev mailing list