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:
Lubomir Rintel 2018-06-15 08:36:22 +02:00
parent 119e828dbe
commit 9c0db98094

View file

@ -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():