- exception ironic.conductor.periodics.Stop[source]¶
A signal to stop the current iteration of a periodic task.
- ironic.conductor.periodics.node_periodic(purpose, spacing, enabled=True, filters=None, predicate=None, predicate_extra_fields=(), limit=None, shared_task=True, node_count_metric_name=None)[source]¶
A decorator to define a periodic task to act on nodes.
Defines a periodic task that fetches the list of nodes mapped to the current conductor which satisfy the provided filters.
The decorated function must be a method on either the conductor manager or a hardware interface. The signature is:
for conductor manager:
(self, task, context)
for hardware interfaces:
(self, task, manager, context).
When the periodic is running on a hardware interface, only tasks using this interface are considered.
NodeLockedexceptions are ignored. Raise
Stopto abort the current iteration of the task and reschedule it.
purpose – a human-readable description of the activity, e.g. “verifying that the cat is purring”.
spacing – how often (in seconds) to run the periodic task.
enabled – whether the task is enabled; defaults to
spacing > 0.
filters – database-level filters for the nodes.
predicate – a callable to run on the fetched nodes before creating a task for them. The only parameter will be a named tuple with fields
conductor_groupplus everything from
predicate_extra_fields. If the callable accepts a 2nd parameter, it will be the conductor manager instance.
predicate_extra_fields – extra fields to fetch on the initial request and pass into the
predicate. Must not contain
conductor_groupsince they are always included.
limit – how many nodes to process before stopping the current iteration. If
False, the node is not counted. If the decorated function returns
False, the node is not counted either. Can be a callable, in which case it will be called on each iteration to determine the limit.
shared_task – if
True, the task will have a shared lock. It is recommended to start with a shared lock and upgrade it only if needed.
node_count_metric_name – A string value to identify a metric representing the count of matching nodes to be recorded upon the completion of the periodic.