panopta-api

Panopta API Client


License
MIT
Install
pip install panopta-api==2.0.0

Documentation

Panopta API Python Package

The Panopta API provides full access to all configuration, status and outage management functionality of the Panopta monitoring service, including the ability to create and modify monitoring checks that are being performed, manage notification configuration, respond to active outages and to pull availability statistics for monitored servers. This package makes it simple to interact with the Panopta API.

API Documentation

Full documentation for the API is available at https://api2.panopta.com/v2/api-docs/. By entering your API token you can view full details on all of the API methods and issue API requests from the documentation page.

Installation

pip install panopta_api

Usage

The library provides a wrapper around the Panopta API, making it easy to issue GET, POST, PUT and DELETE operations to the API. The Client is an adapter built on top of Requests, so anything you can do with a requests.Session, you can with panopta_api.Client.

Instantiate the Panopta API client

from panopta_api import Client
client = Client('your-api-key',
                host='http://api2.panopta.com',
                version='2',
                log_level=Client.LOG_INFO,
                log_path='logs/')

Generate API urls

resource = 'server'
id = '123'
collection = 'network_service'
server_network_services = client.url(resource, id, collection)

GET

five_contacts = client.get(client.url('contact'), params={'limit': 5});

servers_with_a_certain_fully_qualified_domain_name = client.get(
    client.url('server'),
    params={'fqdn': 'panopta.com'}
)

server_forty_two = client.get(client.url('server', '42'))

POST

new_notification_schedule = client.post(
    client.url('notification_schedule'),
    json={'name': 'New Notification Schedule',
          'targets': [server_forty_two['url']]}
)

PUT

updated_server_group = client.put(
    client.url('server_group'),
    json={'name': 'Updated Server Group',
          'notification_schedule': new_notification_schedule['url']}
)

DELETE

client.delete(client.url('contact', '1'))