Make device-class not required

This commit is contained in:
Adam Goldsmith 2024-12-19 18:50:43 -05:00
parent 75da5babd0
commit d83831620a

View File

@ -142,13 +142,17 @@ class Entities(nagiosplugin.Resource):
name, name,
value, value,
uom, uom,
context=self.device_class, context="scalar_entities" if self.numeric else "text_entities",
min=self.min, min=self.min,
max=self.max, max=self.max,
) )
def probe(self): def probe(self):
template_filter = f"states|selectattr('attributes.device_class', 'eq', '{ self.device_class }')" template_filter = "states"
if self.device_class:
template_filter += (
f"|selectattr('attributes.device_class', 'eq', '{ self.device_class }')"
)
for f in self.filters: for f in self.filters:
op = "ne" if f.negated else "eq" op = "ne" if f.negated else "eq"
template_filter += ( template_filter += (
@ -351,7 +355,7 @@ def main():
"-d", "-d",
"--device-class", "--device-class",
type=str, type=str,
required=True, required=False,
help="device class of entities to monitor", help="device class of entities to monitor",
) )
common_args.add_argument( common_args.add_argument(
@ -469,7 +473,7 @@ def main():
max=args.max, max=args.max,
**parsed_common_args, **parsed_common_args,
), ),
ScalarOrUnknownContext(args.device_class, args.warning, args.critical), ScalarOrUnknownContext("scalar_entities", args.warning, args.critical),
) )
elif args.subparser_name == "text": elif args.subparser_name == "text":
check = nagiosplugin.Check( check = nagiosplugin.Check(
@ -479,7 +483,7 @@ def main():
numeric=False, numeric=False,
**parsed_common_args, **parsed_common_args,
), ),
RegexContext(args.device_class, args.ok, args.warning, args.critical), RegexContext("text_entities", args.ok, args.warning, args.critical),
) )
check.main(args.verbose) check.main(args.verbose)