Skip to main content

Python client for the Opsview API

Project description

PyOpsview :snake:

Python REST API Client for Opsview!

Opsview Logo

Installation

Installing Dependencies

# Using `pip`
pip install -r https://raw.githubusercontent.com/jpgxs/pyopsview/master/requirements.txt

# Using `apt`
apt update && apt install python-requests python-six

# Using `apt-get`
apt-get update && apt-get install python-requests python-six

# Using `yum`
yum install python-requests python-six

# Using `dnf`
dnf install python-requests python-six

# Using `urpmi`
urpmi python-requests python-six

Installing

# From `pypi`
pip install pyopsview

# From source
git clone https://github.com/jpgxs/pyopsview
cd pyopsview
python setup.py install

Usage

Basic Usage

from __future__ import print_function

from pyopsview import OpsviewClient
from pyopsview.exceptions import OpsviewClientException

# Authenticate the client and load the appropriate API schema for the
# specific Opsview version
client = OpsviewClient(username='admin', password='initial',
                       endpoint='https://opsview.example.com')

# Create a new client using the token; this is useful for things like ansible
# where the login operation would otherwise have to be done for every operation
auth_token = client.token
client = OpsviewClient(username='admin', token=auth_token,
                       endpoint='https://opsview.example.com')

# Get a list of the configured hosts. This returns a generator.
all_hosts = client.config.hosts.list()
for host in all_hosts:
    print(host['check_interval'])

# Find all hosts monitored by the master monitoring server.
monitored_by_master = client.config.hosts.find(monitored_by='Master Monitoring Server')

# Update the address of one host
update_host = all_hosts[-1]
update_host['address'] = '127.128.129.130'
update_host = client.config.hosts.update(update_host['id'], **update_host)

# Find the Master opsview server
opsview_master = client.config.hosts.find_one(name='Opsview')
if opsview_master is None:
    raise RuntimeError('Failed to find the Opsview master server!')

# Get a list of all Service Checks on the Opsview master
master_service_checks = []
master_service_checks += opsview_master['service_checks']

for template in opsview_master['host_templates']:
    template_detail = client.hosttemplates.find_one(template['name'])
    master_service_checks += template_detail['service_checks']

TODO

  • Add schemas for other versions of Opsview
  • Add API operations for:
    • Downtime
    • Service/Host Status
    • Live Object Information (Runtime)
    • Acknowledgements
    • Scheduling Rechecks
    • Graphing Data
    • Event/History Data
    • Notes
    • SNMP queries

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request

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

pyopsview-6.2.2.tar.gz (38.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyopsview-6.2.2-py3-none-any.whl (71.4 kB view details)

Uploaded Python 3

File details

Details for the file pyopsview-6.2.2.tar.gz.

File metadata

  • Download URL: pyopsview-6.2.2.tar.gz
  • Upload date:
  • Size: 38.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/44.1.0 requests-toolbelt/0.9.1 tqdm/4.40.0 CPython/3.7.7

File hashes

Hashes for pyopsview-6.2.2.tar.gz
Algorithm Hash digest
SHA256 3584535e5d08ce6bbe27fc1d19b18747ac44623fa79f2f444e5253afb7837930
MD5 3af69063f94173bb0e52622dd88c7262
BLAKE2b-256 ec84ef86faa6e789348bc5668c3f40aa6e4793164ca202794d80fd46f3a7efac

See more details on using hashes here.

File details

Details for the file pyopsview-6.2.2-py3-none-any.whl.

File metadata

  • Download URL: pyopsview-6.2.2-py3-none-any.whl
  • Upload date:
  • Size: 71.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/44.1.0 requests-toolbelt/0.9.1 tqdm/4.40.0 CPython/3.7.7

File hashes

Hashes for pyopsview-6.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d1e31c60365a3770d9fd5182f26d8f9d2546ab4827e28e4ed3d85f9e89a287af
MD5 b9fc9de3f0b4537607dbe5e461757923
BLAKE2b-256 55f6778b65d2c0eb37d6849a91061727b10d4b1ee0ed256579ee46e5a80d30d7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page