| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Some tasks may return a dict in the msg. In that case `stringc` will
fail to colorize it (with "AttributeError: <msg type> object has no
attribute 'split'" error.
|
|
|
|
|
|
| |
This makes the callback plugin behave better when dedup is not possible:
work with the original list of failures instead of raising an unhandled
exception and producing confusing output for users.
|
|
|
|
|
|
|
|
|
|
|
| |
This serves two purposes:
- Gracefully omit the summary if there was an error computing it, no
confusion to the regular end user.
- Provide a stacktrace of the error when running verbose, giving
developers or users reporting bugs a better insight of what went wrong,
as opposed to Ansible's opaque handling of errors in callback plugins.
|
|
|
|
|
| |
The intent is to deduplicate similar errors that happened in many hosts,
making the summary more concise.
|
|
|
|
|
|
|
|
| |
This is useful on its own, and also aids in developing/testing new
checks that are not part of any playbook.
Since the intent when running this playbook is to execute checks, opt
for a less verbose explanation on the error summary.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the past, health checks were implemented with ignore_errors: True in
the playbook level, requiring us to store all failures, ignored or not,
so that we could report on all failed checks.
Now checks are run from a single action plugin entry point, without
ignoring errors (all errors are aggregated via the action plugin).
Since the integration of the openshift_health_checker role with the
install playbook, failure summaries are part of the output of a lot more
calls to ansible-playbook. We shall report only failures that caused the
execution to stop, as ignored failures in the summary only serve to
confuse users.
|
|
|
|
|
| |
Customized the error summary to depend on the intent of the playbook run.
Ensured output makes sense when failures are unrelated to running checks.
|
| |
|
|
|
|
|
|
|
| |
In a project where contributors are free to use whatever editor they
want and we have linting tools that verify the proper formatting of
Python files, it should not be required to have a vim-specific line in
Python files.
|
| |
|
|
This approach should make it easier to add new checks without having to
write lots of YAML and doing things against Ansible (e.g.
ignore_errors).
A single action plugin determines what checks to run per each host,
including arguments to the check. A check is implemented as a class with
a run method, with the same signature as an action plugin and module,
and is normally backed by a regular Ansible module.
Each check is implemented as a separate Python file. This allows whoever
adds a new check to focus solely in a single Python module, and
potentially an Ansible module within library/ too.
All checks are automatically loaded, and only active checks that are
requested by the playbook get executed.
|