Code Monkey home page Code Monkey logo

librenms_handler's Introduction

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

librenms_handler's People

Contributors

consentfactory avatar dependabot[bot] avatar sklemer1 avatar whalej84 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

librenms_handler's Issues

add_rule

This issue is a function addition to the handler.
It applies to the Alerts endpoint, and documentation is found here.
All incomplete API functions are tracked as issues for documentation purposes.

edit_rule

This issue is a function addition to the handler.
It applies to the Alerts endpoint, and documentation is found here.
All incomplete API functions are tracked as issues for documentation purposes.

list_alert_rules

This issue is a function addition to the handler.
It applies to the Alerts endpoint, and documentation is found here.
All incomplete API functions are tracked as issues for documentation purposes.

delete_rule

This issue is a function addition to the handler.
It applies to the Alerts endpoint, and documentation is found here.
All incomplete API functions are tracked as issues for documentation purposes.

get_port_info

This issue is a function addition to the handler.
It applies to the Ports endpoint, and documentation is found here.
All incomplete API functions are tracked as issues for documentation purposes.

get_port_ip_info

This issue is a function addition to the handler.
It applies to the Ports endpoint, and documentation is found here.
All incomplete API functions are tracked as issues for documentation purposes.

search_ports

This issue is a function addition to the handler.
It applies to the Ports endpoint, and documentation is found here.
All incomplete API functions are tracked as issues for documentation purposes.

get_graph_by_portgroup

This issue is a function addition to the handler.
It applies to the PortGroups endpoint, and documentation is found here.
All incomplete API functions are tracked as issues for documentation purposes.

get_graph_by_portgroup_multiport_bits

This issue is a function addition to the handler.
It applies to the PortGroups endpoint, and documentation is found here.
All incomplete API functions are tracked as issues for documentation purposes.

unmute_alert

This issue is a function addition to the handler.
It applies to the Alerts endpoint, and documentation is found here.
All incomplete API functions are tracked as issues for documentation purposes.

get_alert_rule

This issue is a function addition to the handler.
It applies to the Alerts endpoint, and documentation is found here.
All incomplete API functions are tracked as issues for documentation purposes.

get_all_ports

This issue is a function addition to the handler.
It applies to the Ports endpoint, and documentation is found here.
All incomplete API functions are tracked as issues for documentation purposes.

ack_alert

This issue is a function addition to the handler.
It applies to the Alerts endpoint, and documentation is found here.
All incomplete API functions are tracked as issues for documentation purposes.

list_alerts

This issue is a function addition to the handler.
It applies to the Alerts endpoint, and documentation is found here.
All incomplete API functions are tracked as issues for documentation purposes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.