[ovs-dev] [PATCH] xenserver: Add vm-uuid to the external_ids.
Gurucharan Shetty
gshetty at nicira.com
Mon Mar 5 11:17:27 PST 2012
The vm-uuid external id in the interface table will uniquely identify a VM
that is connected to a bridge through that interface. In xenserver, this
will have the same value as the external id - xs-vm-uuid.
Signed-off-by: Gurucharan Shetty <gshetty at nicira.com>
---
tests/ovs-xapi-sync.at | 8 ++++----
vswitchd/vswitch.xml | 5 +++++
.../usr_share_openvswitch_scripts_ovs-xapi-sync | 3 +++
3 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/tests/ovs-xapi-sync.at b/tests/ovs-xapi-sync.at
index 7c467bb..4521b45 100644
--- a/tests/ovs-xapi-sync.at
+++ b/tests/ovs-xapi-sync.at
@@ -51,7 +51,7 @@ AT_CHECK([ovs_vsctl \
-- 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"'}])
OVS_WAIT_UNTIL([ovs_vsctl get interface vif1.0 external-ids:iface-id >/dev/null 2>&1])
AT_CHECK([ovs_vsctl get interface vif1.0 external-ids], [0],
- [{attached-mac="00:11:22:33:44:55", iface-id="custom iface ID", iface-status=active, xs-network-uuid="9b66c68b-a74e-4d34-89a5-20a8ab352d1e", xs-vif-uuid="6ab1b260-398e-49ba-827b-c7696108964c", xs-vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8"}
+ [{attached-mac="00:11:22:33:44:55", iface-id="custom iface ID", iface-status=active, vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8", xs-network-uuid="9b66c68b-a74e-4d34-89a5-20a8ab352d1e", xs-vif-uuid="6ab1b260-398e-49ba-827b-c7696108964c", xs-vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8"}
])
# Add corresponding tap and check daemon's work.
@@ -60,15 +60,15 @@ OVS_WAIT_UNTIL([ovs_vsctl get interface tap1.0 external-ids:iface-id >/dev/null
AT_CHECK([ovs_vsctl \
-- get interface vif1.0 external-ids \
-- get interface tap1.0 external-ids], [0],
- [{attached-mac="00:11:22:33:44:55", iface-id="custom iface ID", iface-status=inactive, xs-network-uuid="9b66c68b-a74e-4d34-89a5-20a8ab352d1e", xs-vif-uuid="6ab1b260-398e-49ba-827b-c7696108964c", xs-vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8"}
-{attached-mac="00:11:22:33:44:55", iface-id="custom iface ID", iface-status=active, xs-network-uuid="9b66c68b-a74e-4d34-89a5-20a8ab352d1e", xs-vif-uuid="6ab1b260-398e-49ba-827b-c7696108964c", xs-vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8"}
+ [{attached-mac="00:11:22:33:44:55", iface-id="custom iface ID", iface-status=inactive, vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8", xs-network-uuid="9b66c68b-a74e-4d34-89a5-20a8ab352d1e", xs-vif-uuid="6ab1b260-398e-49ba-827b-c7696108964c", xs-vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8"}
+{attached-mac="00:11:22:33:44:55", iface-id="custom iface ID", iface-status=active, vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8", xs-network-uuid="9b66c68b-a74e-4d34-89a5-20a8ab352d1e", xs-vif-uuid="6ab1b260-398e-49ba-827b-c7696108964c", xs-vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8"}
])
# Remove corresponding tap and check daemon's work.
AT_CHECK([ovs_vsctl del-port tap1.0])
OVS_WAIT_UNTIL([test `ovs_vsctl get interface vif1.0 external-ids:iface-status` = active])
AT_CHECK([ovs_vsctl get interface vif1.0 external-ids], [0],
- [{attached-mac="00:11:22:33:44:55", iface-id="custom iface ID", iface-status=active, xs-network-uuid="9b66c68b-a74e-4d34-89a5-20a8ab352d1e", xs-vif-uuid="6ab1b260-398e-49ba-827b-c7696108964c", xs-vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8"}
+ [{attached-mac="00:11:22:33:44:55", iface-id="custom iface ID", iface-status=active, vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8", xs-network-uuid="9b66c68b-a74e-4d34-89a5-20a8ab352d1e", xs-vif-uuid="6ab1b260-398e-49ba-827b-c7696108964c", xs-vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8"}
])
AT_CLEANUP
diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml
index cd50f55..5b5c721 100644
--- a/vswitchd/vswitch.xml
+++ b/vswitchd/vswitch.xml
@@ -1847,6 +1847,11 @@
The virtual network to which this interface is attached.
</column>
+ <column name="external_ids" key="vm-uuid">
+ The VM to which this interface belongs. On XenServer, this will be the
+ same as <ref column="external_ids" key="xs-vm-uuid"/>.
+ </column>
+
<column name="external_ids" key="xs-vm-uuid">
The VM to which this interface belongs.
</column>
diff --git a/xenserver/usr_share_openvswitch_scripts_ovs-xapi-sync b/xenserver/usr_share_openvswitch_scripts_ovs-xapi-sync
index b10df6b..9f02b35 100755
--- a/xenserver/usr_share_openvswitch_scripts_ovs-xapi-sync
+++ b/xenserver/usr_share_openvswitch_scripts_ovs-xapi-sync
@@ -316,6 +316,9 @@ def main():
iface_id = None
set_external_id(row, "iface-id", iface_id)
+ # Copy xs-vm-uuid to vm-uuid
+ set_external_id(row, "vm-uuid", row.external_ids.get("xs-vm-uuid"))
+
# When there's a vif and a tap, the tap is active (used for
# traffic). When there's just a vif, the vif is active.
#
--
1.7.2.5
More information about the dev
mailing list