Python client for the Opsview API
Project description
PyOpsview :snake:
Python REST API Client for Opsview!
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
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature - Commit your changes:
git commit -am 'Add some feature' - Push to the branch:
git push origin my-new-feature - 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)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
pyopsview-6.2.2-py3-none-any.whl
(71.4 kB
view details)
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3584535e5d08ce6bbe27fc1d19b18747ac44623fa79f2f444e5253afb7837930
|
|
| MD5 |
3af69063f94173bb0e52622dd88c7262
|
|
| BLAKE2b-256 |
ec84ef86faa6e789348bc5668c3f40aa6e4793164ca202794d80fd46f3a7efac
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d1e31c60365a3770d9fd5182f26d8f9d2546ab4827e28e4ed3d85f9e89a287af
|
|
| MD5 |
b9fc9de3f0b4537607dbe5e461757923
|
|
| BLAKE2b-256 |
55f6778b65d2c0eb37d6849a91061727b10d4b1ee0ed256579ee46e5a80d30d7
|