cleaned up a bit

This commit is contained in:
Noah
2025-08-22 16:28:53 +10:00
committed by Andrew Foster
parent 0625c3c2d9
commit 9a70da1c12
3 changed files with 6 additions and 42 deletions
+2 -28
View File
@@ -563,6 +563,7 @@ class NetBoxObject:
# check data model to see how we have to parse the value
defined_value_type = self.data_model.get(key)
# value must be a string witch a certain max length
if isinstance(defined_value_type, int):
if not isinstance(value, str):
@@ -586,7 +587,7 @@ class NetBoxObject:
# check if value is in defined list
elif value not in defined_value_type:
log.error(f"this one. Invalid data type for '{key}' (must be one of {defined_value_type}), got: '{value}'")
log.error(f"Invalid data type for '{key}' (must be one of {defined_value_type}), got: '{value}'")
continue
# just check the type of the value
@@ -1272,21 +1273,6 @@ class NetBoxObject:
if isinstance(this_site, dict):
return this_site.get("name")
def get_scope_type(self, data=None):
this_data_set = data
if this_data_set is None:
this_data_set = self.data
return this_data_set.get("scope_type")
def get_scope_id(self, data=None):
this_data_set = data
if this_data_set is None:
this_data_set = self.data
return this_data_set.get("scope_id")
class NBObjectList(list):
"""
@@ -1884,7 +1870,6 @@ class NBCluster(NetBoxObject):
primary_key = "name"
secondary_key = "scope_id"
prune = False
# include_secondary_key_if_present = True
def __init__(self, *args, **kwargs):
self.mapping = NetBoxMappings()
@@ -1906,21 +1891,10 @@ class NBCluster(NetBoxObject):
def update(self, data=None, read_from_netbox=False, source=None):
# Add adaption for change in NetBox 4.2.0 Device model
# if version.parse(self.inventory.netbox_api_version) >= version.parse("4.2.0"):
# if data.get("site") is not None:
# data["scope_id"] = data.get("site")
# data["scope_type"] = "dcim.site"
# del data["site"]
# if data.get("scope_id") is not None:
# data["scope_type"] = "dcim.site"
super().update(data=data, read_from_netbox=read_from_netbox, source=source)
def resolve_relations(self):
log.debug2(f"Resolving relations for {self.name} '{self.get_display_name()}'")
# self.resolve_scoped_relations("scope_id", "scope_type")
super().resolve_relations()
+1
View File
@@ -149,6 +149,7 @@ class VMWareConfig(ConfigBase):
The scope type can be 'dcim.site', 'dcim.sitegroup', 'dcim.location' or 'dcim.region'.
This is done with a comma separated key = value list.
Can be set to "<NONE>" to not assign a scope type.
Note: this does not remove scope types from existing clusters in NetBox.
key: defines a cluster name as regex
value: defines the NetBox scope type name (use quotes if name contains commas)
""",
+3 -14
View File
@@ -498,10 +498,7 @@ class VMWareHandler(SourceBase):
site_name = None
log.debug2(f"Site relation for '{object_name}' set to None")
if site_name is None and object_type == NBCluster:
log.debug(f"No site relation for {object_type.name} '{object_name}' found")
log.debug(f"Returning site name '{site_name}' for {object_type.name} '{object_name}'. End of method.")
log.debug2(f"Returning site name '{site_name}' for {object_type.name} '{object_name}'.")
return site_name
@@ -574,12 +571,6 @@ class VMWareHandler(SourceBase):
relation_name = "cluster_scope_id_relation"
scope_id = self.get_object_relation(object_name, relation_name)
# object_instance = self.inventory.get_by_data(object_type, data={"name": object_name})
# if object_instance is None:
# log.debug2(f"No {object_type.name} found with name '{object_name}'.")
# return None
if scope_id is None:
scope_id = object_name
@@ -1501,7 +1492,7 @@ class VMWareHandler(SourceBase):
}
if version.parse(self.inventory.netbox_api_version) >= version.parse("4.2.0"):
# four scope types here (dcim.site, dcim.location, dcim.region, dcim.sitegroup)
# set the scope type and id if they are defined
if scope_type is not None:
data["scope_type"] = scope_type
data["scope_id"] = scope_id
@@ -1513,7 +1504,7 @@ class VMWareHandler(SourceBase):
else:
log.debug(f"Cluster '{full_cluster_name}' has no scope type or scope id.")
else:
# old verison has site only (# TODO: required??) --> optional (tested in netbox versions 4.1.11 and 3.7.1)
# set site_name in the pre-4.2.0 NetBox versions is one is found
if site_name is not None:
data["site"] = {"name": site_name}
@@ -1568,10 +1559,8 @@ class VMWareHandler(SourceBase):
cluster_object = fallback_cluster_object
if cluster_object is not None:
# log.debug(f"1st The data items are {data.items()} for cluster '{name}'")
cluster_object.update(data=data, source=self)
else:
# log.debug(f"1st (alternative) The data items are {data.items()} for cluster '{name}'")
cluster_object = self.inventory.add_update_object(NBCluster, data=data, source=self)
self.add_object_to_cache(obj, cluster_object)