Skip to content

Commit 663b456

Browse files
authored
Add no_slug parameter (to use name instead of slug) (#18)
* Add no_slug parameter (to use name instead of slug) * Rename get_value_type_field to get_slug_field for clarity
1 parent 13e7bdb commit 663b456

File tree

2 files changed

+14
-10
lines changed

2 files changed

+14
-10
lines changed

netbox_atlas_plugin/api/labels.py

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
class LabelDict(dict):
22

3-
def add_netbox_labels(self, obj, target_name=None):
3+
def add_netbox_labels(self, obj, target_name=None, value_type="slug"):
44
self.__setitem__('server_id', str(obj.id))
55
if getattr(obj, "status", None) is not None:
66
self.__setitem__('status', obj.status)
@@ -16,29 +16,29 @@ def add_netbox_labels(self, obj, target_name=None):
1616
self.__setitem__('name', f"{obj.name}-{target_name}")
1717

1818
if getattr(obj, "device_type", None) is not None:
19-
self.__setitem__('manufacturer', obj.device_type.manufacturer.slug)
20-
self.__setitem__('device_type', obj.device_type.slug)
19+
self.__setitem__('manufacturer', getattr(obj.device_type.manufacturer, value_type, ""))
20+
self.__setitem__('device_type', getattr(obj.device_type, value_type, ""))
2121
if getattr(obj.device_type, "model", None) is not None:
2222
self.__setitem__('model', obj.device_type.model)
2323

2424
if getattr(obj, "role", None) is not None:
25-
self.__setitem__('role', obj.role.slug)
25+
self.__setitem__('role', getattr(obj.role, value_type, ""))
2626

2727
if getattr(obj, "site", None) is not None:
28-
self.__setitem__('site', obj.site.slug)
28+
self.__setitem__('site', getattr(obj.site, value_type, ""))
2929

3030
if getattr(obj, "platform", None) is not None:
31-
self.__setitem__('platform', obj.platform.slug)
31+
self.__setitem__('platform', getattr(obj.platform, value_type, ""))
3232

3333
if getattr(obj, "serial", None) is not None:
3434
self.__setitem__('serial', obj.serial)
3535

3636
if getattr(obj, "cluster", None) is not None:
3737
self.__setitem__("cluster", obj.cluster.name)
3838
if obj.cluster.group:
39-
self.__setitem__("cluster_group", obj.cluster.group.slug)
39+
self.__setitem__("cluster_group", getattr(obj.cluster.group, value_type, ""))
4040
if obj.cluster.type:
41-
self.__setitem__("cluster_type", obj.cluster.type.slug)
41+
self.__setitem__("cluster_type", getattr(obj.cluster.type, value_type, ""))
4242

4343
def add_metrics_label(self, value):
4444
if value != '':

netbox_atlas_plugin/api/serializers.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ def get_target_field(self):
2222
@cached_property
2323
def get_metrics_field(self):
2424
return self.context['request'].query_params.get('metrics_label', '')
25+
26+
@cached_property
27+
def get_slug_field(self):
28+
return "slug" if self.context['request'].query_params.get('no_slug', True) else "name"
2529

2630
@cached_property
2731
def get_custom_fields(self):
@@ -78,9 +82,9 @@ def get_labels(self, dv):
7882
labels = LabelDict()
7983

8084
if self.context['request'].query_params.get('target_in_name', False):
81-
labels.add_netbox_labels(dv, None)
85+
labels.add_netbox_labels(dv, None, self.get_slug_field)
8286
else:
83-
labels.add_netbox_labels(dv, self.get_target_field)
87+
labels.add_netbox_labels(dv, self.get_target_field, self.get_slug_field)
8488
labels.add_custom_labels(self.get_custom_fields)
8589
labels.add_custom_labels(self.get_configcontext(dv))
8690
labels.add_custom_labels(self.get_url(dv))

0 commit comments

Comments
 (0)