Revert "example/python: avoid falling back to CLOCK_MONOTONIC"
This breaks client tests on avery old kernel (2.6.32, RHEL 6).
Traceback (most recent call last):
File "./clients/tests/test-client.py", line 699, in setUp
self.srv = NMStubServer(self._testMethodName)
File "./clients/tests/test-client.py", line 309, in __init__
start = nmex.nm_boot_time_ns()
File "/builddir/build/BUILD/NetworkManager-1.11.4/examples/python/nmex.py", line 54, in nm_boot_time_ns
return sys_clock_gettime_ns(CLOCK_BOOTTIME)
File "/builddir/build/BUILD/NetworkManager-1.11.4/examples/python/nmex.py", line 50, in sys_clock_gettime_ns
return _sys_clock_gettime_ns(clock_id)
File "/builddir/build/BUILD/NetworkManager-1.11.4/examples/python/nmex.py", line 39, in f
raise OSError(errno_, os.strerror(errno_))
OSError: [Errno 22] Invalid argument
This reverts commit 119e828dbe
.
This commit is contained in:
@@ -50,8 +50,18 @@ def sys_clock_gettime_ns(clock_id):
|
||||
return _sys_clock_gettime_ns(clock_id)
|
||||
|
||||
def nm_boot_time_ns():
|
||||
CLOCK_BOOTTIME = 7
|
||||
return sys_clock_gettime_ns(CLOCK_BOOTTIME)
|
||||
# NetworkManager exposes some timestamps as CLOCK_BOOTTIME.
|
||||
# Try that first (number 7).
|
||||
try:
|
||||
return sys_clock_gettime_ns(7)
|
||||
except OSError as e:
|
||||
# On systems, where this is not available, fallback to
|
||||
# CLOCK_MONOTONIC (numeric 1).
|
||||
# That is what NetworkManager does as well.
|
||||
import errno
|
||||
if e.errno == errno.EINVAL:
|
||||
return sys_clock_gettime_ns(1)
|
||||
raise
|
||||
def nm_boot_time_us():
|
||||
return nm_boot_time_ns() / 1000
|
||||
def nm_boot_time_ms():
|
||||
|
Reference in New Issue
Block a user