Skip to main content

A Python library to interact with the LibreNMS API (v0)

Project description

LibreNMS handler

PyPI image Downloads Black Bandit CodeQL

A Python library to interact with the LibreNMS API (v0).

The project aims to provide the user with as much information as if they were looking at the reference guide themselves.

I have not used it myself so I cannot endorse it, but a quick search shows that LibreNMSAPI has a similar goal with a different outlook. Consider checking it out if this project doesn't suit your needs!

Usage

The package is installed with the following package managers like so:

Pip

pip install librenms-handler

Pipenv

pipenv install librenms-handler

The following statement will initialise the chosen endpoint:

from librenms_handler.devices import Devices

devices = Devices(
    'https://librenms.example.com',
    'e4ef9234abab59a90628dd3f616a60b4'
)

NOTE: If you are using a self-signed certificate for your server, you can bypass the errors by passing the initialisation option verify=False.

Once done, a list of methods will be available to you such as devices.list_devices(). Upon operation, the method will execute and return the required request to your LibreNMS instance.

>>> devices.add_device('test_device', snmp_disable=True, force_add=True)
{'status': 'ok', 'message': 'Device test_device (13) has been added successfully'}
>>> devices.del_device('test')
{'status': 'ok', 'devices': [{'device_id': 13, 'inserted': '2021-03-13 15:56:19', 'hostname': 'test_device', 'sysName': '', 'ip': None, 'overwrite_ip': None, 'community': '', 'authlevel': None, 'authname': None, 'authpass': None, 'authalgo': None, 'cryptopass': None, 'cryptoalgo': None, 'snmpver': 'v2c', 'port': 161, 'transport': 'udp', 'timeout': None, 'retries': None, 'snmp_disable': 1, 'bgpLocalAs': None, 'sysObjectID': None, 'sysDescr': None, 'sysContact': None, 'version': None, 'hardware': '', 'features': None, 'location_id': None, 'os': 'ping', 'status': True, 'status_reason': '', 'ignore': 0, 'disabled': 0, 'uptime': None, 'agent_uptime': 0, 'last_polled': None, 'last_poll_attempted': None, 'last_polled_timetaken': None, 'last_discovered_timetaken': None, 'last_discovered': None, 'last_ping': None, 'last_ping_timetaken': None, 'purpose': None, 'type': 'server', 'serial': None, 'icon': 'images/os/ping.svg', 'poller_group': 0, 'override_sysLocation': 0, 'notes': None, 'port_association_mode': 1, 'max_depth': 0, 'disable_notify': 0, 'location': None, 'lat': None, 'lng': None, 'attribs': [], 'vrf_lite_cisco': []}], 'message': 'Removed device test_device\n', 'count': 1}

The output is exactly the same as if you were using Curl to make the requests.

Should you wish to use any other endpoint, the situation would be the same: from librenms_handler.endpoint import Endpoint

Environment variables

While initialising the handler, the following parameters are required. The handler first checks for the following environment variables, should you choose to use them.

Environment variable Description Type Example
LIBRENMS_URL Full URL to the target LibreNMS instance string https://librenms.example.com
LIBRENMS_TOKEN Token generated from LIBRENMS_URL/api-access string e4ef9234abab59a90628dd3f616a60b4

Endpoints

The progress of API endpoints are shown in their respective projects below: See Projects to track the progress of the endpoints or select individual ones below.

It is not possible to say when an endpoint is 'done', as they are being expanded as time goes on. Each function will have its own issue tracked, so you can search to see if implemented or not.

Endpoint Started
Alerts False
ARP True
Bills False
Device Groups True
Devices True
Inventory True
Locations True
Logs True
Port Groups False
Ports False
Routing False
Services False
Switching True
System True

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

librenms_handler-0.4.3b1.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

librenms_handler-0.4.3b1-py3-none-any.whl (17.2 kB view details)

Uploaded Python 3

File details

Details for the file librenms_handler-0.4.3b1.tar.gz.

File metadata

  • Download URL: librenms_handler-0.4.3b1.tar.gz
  • Upload date:
  • Size: 13.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for librenms_handler-0.4.3b1.tar.gz
Algorithm Hash digest
SHA256 c7636ac1254fd0b8a95940e26319649e0f70499d1e1e2abf8b3ba4ad67fc11fc
MD5 12d8593d4e5373ae25f471299dd8ce5c
BLAKE2b-256 85c4f2e68b6762419e3d638051fc60c925d40bf1c51195c6a1511dd868c197b0

See more details on using hashes here.

File details

Details for the file librenms_handler-0.4.3b1-py3-none-any.whl.

File metadata

File hashes

Hashes for librenms_handler-0.4.3b1-py3-none-any.whl
Algorithm Hash digest
SHA256 8089e87ceabc608bebb9a1a03ffdc1c2b63e8c08ec314774aa34c26332860ef9
MD5 cb317b31280bd8d88dd13d21ed60d30f
BLAKE2b-256 f4d340a842545f466e1442d29b63b3554d21af165c143dbb7d7c9a324fdb80bc

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