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
5 files
+ 401
268
Compare changes
  • Side-by-side
  • Inline
Files
5
gso/cli/netbox.py 0 → 100644
+ 40
0
import typer
from pynetbox import RequestError
from gso.services.netbox_client import NetBoxClient, create_device_role, create_device_site
app: typer.Typer = typer.Typer()
@app.command()
def netbox_initial_setup() -> None:
"""Initial setup of NetBox.
It includes:
- Creating a default site (GEANT)
- Creating device roles (Router)
"""
typer.echo("Initial setup of NetBox ...")
typer.echo("Connecting to NetBox ...")
try:
nbclient = NetBoxClient().connect()
except RequestError as e:
typer.echo(f"Error connecting to NetBox: {e}")
return
typer.echo("Creating GEANT site ...")
try:
create_device_site(nbclient, "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:
create_device_role(nbclient, "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