[ovs-dev] [PATCH V7 05/16] python tests: Added fcntl module for Windows

Alin Serdean aserdean at cloudbasesolutions.com
Thu Jul 21 13:16:56 UTC 2016


Acked-by: Alin Gabriel Serdean <aserdean at cloudbasesolutions.com>



> -----Mesaj original-----
> De la: dev [mailto:dev-bounces at openvswitch.org] În numele Paul Boca
> Trimis: Friday, July 15, 2016 5:21 PM
> Către: dev at openvswitch.org
> Subiect: [ovs-dev] [PATCH V7 05/16] python tests: Added fcntl module for
> Windows
> 
> This is needed for lockf function used to lock the PID file on Windows.
> ioctl and fcntl functions are not implemented at this time because they are
> not used by any script.
> 
> Signed-off-by: Paul-Daniel Boca <pboca at cloudbasesolutions.com>
> ---
> V2: No changes
> V3: No changes
> V4: No changes
> V5: No changes
> V6: No changes
> V7: Fixed flake8 errors and removed unused functions.
> ---
>  python/automake.mk      |  1 +
>  python/ovs/fcntl_win.py | 28 ++++++++++++++++++++++++++++
>  2 files changed, 29 insertions(+)
>  create mode 100644 python/ovs/fcntl_win.py
> 
> diff --git a/python/automake.mk b/python/automake.mk index
> ecad39d..1c8fa38 100644
> --- a/python/automake.mk
> +++ b/python/automake.mk
> @@ -11,6 +11,7 @@ ovstest_pyfiles = \
>  ovs_pyfiles = \
>  	python/ovs/__init__.py \
>  	python/ovs/daemon.py \
> +	python/ovs/fcntl_win.py \
>  	python/ovs/db/__init__.py \
>  	python/ovs/db/data.py \
>  	python/ovs/db/error.py \
> diff --git a/python/ovs/fcntl_win.py b/python/ovs/fcntl_win.py new file
> mode 100644 index 0000000..a558c5e
> --- /dev/null
> +++ b/python/ovs/fcntl_win.py
> @@ -0,0 +1,28 @@
> +import errno
> +import win32con
> +import win32file
> +import pywintypes
> +import msvcrt
> +
> +LOCK_EX = win32con.LOCKFILE_EXCLUSIVE_LOCK LOCK_SH = 0  # the
> default
> +LOCK_NB = win32con.LOCKFILE_FAIL_IMMEDIATELY
> +LOCK_UN = 0x80000000  # unlock - non-standard
> +
> +
> +def lockf(fd, flags, length=0xFFFF0000, start=0, whence=0):
> +    overlapped = pywintypes.OVERLAPPED()
> +    hfile = msvcrt.get_osfhandle(fd.fileno())
> +    if LOCK_UN & flags:
> +        ret = win32file.UnlockFileEx(hfile, 0, start, length, overlapped)
> +    else:
> +        try:
> +            ret = win32file.LockFileEx(hfile, flags, start, length, overlapped)
> +        except:
> +            raise IOError(errno.EAGAIN, "", "")
> +
> +    return ret
> +
> +
> +def flock(fd, flags):
> +    lockf(fd, flags, 0xFFFF0000, 0, 0)
> --
> 2.7.2.windows.1
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev


More information about the dev mailing list