Skip to main content

NetBox Python API Client

Project description

NetBox Python

Python API client library for NetBox.

Note: This is a preliminary release and still under development.

Release Build status Commit activity License

Project license

Pull Requests welcome code with love by netbox-community

Table of Contents

About

This is a thin python wrapper over the NetBox API.

Getting Started

To install run pip install netbox-python.

Alternatively, you can clone the repo and run python setup.py install.

Usage

The full documentation is at https://netbox-community.github.io/netbox-python/, but the following should be enough to get started using it.

To begin, import the NetBox client and instantiate it:

from netbox_python import NetBoxClient, Result
nb = NetBoxClient(
    base_url="http://127.0.0.1:8000/", token="1dc6fa5bfcef8390dd83a261c36ed8f1551b2d6b"
)

The first argument NetBoxClient takes is the NetBox URL. The 'token' argument is from NetBox.

Now using the client you can make calls to the api, for example:

# 1. List (paginated)
ret = nb.dcim.sites.list(limit=3)

# 2. Filtered List
ret = nb.dcim.sites.list(region_id="43")

# 3. All
ret = nb.dcim.sites.all()

# 4. Get
ret = nb.dcim.sites.get(24)

# 5. Create
ret = nb.dcim.sites.create(name="foo3", slug="foo3")

# 6. Bulk Create
data = [
    {"name": "foo4", "slug": "foo4"},
    {"name": "foo5", "slug": "foo5"},
    {"name": "foo6", "slug": "foo6"},
]
ret = nb.dcim.sites.create(data)

# 7. Update
ret = nb.dcim.sites.update(26, name="foo2-new", slug="foo2-new-slug")

# 8. Bulk Update
data = [
    {"id": 28, "name": "foo4-new", "slug": "foo4-new"},
    {"id": 29, "name": "foo5-new", "slug": "foo5-new"},
]
ret = nb.dcim.sites.update(data)

# 9. Delete
ret = nb.dcim.sites.delete(37)

# 10. Bulk Delete
data = [{"id": 25}, {"id": 27}]
ret = nb.dcim.sites.delete(data)

The methods on the api's correspond to the NetBox REST API, so ('circuits', 'core', 'dcim', 'extras', 'ipam', 'plugins', 'tenancy', 'users', 'virtualization', 'wireless')

circuits would have 'circuit_terminations', 'circuit_types', etc... off of it. Each of the endpoints has 'list', 'get', 'create', 'update' and 'delete' functions.

Roadmap

See the open issues for a list of proposed features (and known issues).

Support

Reach out to the maintainer at one of the following places:

Contributing

First off, thanks for taking the time to contribute! Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make will benefit everybody else and are greatly appreciated.

Please read our contribution guidelines, and thank you for being involved!

Authors & contributors

The original setup of this repository is by Arthur Hanson.

For a full list of all authors and contributors, see the contributors page.

License

This project is licensed under the Apache Software License 2.0.

See LICENSE for more information.

Project details


Download files

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

Source Distribution

netbox_python-0.1.5.tar.gz (19.8 kB view details)

Uploaded Source

Built Distribution

netbox_python-0.1.5-py2.py3-none-any.whl (15.1 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file netbox_python-0.1.5.tar.gz.

File metadata

  • Download URL: netbox_python-0.1.5.tar.gz
  • Upload date:
  • Size: 19.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for netbox_python-0.1.5.tar.gz
Algorithm Hash digest
SHA256 3d6436adfc93a0fb2fb4eb912ab64070f20a2ce5414ae5988d540c872a8e383c
MD5 e663c2e93d228731b5346804d2d98683
BLAKE2b-256 35e5ce342dd9e932fe10a3e5b46d950bd8d03a9a338bdf8d25bf6b8b47bad92c

See more details on using hashes here.

File details

Details for the file netbox_python-0.1.5-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for netbox_python-0.1.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 7cf4a6e7415b8ca1770e3b430767525946f527c39b37b5351cb2851b92a37931
MD5 c793080af84470a20f819fddaf39d51a
BLAKE2b-256 e675af1a097cd6d60cfd684f8156747c8485da9bb8ba44a9ffa9e2602df0dfcc

See more details on using hashes here.

Supported by

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