mikroman/py/libs/check_routeros/routeros_check/check/system_uptime.py

55 lines
1.2 KiB
Python
Raw Normal View History

# SPDX-FileCopyrightText: PhiBo DinoTools (2021)
# SPDX-License-Identifier: GPL-3.0-or-later
import click
import librouteros
import librouteros.query
import nagiosplugin
from ..cli import cli
from ..helper import logger
from ..resource import RouterOSCheckResource
class SystemUptimeResource(RouterOSCheckResource):
name = "UPTIME"
def __init__(self, cmd_options):
super().__init__(cmd_options=cmd_options)
def probe(self):
api = self._connect_api()
logger.info("Fetching data ...")
call = api.path(
"/system/resource"
).select(
librouteros.query.Key("uptime"),
)
results = tuple(call)
result = results[0]
yield nagiosplugin.Metric(
name="uptime",
value=self.parse_routeros_time_duration(result["uptime"]),
uom="s",
min=0,
)
@cli.command("system.uptime")
@click.pass_context
@nagiosplugin.guarded
def system_uptime(ctx):
"""Get Uptime of a device"""
check = nagiosplugin.Check(
SystemUptimeResource(
cmd_options=ctx.obj,
),
nagiosplugin.ScalarContext(
name="uptime",
)
)
check.main(verbose=ctx.obj["verbose"])