actions¶
Actions module.
- class wmflib.actions.Actions(name: Hashable)[source]¶
Bases:
object
Class to keep track and log a set of actions performed and their result with a nice string representation.
The instance gets initialized with the given name, that can represent a host or any other identifier.
It allows to save actions performed on the given name with their status (success, warning, failure). It exposes the following public properties:
name
: the name passed to the instance at instantiation time.has_warnings
: abool
that isTrue
when at least one warning action was registered,False
otherwise.has_failures
: abool
that isTrue
when at least one failed action was registered,False
otherwise.
When converted to a string it returns a nicely formatted representation of the instance and all its actions that can be used as-is in Phabricator:
<name> (**<status>**) - <action1> - <action2> - ...
The status is enclosed in double asterisks to be rendered as bold in Phabricator.
Examples
actions = Actions('host1001') actions.success('Downtimed on Icinga') actions.success('Restarted ntp') print(actions)
The above code will print:
host1001 (**PASS**) - Downtimed on Icinga - Restarted ntp
- Parameters:
name (Hashable) – the name of the set of actions to be registered.
- property status: str¶
Return the current status of the actions based on the worst result recorded.
- Returns:
FAIL
: if there was at least one failure action registeredWARN
if there was at least one warning action and noFAIL
actions registeredPASS
if only success actions were registered
- Return type:
- success(message: str) None [source]¶
Register a successful action, it gets also logged with info level.
- Parameters:
message (str) – the action description.
- class wmflib.actions.ActionsDict[source]¶
Bases:
dict
Custom dictionary with defaultdict capabilities for the
wmflib.actions.Action
class.Automatically instantiate and returns a new instance of the
wmflib.actions.Actions
class for every missing key like acollections.defaultdict
.When accessing a missing key, the key itself is passed to the new
wmflib.actions.Actions
instance asname
.When converted to string returns a nicely formatted representation of the instance and all its items, that can be used as-is in Phabricator.
Examples
actions = ActionsDict() actions['host1001'].success('Downtimed on Icinga') actions['host1001'].failure('**Failed to restart ntp**') # Will be rendered in bold in Phabricator actions['host2001'].warning('//Host with alerts on Icinga//') # Will be rendered in italic in Phabricator print(actions)
The above code will print:
- host1001 (**FAIL**) - Downtimed on Icinga - **Failed to restart ntp** - host2001 (**WARN**) - //Host not optimal on Icinga//
It will also include a final newline at the end of the block that doesn’t get rendered in this documentation.