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

Uploaded Source

Built Distribution

netbox_python-0.1.6-py2.py3-none-any.whl (20.5 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

  • Download URL: netbox_python-0.1.6.tar.gz
  • Upload date:
  • Size: 21.6 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.6.tar.gz
Algorithm Hash digest
SHA256 fa5a8151187c1d87d12522fdcd30f26484dfa8d4bd10f00b20907ef2f8a735ea
MD5 e877033cbc8f41f7a2ef980f7ad2f1fe
BLAKE2b-256 616bdfa9e18fb3da1f80416279d427473933d05f9574b2717301d666df689a9d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for netbox_python-0.1.6-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 69a2245f55b4c9ddc7e921d9039c96d175adb87ef318b4be9d1f5f396b3b3aa7
MD5 14c825fe1fe0920c173d5545cfb5e454
BLAKE2b-256 0fabd6574348f9e4fcb498e8a6f89d70516e073b65e40228456256f005dba775

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