From 5d3bc30f9bfa17c3520686ac96f4df91d6a56466 Mon Sep 17 00:00:00 2001 From: Olivier BEDOUET <18343642+obedouet@users.noreply.github.com> Date: Fri, 29 Mar 2024 19:15:57 +0100 Subject: [PATCH] set attr from interfaces.yml (#96) * set attr from interfaces.yml * add examples in yml * fixing manufacturer name * fixes --------- Co-authored-by: obedouet --- src/netbox_initializers/initializers/interfaces.py | 4 ++++ .../initializers/yaml/device_types.yml | 8 ++++++++ src/netbox_initializers/initializers/yaml/devices.yml | 6 ++++++ src/netbox_initializers/initializers/yaml/interfaces.yml | 5 +++++ 4 files changed, 23 insertions(+) diff --git a/src/netbox_initializers/initializers/interfaces.py b/src/netbox_initializers/initializers/interfaces.py index fc5f9b5..81f226a 100644 --- a/src/netbox_initializers/initializers/interfaces.py +++ b/src/netbox_initializers/initializers/interfaces.py @@ -48,6 +48,10 @@ def load_data(self): if created: print(f"🧷 Created interface {interface} on {interface.device}") + else: + for name in defaults: + setattr(interface, name, defaults[name]) + interface.save() self.set_custom_fields_values(interface, custom_field_data) self.set_tags(interface, tags) diff --git a/src/netbox_initializers/initializers/yaml/device_types.yml b/src/netbox_initializers/initializers/yaml/device_types.yml index 3ee6186..c8842b9 100644 --- a/src/netbox_initializers/initializers/yaml/device_types.yml +++ b/src/netbox_initializers/initializers/yaml/device_types.yml @@ -16,6 +16,14 @@ # u_height: 0 # custom_field_data: # text_field: Description +# - model: TOR-8P +# manufacturer: No Name +# part_number: vlab-eos +# slug: tor-8p +# interfaces: +# - name: Ethernet1 +# type: 1000base-t +# description: UPLINK # - model: Other # manufacturer: No Name # slug: other diff --git a/src/netbox_initializers/initializers/yaml/devices.yml b/src/netbox_initializers/initializers/yaml/devices.yml index 953ad36..32ae82e 100644 --- a/src/netbox_initializers/initializers/yaml/devices.yml +++ b/src/netbox_initializers/initializers/yaml/devices.yml @@ -55,3 +55,9 @@ # custom_field_data: # text_field: Description # +## Templated device +# - name: gns3-tor +# device_role: switch +# device_type: TOR-8P +# site: SING 1 +# rack: rack-03 diff --git a/src/netbox_initializers/initializers/yaml/interfaces.yml b/src/netbox_initializers/initializers/yaml/interfaces.yml index 5c24875..891b3f0 100644 --- a/src/netbox_initializers/initializers/yaml/interfaces.yml +++ b/src/netbox_initializers/initializers/yaml/interfaces.yml @@ -34,3 +34,8 @@ # enabled: true # type: virtual # name: loopback + +## Example to add attributes on a templated interface +# - name: Ethernet1 +# mtu: 9100 +# device: gns3-tor