xenserver: Add vm-id to the external_ids.
[sliver-openvswitch.git] / tests / ovs-xapi-sync.at
1 AT_BANNER([ovs-xapi-sync])
2
3 AT_SETUP([ovs-xapi-sync])
4 AT_SKIP_IF([test $HAVE_PYTHON = no])
5
6 # Mock up the XenAPI.
7 cp "$top_srcdir/tests/MockXenAPI.py" XenAPI.py
8 PYTHONPATH=`pwd`:$PYTHONPATH
9 export PYTHONPATH
10
11 OVS_PKGDATADIR=`pwd`; export OVS_PKGDATADIR
12 cp "$top_srcdir/vswitchd/vswitch.ovsschema" .
13
14 cp "$top_srcdir/xenserver/usr_share_openvswitch_scripts_ovs-xapi-sync" \
15    ovs-xapi-sync
16
17 trap 'kill `cat pid ovs-xapi-sync.pid`' 0
18
19 mkdir var var/run
20 touch var/run/xapi_init_complete.cookie
21
22 ovs_vsctl () {
23     ovs-vsctl --timeout=5 --no-wait -vreconnect:ANY:emer --db=unix:socket "$@"
24 }
25
26 # Start ovsdb-server.
27 OVS_VSCTL_SETUP
28
29 # Start ovs-xapi-sync.
30 AT_CHECK([$PYTHON ./ovs-xapi-sync "--pidfile=`pwd`/ovs-xapi-sync.pid" \
31                   "--root-prefix=`pwd`" unix:socket >log 2>&1 &])
32 AT_CAPTURE_FILE([log])
33
34 # Add bridges and check ovs-xapi-sync's work.
35 AT_CHECK([ovs_vsctl -- add-br xenbr0 -- add-br xenbr1])
36 OVS_WAIT_UNTIL([test "X`ovs_vsctl get bridge xenbr0 fail-mode`" != "X[[]]"])
37 AT_CHECK([ovs_vsctl \
38                 -- get bridge xenbr0 fail-mode other-config external-ids \
39                 -- get bridge xenbr1 fail-mode other-config external-ids], [0],
40          [[secure
41 {}
42 {bridge-id="custom bridge ID"}
43 secure
44 {disable-in-band="true"}
45 {}
46 ]])
47
48 # Add vif and check daemon's work.
49 AT_CHECK([ovs_vsctl \
50                 -- add-port xenbr0 vif1.0 \
51                 -- set Interface vif1.0 'external-ids={attached-mac="00:11:22:33:44:55", xs-network-uuid="9b66c68b-a74e-4d34-89a5-20a8ab352d1e", xs-vif-uuid="6ab1b260-398e-49ba-827b-c7696108964c", xs-vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8"'}])
52 OVS_WAIT_UNTIL([ovs_vsctl get interface vif1.0 external-ids:iface-id >/dev/null 2>&1])
53 AT_CHECK([ovs_vsctl get interface vif1.0 external-ids], [0],
54   [{attached-mac="00:11:22:33:44:55", iface-id="custom iface ID", iface-status=active, vm-id="custom vm ID", xs-network-uuid="9b66c68b-a74e-4d34-89a5-20a8ab352d1e", xs-vif-uuid="6ab1b260-398e-49ba-827b-c7696108964c", xs-vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8"}
55 ])
56
57 # Add corresponding tap and check daemon's work.
58 AT_CHECK([ovs_vsctl add-port xenbr0 tap1.0])
59 OVS_WAIT_UNTIL([ovs_vsctl get interface tap1.0 external-ids:iface-id >/dev/null 2>&1])
60 AT_CHECK([ovs_vsctl \
61                 -- get interface vif1.0 external-ids \
62                 -- get interface tap1.0 external-ids], [0],
63   [{attached-mac="00:11:22:33:44:55", iface-id="custom iface ID", iface-status=inactive, vm-id="custom vm ID", xs-network-uuid="9b66c68b-a74e-4d34-89a5-20a8ab352d1e", xs-vif-uuid="6ab1b260-398e-49ba-827b-c7696108964c", xs-vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8"}
64 {attached-mac="00:11:22:33:44:55", iface-id="custom iface ID", iface-status=active, vm-id="custom vm ID", xs-network-uuid="9b66c68b-a74e-4d34-89a5-20a8ab352d1e", xs-vif-uuid="6ab1b260-398e-49ba-827b-c7696108964c", xs-vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8"}
65 ])
66
67 # Remove corresponding tap and check daemon's work.
68 AT_CHECK([ovs_vsctl del-port tap1.0])
69 OVS_WAIT_UNTIL([test `ovs_vsctl get interface vif1.0 external-ids:iface-status` = active])
70 AT_CHECK([ovs_vsctl get interface vif1.0 external-ids], [0],
71   [{attached-mac="00:11:22:33:44:55", iface-id="custom iface ID", iface-status=active, vm-id="custom vm ID", xs-network-uuid="9b66c68b-a74e-4d34-89a5-20a8ab352d1e", xs-vif-uuid="6ab1b260-398e-49ba-827b-c7696108964c", xs-vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8"}
72 ])
73
74 AT_CLEANUP