Python client for netbox API
Project description
This is a python client for netbox (https://github.com/digitalocean/netbox) API. It can be used either as a python module/library or directly from the command line. The goal of this project is to provide a simple way to automate infrastructure documentation based on the REST API from that great project that is Netbox.
Status
Under development
Installation
You can clone that repo and install locally with:
python setup.py build && pip install -e .
Proper pypi package on it’s way.
Usage
>From CLI, using a configuration file:
Copy netboxapi.json.example file to netboxapi.json and edit that file to match your netbox instance url and token.
python netboxapi_client.py -h will give you the overview of the models you can act on. -h is available at each depth level of the cli.
Here are some examples:
netboxapi_client -h
netboxapi_client dcim -h category
netboxapi_client dcim devices -h
netboxapi_client dcim devices list
netboxapi_client dcim devices create -d '$(cat mydevice.json)'
netboxapi_client dcim devices create \
-d '{ "name": "sw-02-par-eq2", \
"slug": "sw-02-par-eq2", \
"device_role": "1", \
"device_type": "8", \
"site": "184" }'
netboxapi_client dcim devices show -n sw-02-par-eq2
netboxapi_client dcim devices show -i 10
netboxapi_client dcim devices delete -n sw-02-par-eq2
>From code:
This is a very basic example:
from pprint import pprint
from netboxapi_client import Api, get
TOKEN = "thetokenyoucangetfromnetboxwebuionauserprofilepage"
URL = "https://netbox.example.org"
api = Api(url=URL, token=TOKEN)
res = get(api, model="dcim", obj="devices", name="sw-02-par-eq2")
pprint(res)
For now, you have to import the Api class and the function you need (get, get_list, update, create, delete, and so on…). This will be improved soon…
TODO
prevent sending multiple requests/discovering the model if not required
better catch exceptions to give users a more comprehensive output
setup CI/CD pipeline and build status on github
push docker image to public repo and add docker-compose.yml, entrypoint.sh to the repo, add testing process to documentation
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for netboxapi_client-0.1a3-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 739068867d0979706c5f8a74c90e27f771498b3cbef3665640cd5d6761e03b1f |
|
MD5 | 6039fe9c229e9900041d661dd574db5d |
|
BLAKE2b-256 | 18bca197257bae178e3300231666c5348c1df640800e668546b39fe28795b8fb |