mirror of
https://github.com/bb-Ricardo/netbox-sync.git
synced 2026-05-08 11:00:12 -05:00
cleaned up a bit
This commit is contained in:
@@ -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()
|
||||
|
||||
|
||||
|
||||
@@ -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)
|
||||
""",
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user