xenserver: Set internal network-uuids in Bridge table on XS5.5
authorJustin Pettit <jpettit@nicira.com>
Wed, 21 Apr 2010 10:42:52 +0000 (03:42 -0700)
committerJustin Pettit <jpettit@nicira.com>
Wed, 21 Apr 2010 11:08:23 +0000 (04:08 -0700)
On XenServer 5.5, interface-reconfigure is not called when creating
internal bridges, so we jump through extra hoops to determine the
network UUIDs.  The code that handled this was not properly retrieving
the UUIDs from XAPI, so the field would never be set.  This commit
corrects that.

Bug #2666

xenserver/etc_xensource_scripts_vif

index e826429..eed87fa 100755 (executable)
@@ -116,10 +116,7 @@ handle_vswitch_vif_details()
     if [ -n "${address}" ] ; then
        set_vif_external_id "vif-mac" "${address}"
     fi
-}
 
-xs550_set_internal_network_uuid()
-{
     if $xs550; then
         # vNetManager needs to know the network UUID(s) associated with each
         # datapath.  Normally interface-reconfigure adds them, but XAPI does
@@ -131,7 +128,6 @@ xs550_set_internal_network_uuid()
         # the initial ovs-vswitchd connection to vNetManager and setting this
         # configuration variable, but vNetManager can tolerate that.
         local bridge=$1
-        local net_uuid=$(xenstore-read "${PRIVATE}/network-uuid" 2>/dev/null)
         if [ -n "${net_uuid}" ] ; then
             logger -t scripts-vif "${bridge} network-uuids ${net_uuid}"
             echo "-- br-set-external-id $bridge network-uuids ${net_uuid}"
@@ -166,10 +162,10 @@ add_to_bridge()
            ;;
        openvswitch)
            if [ "$TYPE" = "vif" ] ; then
-               local vif_details=$(handle_vswitch_vif_details)
+               local vif_details=$(handle_vswitch_vif_details $bridge)
            fi
 
-           $vsctl -- --if-exists del-port $dev -- add-port $bridge $dev $vif_details $(xs550_set_internal_network_uuid $bridge)
+           $vsctl -- --if-exists del-port $dev -- add-port $bridge $dev $vif_details
            ;;
     esac