diff --git a/python/ovs/unixctl/__init__.py b/python/ovs/unixctl/__init__.py index d3d35562b..48b56d45d 100644 --- a/python/ovs/unixctl/__init__.py +++ b/python/ovs/unixctl/__init__.py @@ -13,6 +13,7 @@ # limitations under the License. import six +import sys import ovs.util @@ -71,7 +72,8 @@ def command_register(name, usage, min_args, max_args, callback, aux): def socket_name_from_target(target): assert isinstance(target, strtypes) - if target.startswith("/"): + """ On Windows an absolute path contains ':' ( i.e: C:\ ) """ + if target.startswith('/') or target.find(':') > -1: return 0, target pidfile_name = "%s/%s.pid" % (ovs.dirs.RUNDIR, target) @@ -79,6 +81,9 @@ def socket_name_from_target(target): if pid < 0: return -pid, "cannot read pidfile \"%s\"" % pidfile_name - return 0, "%s/%s.%d.ctl" % (ovs.dirs.RUNDIR, target, pid) + if sys.platform == "win32": + return 0, "%s/%s.ctl" % (ovs.dirs.RUNDIR, target) + else: + return 0, "%s/%s.%d.ctl" % (ovs.dirs.RUNDIR, target, pid) command_register("help", "", 0, 0, _unixctl_help, None) diff --git a/python/ovs/unixctl/server.py b/python/ovs/unixctl/server.py index cc712bf41..8595ed8c1 100644 --- a/python/ovs/unixctl/server.py +++ b/python/ovs/unixctl/server.py @@ -15,6 +15,7 @@ import copy import errno import os +import sys import six from six.moves import range @@ -188,8 +189,13 @@ class UnixctlServer(object): if path is not None: path = "punix:%s" % ovs.util.abs_file_name(ovs.dirs.RUNDIR, path) else: - path = "punix:%s/%s.%d.ctl" % (ovs.dirs.RUNDIR, - ovs.util.PROGRAM_NAME, os.getpid()) + if sys.platform == "win32": + path = "punix:%s/%s.ctl" % (ovs.dirs.RUNDIR, + ovs.util.PROGRAM_NAME) + else: + path = "punix:%s/%s.%d.ctl" % (ovs.dirs.RUNDIR, + ovs.util.PROGRAM_NAME, + os.getpid()) if version is None: version = ovs.version.VERSION