From: Ethan Jackson Date: Sat, 31 Mar 2012 06:11:05 +0000 (-0700) Subject: unixctl.py: Allow callers to manually set unixctl version. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=75c8be3c0aa21bff5416b225ab84349a49610af1;p=openvswitch 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 --- 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)