Skip to content

Commit 818266a

Browse files
committed
added services startup_script
1 parent dfb0327 commit 818266a

File tree

2 files changed

+39
-0
lines changed

2 files changed

+39
-0
lines changed

initializers/services.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# - name: SSH
2+
# protocol: TCP
3+
# ports:
4+
# - 22
5+
# virtual_machine: virtual machine 1
6+
# - name: FTP
7+
# protocol: TCP
8+
# ports:
9+
# - 21
10+
# device: server01

startup_scripts/320_services.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
from ipam.models import Service
2+
from dcim.models import Device
3+
from virtualization.models import VirtualMachine
4+
from startup_script_utils import load_yaml
5+
import sys
6+
7+
services = load_yaml('/opt/netbox/initializers/services.yml')
8+
9+
if services is None:
10+
sys.exit()
11+
12+
optional_assocs = {
13+
'device': (Device, 'name'),
14+
'virtual_machine': (VirtualMachine, 'name')
15+
}
16+
17+
for params in services:
18+
19+
for assoc, details in optional_assocs.items():
20+
if assoc in params:
21+
model, field = details
22+
query = { field: params.pop(assoc) }
23+
24+
params[assoc] = model.objects.get(**query)
25+
26+
service, created = Service.objects.get_or_create(**params)
27+
28+
if created:
29+
print("🧰 Created Service", service.name)

0 commit comments

Comments
 (0)