Model

class lsst.ts.watcher.Model(domain, config, alarm_callback=None)

Bases: object

Watcher model: constructs and manages rules and alarms.

Parameters
domainlsst.ts.salobj.Domain

DDS Domain.

configtypes.SimpleNamespace

Watcher configuration validated against the Watcher schema.

alarm_callbackcallable, optional

Coroutine (async function) to call whenever an alarm changes state, or None if no callback wanted. The coroutine receives one argument: this alarm.

Raises
TypeError

If alarm_callback is not None and not a coroutine.

Attributes Summary

enabled

Get or set the enabled state of the Watcher model.

Methods Summary

acknowledge_alarm(name, severity, user)

Acknowledge one or more alarms.

add_rule(rule)

Add a rule.

close()

Stop rules and close remotes.

disable()

Disable the model.

enable()

Enable the model.

get_filtered_topic_wrapper(topic, filter_field)

Get an existing TopicWrapper.

get_rules(name_regex)

Get all rules whose name matches the specified regular expression.

make_filtered_topic_wrapper(topic, filter_field)

Make a FilteredTopicWrapper, or return an existing one, if found.

mute_alarm(name, duration, severity, user)

Mute one or more alarms for a specified duration.

start()

Start all remotes.

unacknowledge_alarm(name)

Unacknowledge one or more alarms.

unmute_alarm(name)

Unmute one or more alarms.

Attributes Documentation

enabled

Get or set the enabled state of the Watcher model.

Methods Documentation

async acknowledge_alarm(name, severity, user)

Acknowledge one or more alarms.

Parameters
namestr

Regular expression for alarm name(s) to acknowledge.

severitylsst.ts.idl.enums.Watcher.AlarmSeverity or int

Severity to acknowledge. If the severity goes above this level the alarm will unacknowledge itself.

userstr

Name of user; used to set acknowledged_by.

add_rule(rule)

Add a rule.

Parameters
ruleBaseRule

Rule to add.

Raises
ValueError

If a rule by this name already exists

RuntimeError

If the rule uses a remote for which no IDL file is available in the ts_idl package.

RuntimeEror:

If the rule references a topic that does not exist.

async close()

Stop rules and close remotes.

disable()

Disable the model. A no-op if already disabled.

enable()

Enable the model. A no-op if already enabled.

get_filtered_topic_wrapper(topic, filter_field)

Get an existing TopicWrapper.

Parameters
topiclsst.ts.salobj.ReadTopic

Topic to read.

filter_fieldstr

Field to filter on. The field must be a scalar. It should also have a smallish number of expected values, in order to avoid caching too much data.

Raises
KeyError

If the wrapper is not in the registry.

get_rules(name_regex)

Get all rules whose name matches the specified regular expression.

Parameters
name_regexstr

Regular expression for alarm name(s) to return.

Returns
rulesgenerator

An iterator over rules.

make_filtered_topic_wrapper(topic, filter_field)

Make a FilteredTopicWrapper, or return an existing one, if found.

Call this, instead of constructing a FilteredTopicWrapper directly. That makes sure cached value is returned, if it exists (avoiding an exception in the class constructor).

Parameters
topiclsst.ts.salobj.ReadTopic

Topic to read.

filter_fieldstr

Field to filter on. The field must be a scalar. It should also have a smallish number of expected values, in order to avoid caching too much data.

Notes

Watcher rules typically do not use FilteredTopicWrapper directly. Instead they use subclasses of BaseFilteredFieldWrapper. Each filtered field wrapper creates a FilteredTopicWrapper for internal use.

async mute_alarm(name, duration, severity, user)

Mute one or more alarms for a specified duration.

Parameters
namestr

Regular expression for alarm name(s) to mute.

durationfloat

How long to mute the alarm (sec)

severitylsst.ts.idl.enums.Watcher.AlarmSeverity or int

Severity to mute; used to set the mutedSeverity field of the alarm event.

userstr

Name of user; used to set acknowledged_by.

async start()

Start all remotes.

async unacknowledge_alarm(name)

Unacknowledge one or more alarms.

Parameters
namestr

Regular expression for alarm name(s) to unacknowledge.

async unmute_alarm(name)

Unmute one or more alarms.

Parameters
namestr

Regular expression for alarm name(s) to unmute.