From 5a9e7099ebd720c9b9aa4b308f75645b33b1b15b Mon Sep 17 00:00:00 2001 From: Justin Pettit Date: Sat, 13 Mar 2010 06:11:47 -0800 Subject: [PATCH] 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. --- xenserver/etc_xapi.d_plugins_vswitch-cfg-update | 11 ++++++----- ...usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py | 9 ++++++--- 2 files changed, 12 insertions(+), 8 deletions(-) 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() -- 2.30.2