mirror of
https://github.com/TheNetworkGuy/netbox-zabbix-sync.git
synced 2026-03-21 12:08:39 -06:00
Made the token checks more consistent with function variables and updated the tests to better reflect the use of a proper V2 token.
This commit is contained in:
@@ -145,21 +145,32 @@ class Sync:
|
||||
support_token_url = (
|
||||
"https://netboxlabs.com/docs/netbox/integrations/rest-api/#v1-and-v2-tokens" # noqa: S105
|
||||
)
|
||||
token_prefix = "nbt_" # noqa: S105
|
||||
nb_v2_support_version = "4.5"
|
||||
v2_token = bool(token.startswith(token_prefix) and "." in token)
|
||||
v2_error_token = bool(token.startswith(token_prefix) and "." not in token)
|
||||
# Check if the token is passed without a proper key.token format
|
||||
if v2_error_token:
|
||||
logger.error(
|
||||
"It looks like an invalid v2 token was passed. For more info, see %s",
|
||||
support_token_url,
|
||||
)
|
||||
return False
|
||||
# Warning message for Netbox token v1 with Netbox v4.5 and higher
|
||||
if not str(token).startswith("nbt_") and nb_version >= "4.5":
|
||||
if not v2_token and nb_version >= nb_v2_support_version:
|
||||
logger.warning(
|
||||
"Using Netbox v1 token format. "
|
||||
"Consider updating to a v2 token. For more info, see %s",
|
||||
support_token_url,
|
||||
)
|
||||
elif nb_version < "4.5" and str(token).startswith("nbt_"):
|
||||
elif v2_token and nb_version < nb_v2_support_version:
|
||||
logger.error(
|
||||
"Using Netbox v2 token format with Netbox version lower than 4.5. "
|
||||
"Revert to v1 token or upgrade Netbox to 4.5 or higher. For more info, see %s",
|
||||
support_token_url,
|
||||
)
|
||||
return False
|
||||
elif nb_version >= "4.5" and str(token).startswith("nbt_"):
|
||||
elif v2_token and nb_version >= nb_v2_support_version:
|
||||
logger.debug("Using NetBox v2 token format.")
|
||||
else:
|
||||
logger.debug("Using NetBox v1 token format.")
|
||||
@@ -217,11 +228,15 @@ class Sync:
|
||||
netbox_site_groups = convert_recordset(self.netbox.dcim.site_groups.all())
|
||||
netbox_regions = convert_recordset(self.netbox.dcim.regions.all())
|
||||
netbox_journals = self.netbox.extras.journal_entries
|
||||
zabbix_groups = self.zabbix.hostgroup.get(output=["groupid", "name"]) # type: ignore
|
||||
zabbix_groups = self.zabbix.hostgroup.get( # type: ignore
|
||||
output=["groupid", "name"]
|
||||
)
|
||||
zabbix_templates = self.zabbix.template.get( # type: ignore
|
||||
output=["templateid", "name"]
|
||||
)
|
||||
zabbix_proxies = self.zabbix.proxy.get(output=["proxyid", proxy_name]) # type: ignore
|
||||
zabbix_proxies = self.zabbix.proxy.get( # type: ignore
|
||||
output=["proxyid", proxy_name]
|
||||
)
|
||||
# Set empty list for proxy processing Zabbix <= 6
|
||||
zabbix_proxygroups = []
|
||||
if str(self.zabbix.version).startswith("7"):
|
||||
|
||||
+2
-2
@@ -217,7 +217,7 @@ class TestNetboxTokenHandling(unittest.TestCase):
|
||||
syncer = Sync()
|
||||
|
||||
with self.assertLogs("NetBox-Zabbix-sync", level="ERROR") as log_context:
|
||||
result = syncer._validate_netbox_token("nbt_token123", "3.5")
|
||||
result = syncer._validate_netbox_token("nbt_key123.token123", "3.5")
|
||||
|
||||
self.assertFalse(result)
|
||||
self.assertTrue(
|
||||
@@ -232,7 +232,7 @@ class TestNetboxTokenHandling(unittest.TestCase):
|
||||
syncer = Sync()
|
||||
|
||||
with self.assertLogs("NetBox-Zabbix-sync", level="DEBUG") as log_context:
|
||||
result = syncer._validate_netbox_token("nbt_token123", "4.5")
|
||||
result = syncer._validate_netbox_token("nbt_key123.token123", "4.5")
|
||||
|
||||
self.assertTrue(result)
|
||||
self.assertTrue(
|
||||
|
||||
Reference in New Issue
Block a user