Merge branch 'fix/manufacturer-slug-issue' into development

This commit is contained in:
ricardo.bartels@telekom.de
2021-10-18 15:22:53 +02:00
2 changed files with 10 additions and 8 deletions

View File

@@ -100,12 +100,15 @@ class NetBoxInventory:
if data_id is not None and data_id != 0:
return self.get_by_id(object_type, nb_id=data_id)
# add slug to data if slug is primary key
if object_type.primary_key == "slug" and data.get("name") is not None:
data["slug"] = NetBoxObject.format_slug(data.get("name"))
# try to find object by slug
if "slug" in object_type.data_model.keys() and data.get("name") is not None:
object_slug = NetBoxObject.format_slug(data.get("name"))
for this_object in self.get_all_items(object_type):
if this_object.data.get("slug") == object_slug:
return this_object
# try to find by primary/secondary key
if data.get(object_type.primary_key) is not None:
elif data.get(object_type.primary_key) is not None:
object_name_to_find = None
for this_object in self.get_all_items(object_type):

View File

@@ -468,15 +468,14 @@ class NetBoxObject:
# value must be a string witch a certain max length
if isinstance(defined_value_type, int):
if not isinstance(value, str):
log.error(f"Invalid data type for '{self.__class__.__name__}.{key}' (must be str), got: '{value}'")
log.error(f"Invalid data type for '{self.__class__.__name__}.{key}' (must be str), got: "
f"{value} ({type(value)})")
continue
value = value[0:defined_value_type]
if key == "slug":
value = self.format_slug(text=value, max_len=defined_value_type)
else:
value = value[0:defined_value_type]
if isinstance(defined_value_type, list):
@@ -1230,7 +1229,7 @@ class NBPrefix(NetBoxObject):
class NBManufacturer(NetBoxObject):
name = "manufacturer"
api_path = "dcim/manufacturers"
primary_key = "slug"
primary_key = "name"
prune = False
data_model = {
"name": 50,