Skip to content
Snippets Groups Projects

Netbox integration including intial CLI for populating base data and ...

Merged Neda Moeini requested to merge netbox-integration into develop
Files
13
gso/cli/netbox.py 0 → 100644
+ 36
0
 
import typer
 
from pynetbox import RequestError
 
 
from gso.services.netbox_client import NetBoxClient
 
 
app: typer.Typer = typer.Typer()
 
 
 
@app.command()
 
def netbox_initial_setup() -> None:
 
"""Set up NetBox for the first time.
 
 
It includes:
 
- Creating a default site (GEANT)
 
- Creating device roles (Router)
 
"""
 
typer.echo("Initial setup of NetBox ...")
 
typer.echo("Connecting to NetBox ...")
 
 
nbclient = NetBoxClient()
 
 
typer.echo("Creating GEANT site ...")
 
try:
 
nbclient.create_device_site("GEANT", "geant")
 
typer.echo("Site created successfully.")
 
except RequestError as e:
 
typer.echo(f"Error creating site: {e}")
 
 
typer.echo("Creating Router device role ...")
 
try:
 
nbclient.create_device_role("router", "router")
 
typer.echo("Device role created successfully.")
 
except RequestError as e:
 
typer.echo(f"Error creating device role: {e}")
 
 
typer.echo("NetBox initial setup completed successfully.")
Loading