Commit f5410600 authored by nimrod's avatar nimrod
Browse files

Allow for plugin handling chaining.

So you can insert mnpw between some other system and the plugin.
parent 06ea95db
Loading
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -19,7 +19,8 @@ Usage

.. code:: shell

  usage: mnpw [-h] [-v] [-V] [-d] [-q] [-w] [-u] [-e] [-t TIMEOUT] command [arguments ...]
  usage: mnpw [-h] [-v] [-V] [-c] [-d] [-q] [-w] [-u] [-e] [-t TIMEOUT]
              command [arguments ...]

  My Nagios plugin wrapper.

@@ -31,6 +32,8 @@ Usage
    -h, --help            show this help message and exit
    -v, --verbose         Verbose output
    -V, --version         show program's version number and exit
    -c, --chain           Echo the check output and exit with the same exit
                          code, allow for chaining with plugin handlers.
    -d, --dry-run         Dry-run, don't notify
    -q, --quiet, --silent
                          No output, except for errors.
+12 −0
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ __version__ = "0.1.2"
import argparse
import logging
import socket
import sys

import requests

@@ -41,6 +42,12 @@ def main(): # noqa: MC0001
        action="version",
        version=f"mnpw version {__version__}",
    )
    parser.add_argument(
        "-c",
        "--chain",
        help="Echo the check output and exit with the same exit code, allow for chaining with plugin handlers.",  # noqa: E501
        action="store_true",
    )
    parser.add_argument(
        "-d", "--dry-run", help="Dry-run, don't notify", action="store_true"
    )
@@ -77,6 +84,7 @@ def main(): # noqa: MC0001
        default=nagios.DEFAULT_TIMEOUT,
    )
    args = parser.parse_args()

    log_level = logging.WARNING  # Default level.
    if args.verbose and args.quiet:
        parser.error("Can't specify verbose and quiet output together.")
@@ -115,6 +123,10 @@ def main(): # noqa: MC0001
        if args.errors:
            notify(f"Check {args.command} on {HOSTNAME} status is invalid.")

    if args.chain:
        print(check._stdout)  # pylint: disable=protected-access
        sys.exit(check.ExitCode)


if __name__ == "__main__":
    main()