From: Justin Pettit Date: Sat, 13 Mar 2010 14:11:47 +0000 (-0800) Subject: xenserver: Make OVS xsconsole plugin configure management channel X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5a9e7099ebd720c9b9aa4b308f75645b33b1b15b;p=openvswitch xenserver: Make OVS xsconsole plugin configure management channel Previously, the xsconsole plugin configured a single OpenFlow controller configuration across all bridges. With the management channel, we can now have the manager configure the bridges' controllers individually. This changes the plugin to only set that management IP. --- diff --git a/xenserver/etc_xapi.d_plugins_vswitch-cfg-update b/xenserver/etc_xapi.d_plugins_vswitch-cfg-update index 6e38a802..4cebe85c 100755 --- a/xenserver/etc_xapi.d_plugins_vswitch-cfg-update +++ b/xenserver/etc_xapi.d_plugins_vswitch-cfg-update @@ -62,26 +62,27 @@ def update(session, args): return "No change to configuration" def vswitchCurrentController(): - controller = vswitchCfgQuery("get-controller") + controller = vswitchCfgQuery("get Open_vSwitch . managers").strip('[]"') if controller == "": return controller if len(controller) < 4 or controller[0:4] != "ssl:": return controller else: - return controller[4:] + return controller.split(':')[1] def removeControllerCfg(): - vswitchCfgMod(["--", "del-controller", + vswitchCfgMod(["--", "clear", "Open_vSwitch", ".", "managers", "--", "del-ssl"]) def setControllerCfg(controller): - vswitchCfgMod(["--", "del-controller", + vswitchCfgMod(["--", "clear", "Open_vSwitch", ".", "managers", "--", "del-ssl", "--", "--bootstrap", "set-ssl", "/etc/xensource/xapi-ssl.pem", "/etc/xensource/xapi-ssl.pem", "/etc/ovs-vswitchd.cacert", - "--", "set-controller", "ssl:" + controller]) + "--", "set", "Open_vSwitch", ".", + 'managers="ssl:' + controller + ':6632"']) def vswitchCfgQuery(action): cmd = [vsctl, "-vANY:console:emer", action] diff --git a/xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py b/xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py index 99dd15d8..6ecf4784 100644 --- a/xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py +++ b/xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py @@ -79,7 +79,8 @@ class VSwitchConfig: @staticmethod def Get(action): try: - output = ShellPipe([vsctl, "-vANY:console:emer", action]).Stdout() + arg = [vsctl, "-vANY:console:emer"] + action.split() + output = ShellPipe(arg).Stdout() except StandardError, e: XSLogError("config retrieval error: " + str(e)) return "" @@ -283,11 +284,13 @@ class XSFeatureVSwitch: if dbController == "": dbController = Lang("") inPane.AddStatusField(Lang("Controller (config)", 20), dbController) - controller = VSwitchConfig.Get("get-controller") + controller = VSwitchConfig.Get("get Open_vSwitch . managers") + controller = controller.strip('[]"') + if controller == "": controller = Lang("") elif controller[0:4] == "ssl:": - controller = controller[4:] + controller = controller.split(':')[1] inPane.AddStatusField(Lang("Controller (in-use)", 20), controller) inPane.NewLine()