52 lines
1.3 KiB
Python
52 lines
1.3 KiB
Python
|
|
||
|
import pynetbox
|
||
|
|
||
|
from netbox_agent.config import netbox_instance as nb
|
||
|
|
||
|
|
||
|
def setup_netbox(dc, device_role, manufacturer, model):
|
||
|
try:
|
||
|
nb_dc = nb.dcim.sites.create(
|
||
|
name=dc,
|
||
|
slug=dc.lower(),
|
||
|
)
|
||
|
except pynetbox.RequestError:
|
||
|
nb_dc = nb.dcim.sites.get(
|
||
|
slug=dc.lower()
|
||
|
)
|
||
|
|
||
|
try:
|
||
|
nb_manufacturer = nb.dcim.manufacturers.create(
|
||
|
name=manufacturer,
|
||
|
slug=manufacturer.lower(),
|
||
|
)
|
||
|
except pynetbox.RequestError:
|
||
|
nb_manufacturer = nb.dcim.manufacturers.get(
|
||
|
slug=manufacturer.lower()
|
||
|
)
|
||
|
|
||
|
try:
|
||
|
nb_device_role = nb.dcim.device_roles.create(
|
||
|
name=device_role,
|
||
|
slug=device_role.lower(),
|
||
|
color='f44336',
|
||
|
)
|
||
|
except pynetbox.RequestError:
|
||
|
nb_device_role = nb.dcim.device_roles.get(
|
||
|
slug=device_role.lower(),
|
||
|
)
|
||
|
|
||
|
try:
|
||
|
nb_device_type = nb.dcim.device_types.create(
|
||
|
model=model,
|
||
|
slug=model.lower().replace(' ', '_'),
|
||
|
device_role=nb_device_role.id,
|
||
|
manufacturer=nb_manufacturer.id,
|
||
|
)
|
||
|
except pynetbox.RequestError:
|
||
|
nb_device_type = nb.dcim.device_types.get(
|
||
|
slug=model.lower().replace(' ', '_'),
|
||
|
)
|
||
|
|
||
|
return nb_dc, nb_manufacturer, nb_device_role, nb_device_type
|