xenserver: Fix "ovs-vsctl get" call in vswitch-cfg-update.
authorBen Pfaff <blp@nicira.com>
Tue, 23 Mar 2010 16:40:26 +0000 (09:40 -0700)
committerBen Pfaff <blp@nicira.com>
Tue, 23 Mar 2010 16:40:26 +0000 (09:40 -0700)
The ovs-vsctl arguments were being passed as a single string instead of
broken up as if the shell had performed word splitting.  This fixes the
problem.

Without this commit, "unknown command 'get Open_vSwitch . managers';
use --help for help" appears in the system log.  Adding the commit
suppresses that message.

NIC-72.
Reported-by: Andy Southgate <andy.southgate@citrix.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
xenserver/etc_xapi.d_plugins_vswitch-cfg-update

index 4cebe85c82831240ad4901bd61c482231654eb84..4cf2d881b98f623b8a05ce122c990f005e60ab33 100755 (executable)
@@ -4,7 +4,7 @@
 # ovs-vswitchd configuration file that are managed in the xapi database
 # when integrated with Citrix management tools.
 
-# Copyright (C) 2009 Nicira Networks, Inc.
+# Copyright (C) 2009, 2010 Nicira Networks, Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -62,7 +62,8 @@ def update(session, args):
         return "No change to configuration"
 
 def vswitchCurrentController():
-    controller = vswitchCfgQuery("get Open_vSwitch . managers").strip('[]"')
+    controller = vswitchCfgQuery(["get", "Open_vSwitch", 
+                                  ".", "managers"]).strip('[]"')
     if controller == "":
         return controller
     if len(controller) < 4 or controller[0:4] != "ssl:":
@@ -84,8 +85,8 @@ def setControllerCfg(controller):
                    "--", "set", "Open_vSwitch", ".",
                    'managers="ssl:' + controller + ':6632"'])
 
-def vswitchCfgQuery(action):
-    cmd = [vsctl, "-vANY:console:emer", action]
+def vswitchCfgQuery(action_args):
+    cmd = [vsctl, "-vANY:console:emer"] + action_args
     output = subprocess.Popen(cmd, stdout=subprocess.PIPE).communicate()
     if len(output) == 0 or output[0] == None:
         output = ""