Skip to main content

Simple REST-client for Netbox

Project description

simple_netbox is a simplified REST Client for Netbox

Features

simple_netbox has following features:
  • manage login

  • simple CRUD via ensure_exists and ensure_absent helper functions

  • auto add slug on creation of objects if not supplied

  • CRUD interface for all possible API URLs

  • create curl commands from all calls (for documentation purposes)

Installation

Install simple_netbox by running:

pip3 install simple_netbox

Examples

CRUD a site

from simple_netbox import NetboxClient
import logging
from getpass import getpass
import secrets
import string

logger = logging.getLogger()
logging.basicConfig(encoding="utf-8", level=logging.INFO)


URL=input("Please Enter Netbox URL: ") or "http://localhost:8000"
token=input("Please Enter the Netbox token: ") or "not set"


nb = NetboxClient(URL,token=token,log_curl_commands=True)

logging.info("list all sites")
logging.info(nb.api.dcim.sites.list()) # alternativly nb.api.dcim.sites.get() can be used


logging.info("create site demo1, slug will be autogenerated if not supplied")

site_id=nb.api.dcim.sites.create(body={"name":"demo1"})["id"] # alternativly nb.api.dcim.sites.post() can be used

logging.info("to filter results on server side following syntax can be used")

logging.info(nb.api.dcim.sites.list(params={"name":"demo1"})) # alternativly nb.api.dcim.sites.get() can be used


nb.api.dcim.sites.patch(site_id,body={"description":"demo1 desc"})

logging.info(f"delete site demo1 (id:{site_id})")

nb.api.dcim.sites.delete(site_id)


logging.info(f"create site demo2 via ensure_exists")

nb.api.dcim.sites.ensure_exists(name="demo2")

logging.info(f"update site demo2 via ensure_exists")

nb.api.dcim.sites.ensure_exists(name="demo2", description="nice location")

logging.info(f"delete site demo2 via ensure_absent")

nb.api.dcim.sites.ensure_absent(name="demo2")

print(nb.api.curl_commands)

Contribute

Roadmap

Selected Roadmap items:
  • add more documentation

  • add some more examples

For documentation please refer to https://simple_netbox.readthedocs.io/en/latest/

License

This project is licensed under the Apache License Version 2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

simple_netbox-0.1.1-py3-none-any.whl (14.6 kB view details)

Uploaded Python 3

File details

Details for the file simple_netbox-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: simple_netbox-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 14.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for simple_netbox-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ff6d5f7e8707425846beb0425a28d03d99397b7986b6eb9d03f08ae950a09537
MD5 774cecf1f6d8d946c7183fba9e74d3cc
BLAKE2b-256 63036de07b088cf9515b1a4eb40525a188dd61c43dc5a5fc7dd953da195ca970

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page