Skip to content
Snippets Groups Projects
Verified Commit 5041bcde authored by Jan Pavlíček's avatar Jan Pavlíček
Browse files

feat: script for running monitoring probes

parent c47c8e9f
No related branches found
No related tags found
No related merge requests found
Pipeline #261000 failed
check_mongodb:
path: nagios/check_mongodb.py
runs:
- host: hostname
u: mongoadmin
p: password
A: connect
W: 2
C: 4
- host: hostname
u: mongoadmin
p: password
A: connections
W: 70
C: 80
import argparse
import os
import sys
from threading import Thread
import yaml
def parse_args():
parser = argparse.ArgumentParser(
prog="MonitoringProbes", description="runs monitoring probes defined in config"
)
parser.add_argument("-c", "--config", required=True, help="Filepath to config")
args = parser.parse_args()
return args.config
def open_file(filepath):
try:
with open(filepath) as f:
return f.read()
except OSError as e:
print(f"Cannot open config with path: {filepath}, error: {e.strerror}", file=sys.stderr)
exit(2)
def run_probe(command):
os.system(command)
def main():
config = yaml.safe_load(open_file(parse_args()))
if not config:
return
for name, options in config.items():
for args in options.get("runs"):
probe_run_builder = "python " + options["path"]
for arg_name, arg_val in args.items():
if len(arg_name) == 1:
arg_name = "-" + arg_name
else:
arg_name = "--" + arg_name
probe_run_builder += " " + arg_name + " " + str(arg_val)
Thread(target=run_probe, args=[probe_run_builder]).start()
if __name__ == "__main__":
main()
......@@ -13,5 +13,6 @@ setuptools.setup(
"asyncssh~=2.13",
"docker~=6.0",
"beautifulsoup4~=4.12",
"yaml~=6.0",
],
)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment