Skip to content

Commit 02e93f1

Browse files
authored
Merge pull request #61 from yanndegat/addinterfaceuntaggedvlan
interfaces: add untagged_vlan optional assoc
2 parents 5e56ff5 + 78c28a5 commit 02e93f1

File tree

3 files changed

+15
-3
lines changed

3 files changed

+15
-3
lines changed

src/netbox_initializers/initializers/__init__.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,14 @@
3333
"cluster_types",
3434
"cluster_groups",
3535
"clusters",
36+
"prefix_vlan_roles",
37+
"vlan_groups",
38+
"vlans",
3639
"devices",
3740
"interfaces",
3841
"route_targets",
3942
"vrfs",
4043
"aggregates",
41-
"prefix_vlan_roles",
42-
"vlan_groups",
43-
"vlans",
4444
"virtual_machines",
4545
"virtualization_interfaces",
4646
"prefixes",

src/netbox_initializers/initializers/interfaces.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
from dcim.models import Device, Interface
2+
from ipam.models import VLAN
23

34
from . import BaseInitializer, register_initializer
45

56
MATCH_PARAMS = ["device", "name"]
67
REQUIRED_ASSOCS = {"device": (Device, "name")}
8+
OPTIONAL_ASSOCS = {
9+
"untagged_vlan": (VLAN, "name"),
10+
}
711
RELATED_ASSOCS = {
812
"bridge": (Interface, "name"),
913
"lag": (Interface, "name"),
@@ -29,6 +33,13 @@ def load_data(self):
2933

3034
params[assoc] = model.objects.get(**query)
3135

36+
for assoc, details in OPTIONAL_ASSOCS.items():
37+
if assoc in params:
38+
model, field = details
39+
query = {field: params.pop(assoc)}
40+
41+
params[assoc] = model.objects.get(**query)
42+
3243
matching_params, defaults = self.split_params(params, MATCH_PARAMS)
3344
interface, created = Interface.objects.get_or_create(
3445
**matching_params, defaults=defaults

src/netbox_initializers/initializers/yaml/interfaces.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
# enabled: true
3030
# type: 1000base-t
3131
# name: eth0
32+
# untagged_vlan: vlan2
3233
# - device: server02
3334
# enabled: true
3435
# type: virtual

0 commit comments

Comments
 (0)