mirror of
https://github.com/TheNetworkGuy/netbox-zabbix-sync.git
synced 2025-12-19 03:42:23 -06:00
🚨 Formatted and linted files
This commit is contained in:
@@ -3,11 +3,13 @@
|
||||
"""
|
||||
All of the Zabbix Usermacro related configuration
|
||||
"""
|
||||
from re import match
|
||||
from logging import getLogger
|
||||
from re import match
|
||||
|
||||
from modules.tools import field_mapper
|
||||
|
||||
class ZabbixUsermacros():
|
||||
|
||||
class ZabbixUsermacros:
|
||||
"""Class that represents a Zabbix interface."""
|
||||
|
||||
def __init__(self, nb, usermacro_map, usermacro_sync, logger=None, host=None):
|
||||
@@ -42,40 +44,46 @@ class ZabbixUsermacros():
|
||||
"""
|
||||
Validates usermacro name
|
||||
"""
|
||||
pattern = r'\{\$[A-Z0-9\._]*(\:.*)?\}'
|
||||
pattern = r"\{\$[A-Z0-9\._]*(\:.*)?\}"
|
||||
return match(pattern, macro_name)
|
||||
|
||||
def render_macro(self, macro_name, macro_properties):
|
||||
"""
|
||||
Renders a full usermacro from partial input
|
||||
"""
|
||||
macro={}
|
||||
macrotypes={'text': 0, 'secret': 1, 'vault': 2}
|
||||
macro = {}
|
||||
macrotypes = {"text": 0, "secret": 1, "vault": 2}
|
||||
if self.validate_macro(macro_name):
|
||||
macro['macro'] = str(macro_name)
|
||||
macro["macro"] = str(macro_name)
|
||||
if isinstance(macro_properties, dict):
|
||||
if not 'value' in macro_properties:
|
||||
self.logger.error(f'Usermacro {macro_name} has no value, skipping.')
|
||||
if not "value" in macro_properties:
|
||||
self.logger.error(f"Usermacro {macro_name} has no value, skipping.")
|
||||
return False
|
||||
macro['value'] = macro_properties['value']
|
||||
macro["value"] = macro_properties["value"]
|
||||
|
||||
if 'type' in macro_properties and macro_properties['type'].lower() in macrotypes:
|
||||
macro['type'] = str(macrotypes[macro_properties['type']])
|
||||
if (
|
||||
"type" in macro_properties
|
||||
and macro_properties["type"].lower() in macrotypes
|
||||
):
|
||||
macro["type"] = str(macrotypes[macro_properties["type"]])
|
||||
else:
|
||||
macro['type'] = str(0)
|
||||
macro["type"] = str(0)
|
||||
|
||||
if ('description' in macro_properties and
|
||||
isinstance(macro_properties['description'], str)):
|
||||
macro['description'] = macro_properties['description']
|
||||
if "description" in macro_properties and isinstance(
|
||||
macro_properties["description"], str
|
||||
):
|
||||
macro["description"] = macro_properties["description"]
|
||||
else:
|
||||
macro['description'] = ""
|
||||
macro["description"] = ""
|
||||
|
||||
elif isinstance(macro_properties, str):
|
||||
macro['value'] = macro_properties
|
||||
macro['type'] = str(0)
|
||||
macro['description'] = ""
|
||||
macro["value"] = macro_properties
|
||||
macro["type"] = str(0)
|
||||
macro["description"] = ""
|
||||
else:
|
||||
self.logger.error(f'Usermacro {macro_name} is not a valid usermacro name, skipping.')
|
||||
self.logger.error(
|
||||
f"Usermacro {macro_name} is not a valid usermacro name, skipping."
|
||||
)
|
||||
return False
|
||||
return macro
|
||||
|
||||
@@ -83,18 +91,25 @@ class ZabbixUsermacros():
|
||||
"""
|
||||
Generate full set of Usermacros
|
||||
"""
|
||||
macros=[]
|
||||
macros = []
|
||||
# Parse the field mapper for usermacros
|
||||
if self.usermacro_map:
|
||||
self.logger.debug(f"Host {self.nb.name}: Starting usermacro mapper")
|
||||
field_macros = field_mapper(self.nb.name, self.usermacro_map, self.nb, self.logger)
|
||||
field_macros = field_mapper(
|
||||
self.nb.name, self.usermacro_map, self.nb, self.logger
|
||||
)
|
||||
for macro, value in field_macros.items():
|
||||
m = self.render_macro(macro, value)
|
||||
if m:
|
||||
macros.append(m)
|
||||
# Parse NetBox config context for usermacros
|
||||
if "zabbix" in self.nb.config_context and "usermacros" in self.nb.config_context['zabbix']:
|
||||
for macro, properties in self.nb.config_context['zabbix']['usermacros'].items():
|
||||
if (
|
||||
"zabbix" in self.nb.config_context
|
||||
and "usermacros" in self.nb.config_context["zabbix"]
|
||||
):
|
||||
for macro, properties in self.nb.config_context["zabbix"][
|
||||
"usermacros"
|
||||
].items():
|
||||
m = self.render_macro(macro, properties)
|
||||
if m:
|
||||
macros.append(m)
|
||||
|
||||
Reference in New Issue
Block a user