Skip to content
GitLab
Explore
Sign in
Register
shore
My Nagios Plugin Wrapper
Compare revisions
d50be8cd2db7dff56a08e0cae90ef49dcf3d6322 to f54106001f320d29ecd37cb0aefb0e37e890a2fa
Commits on Source (2)
Log notification errors.
· 06ea95db
nimrod
authored
Aug 13, 2021
Not much I can do about them.
06ea95db
Allow for plugin handling chaining.
· f5410600
nimrod
authored
Aug 13, 2021
So you can insert mnpw between some other system and the plugin.
f5410600
Hide whitespace changes
Inline
Side-by-side
README.rst
View file @
f5410600
...
...
@@ -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.
...
...
mnpw/__init__.py
View file @
f5410600
...
...
@@ -5,6 +5,7 @@ __version__ = "0.1.2"
import
argparse
import
logging
import
socket
import
sys
import
requests
...
...
@@ -15,9 +16,11 @@ HOSTNAME = socket.gethostname()
def
notify
(
message
):
"""
Send a notification.
"""
requests
.
post
(
r
=
requests
.
post
(
# pylint: disable=invalid-name
"
https://notify.shore.co.il/send
"
,
params
=
{
"
message
"
:
message
}
)
if
not
r
.
ok
:
logging
.
error
(
f
"
Failed to send notification:
{
r
.
reason
}
.
"
)
def
main
():
# noqa: MC0001
...
...
@@ -39,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
"
)
...
...
@@ -75,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.
"
)
...
...
@@ -113,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
()