File tree Expand file tree Collapse file tree 3 files changed +15
-3
lines changed
src/netbox_initializers/initializers Expand file tree Collapse file tree 3 files changed +15
-3
lines changed Original file line number Diff line number Diff line change 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" ,
Original file line number Diff line number Diff line change 11from dcim .models import Device , Interface
2+ from ipam .models import VLAN
23
34from . import BaseInitializer , register_initializer
45
56MATCH_PARAMS = ["device" , "name" ]
67REQUIRED_ASSOCS = {"device" : (Device , "name" )}
8+ OPTIONAL_ASSOCS = {
9+ "untagged_vlan" : (VLAN , "name" ),
10+ }
711RELATED_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
Original file line number Diff line number Diff line change 2929# enabled: true
3030# type: 1000base-t
3131# name: eth0
32+ # untagged_vlan: vlan2
3233# - device: server02
3334# enabled: true
3435# type: virtual
You can’t perform that action at this time.
0 commit comments