From 75c8be3c0aa21bff5416b225ab84349a49610af1 Mon Sep 17 00:00:00 2001 From: Ethan Jackson Date: Fri, 30 Mar 2012 23:11:05 -0700 Subject: [PATCH] unixctl.py: Allow callers to manually set unixctl version. Some clients of unixctl.py may want to use a different version than the one supplied in ovs.version.VERSION. This patch supports an optional manual override of this value. Feature #10383. Signed-off-by: Ethan Jackson --- python/ovs/unixctl.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/python/ovs/unixctl.py b/python/ovs/unixctl.py index 452afa5c..396d1be4 100644 --- a/python/ovs/unixctl.py +++ b/python/ovs/unixctl.py @@ -55,10 +55,9 @@ def _unixctl_help(conn, unused_argv, unused_aux): conn.reply(reply) -def _unixctl_version(conn, unused_argv, unused_aux): +def _unixctl_version(conn, unused_argv, version): assert isinstance(conn, UnixctlConnection) - version = "%s (Open vSwitch) %s" % (ovs.util.PROGRAM_NAME, - ovs.version.VERSION) + version = "%s (Open vSwitch) %s" % (ovs.util.PROGRAM_NAME, version) conn.reply(version) @@ -240,7 +239,12 @@ class UnixctlServer(object): self._listener = None @staticmethod - def create(path): + def create(path, version=None): + """Creates a new UnixctlServer which listens on a unixctl socket + created at 'path'. If 'path' is None, the default path is chosen. + 'version' contains the version of the server as reported by the unixctl + version command. If None, ovs.version.VERSION is used.""" + assert path is None or isinstance(path, strtypes) if path is not None: @@ -249,6 +253,9 @@ class UnixctlServer(object): path = "punix:%s/%s.%d.ctl" % (ovs.dirs.RUNDIR, ovs.util.PROGRAM_NAME, os.getpid()) + if version is None: + version = ovs.version.VERSION + error, listener = ovs.stream.PassiveStream.open(path) if error: ovs.util.ovs_error(error, "could not initialize control socket %s" @@ -256,7 +263,7 @@ class UnixctlServer(object): return error, None command_register("help", "", 0, 0, _unixctl_help, None) - command_register("version", "", 0, 0, _unixctl_version, None) + command_register("version", "", 0, 0, _unixctl_version, version) return 0, UnixctlServer(listener) -- 2.30.2