File tree Expand file tree Collapse file tree 4 files changed +103
-0
lines changed Expand file tree Collapse file tree 4 files changed +103
-0
lines changed Original file line number Diff line number Diff line change
1
+ # - name: power feed 1
2
+ # #site: AMS 1
3
+ # power_panel: power panel AMS 1
4
+ # voltage: 208
5
+ # amperage: 50
6
+ # max_utilization: 80
7
+ # phase: Single phase
8
+ # rack: rack-01
9
+ # - name: power feed 2
10
+ # #site: SING 1
11
+ # power_panel: power panel SING 1
12
+ # voltage: 208
13
+ # amperage: 50
14
+ # max_utilization: 80
15
+ # phase: Three-phase
16
+ # rack: rack-03
Original file line number Diff line number Diff line change
1
+ # - name: power panel AMS 1
2
+ # site: AMS 1
3
+ # - name: power panel SING 1
4
+ # site: SING 1
5
+ # rack_group: cage 101
Original file line number Diff line number Diff line change
1
+ import sys
2
+
3
+ from dcim .models import Site , RackGroup , PowerPanel
4
+ from startup_script_utils import *
5
+ from tenancy .models import Tenant
6
+
7
+ power_panels = load_yaml ('/opt/netbox/initializers/power_panels.yml' )
8
+
9
+ if power_panels is None :
10
+ sys .exit ()
11
+
12
+ required_assocs = {
13
+ 'site' : (Site , 'name' )
14
+ }
15
+
16
+ optional_assocs = {
17
+ 'rack_group' : (RackGroup , 'name' )
18
+ }
19
+
20
+ for params in power_panels :
21
+ custom_field_data = pop_custom_fields (params )
22
+
23
+ for assoc , details in required_assocs .items ():
24
+ model , field = details
25
+ query = { field : params .pop (assoc ) }
26
+
27
+ params [assoc ] = model .objects .get (** query )
28
+
29
+ for assoc , details in optional_assocs .items ():
30
+ if assoc in params :
31
+ model , field = details
32
+ query = { field : params .pop (assoc ) }
33
+
34
+ params [assoc ] = model .objects .get (** query )
35
+
36
+ power_panel , created = PowerPanel .objects .get_or_create (** params )
37
+
38
+ if created :
39
+ set_custom_fields_values (power_panel , custom_field_data )
40
+
41
+ print ("⚡ Created Power Panel" , power_panel .site , power_panel .name )
Original file line number Diff line number Diff line change
1
+ import sys
2
+
3
+ from dcim .models import Rack , PowerPanel , PowerFeed
4
+ from startup_script_utils import *
5
+ from tenancy .models import Tenant
6
+
7
+ power_feeds = load_yaml ('/opt/netbox/initializers/power_feeds.yml' )
8
+
9
+ if power_feeds is None :
10
+ sys .exit ()
11
+
12
+ required_assocs = {
13
+ 'power_panel' : (PowerPanel , 'name' )
14
+ }
15
+
16
+ optional_assocs = {
17
+ 'rack' : (Rack , 'name' )
18
+ }
19
+
20
+ for params in power_feeds :
21
+ custom_field_data = pop_custom_fields (params )
22
+
23
+ for assoc , details in required_assocs .items ():
24
+ model , field = details
25
+ query = { field : params .pop (assoc ) }
26
+
27
+ params [assoc ] = model .objects .get (** query )
28
+
29
+ for assoc , details in optional_assocs .items ():
30
+ if assoc in params :
31
+ model , field = details
32
+ query = { field : params .pop (assoc ) }
33
+
34
+ params [assoc ] = model .objects .get (** query )
35
+
36
+ power_feed , created = PowerFeed .objects .get_or_create (** params )
37
+
38
+ if created :
39
+ set_custom_fields_values (power_feed , custom_field_data )
40
+
41
+ print ("⚡ Created Power Feed" , power_feed .name )
You can’t perform that action at this time.
0 commit comments