# patroni.watchdog.linux module

patroni.watchdog.linux.IOC(dir_: int, type_: str, nr: int, size: int) → int

patroni.watchdog.linux.IOR(type_: str, nr: int, size: int) → int

patroni.watchdog.linux.IOW(type_: str, nr: int, size: int) → int

patroni.watchdog.linux.IOWR(type_: str, nr: int, size: int) → int

class patroni.watchdog.linux.LinuxWatchdogDevice(device: str)

  Bases: `WatchdogBase`

  DEFAULT_DEVICE = '/dev/watchdog'
  __init__(device: str) → None
  _abc_impl = <_abc._abc_data object>
  _ioctl(func: int, arg: Any) → None

    Runs the specified ioctl on the underlying fd.

    Raises WatchdogError if the device is closed. Raises OSError or IOError (Python 2) when the ioctl fails.

  property can_be_disabled: bool

    Returns True when watchdog will be disabled by calling close(). Some watchdog devices will keep running no matter what once activated. May raise WatchdogError if called without calling open() first.

  close() → None

    Gracefully close watchdog device.

  describe() → str

    Human readable name for this device

  classmethod from_config(config: Dict[str, Any]) → LinuxWatchdogDevice
  get_support() → WatchdogInfo
  get_timeout() → int

    Returns the current keepalive timeout in effect.

  has_set_timeout() → bool

    Returns True if setting a timeout is supported.

  property is_healthy: bool

    Returns False when calling open() is known to fail.

  property is_running: bool

    Returns True when watchdog is activated and capable of performing it’s task.

  keepalive() → None

    Resets the watchdog timer.

    Watchdog must be open when keepalive is called.

  open() → None

    Open watchdog device.

    When watchdog is opened keepalive must be called. Returns nothing on success or raises WatchdogError if the device could not be opened.

  set_timeout(timeout: int) → None

    Set the watchdog timer timeout.

    Parameters:

      timeout – watchdog timeout in seconds

class patroni.watchdog.linux.TestingWatchdogDevice(device: str)

  Bases: `LinuxWatchdogDevice`

  Converts timeout ioctls to regular writes that can be intercepted from a named pipe.

  _abc_impl = <_abc._abc_data object>
  get_support() → WatchdogInfo
  get_timeout() → int

    Returns the current keepalive timeout in effect.

  set_timeout(timeout: int) → None

    Set the watchdog timer timeout.

    Parameters:

      timeout – watchdog timeout in seconds

  timeout = 60

class patroni.watchdog.linux.WatchdogInfo(options: int, version: int, identity: str)

  Bases: `NamedTuple`

  Watchdog descriptor from the kernel

  _asdict()

    Return a new dict which maps field names to their values.

  _field_defaults = {}
  _fields = ('options', 'version', 'identity')
  classmethod _make(iterable)

    Make a new WatchdogInfo object from a sequence or iterable

  _replace(**kwds)

    Return a new WatchdogInfo object replacing specified fields with new values

  identity: str

    Alias for field number 2

  options: int

    Alias for field number 0

  version: int

    Alias for field number 1

class patroni.watchdog.linux.watchdog_info

  Bases: `Structure`

  _fields_ = [('options', <class 'ctypes.c_uint'>), ('firmware_version', <class 'ctypes.c_uint'>), ('identity', <class 'patroni.watchdog.linux.c_ubyte_Array_32'>)]
  firmware_version

    Structure/Union member

  identity

    Structure/Union member

  options

    Structure/Union member