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