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.4.tar.gz (19.9 kB view details)

Uploaded Source

Built Distribution

netbox_python-0.1.4-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.4.tar.gz.

File metadata

  • Download URL: netbox_python-0.1.4.tar.gz
  • Upload date:
  • Size: 19.9 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.4.tar.gz
Algorithm Hash digest
SHA256 bd72839219092273fe2001a292ee833c351a70c4638b9ed546d8e61ec5aabf36
MD5 25e0dc32351a5a7c91145224e0f9a367
BLAKE2b-256 5b5d02d69b6cf4bb5d7260e01f8aa6a28c4aefa9f2b931e778fc1e3f3013dc69

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for netbox_python-0.1.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e0455d456bdb7ae848af1b3fcfc2665725c8b8dee6ab9832235f65ae4ac24c75
MD5 15512713b863cc34da6c5f18cf70fb4f
BLAKE2b-256 26c575e9537e7946b89bf9a7ab53adf6757913a28b3d234d7e24717e5a4a8dd0

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