108 lines
2.7 KiB
ReStructuredText
108 lines
2.7 KiB
ReStructuredText
================
|
|
Using Python API
|
|
================
|
|
|
|
Python bindings to the OpenStack Monasca API
|
|
============================================
|
|
|
|
This is a client for the OpenStack Monasca API. It includes a Python
|
|
API (the :mod:`monascaclient` module) and a command-line script
|
|
(installed as :program:`monasca`).
|
|
|
|
Python API
|
|
==========
|
|
|
|
To use python-monascaclient in a project, you need to create a client instance
|
|
first. There are couple ways of doing this properly.
|
|
|
|
With session
|
|
------------
|
|
|
|
A pseudo-code would be similar to this::
|
|
|
|
from keystoneauth1 import identity
|
|
from keystoneauth1 import session
|
|
from monascaclient import client
|
|
|
|
auth = identity.Password(
|
|
auth_url='http://my.keystone.com/identity',
|
|
username='mini-mon',
|
|
password='password',
|
|
project_name='mini-mon',
|
|
user_domain_id='default',
|
|
project_domain_id='default'
|
|
)
|
|
sess = session.Session(auth=auth)
|
|
|
|
endpoint = 'http://monasca:8070/v2.0'
|
|
api_version = '2_0'
|
|
|
|
c = client.Client(
|
|
api_version=api_version,
|
|
endpoint=endpoint,
|
|
session=sess
|
|
)
|
|
|
|
c.alarms.list()
|
|
|
|
For more information on keystoneauth API, see `Using Sessions`_. We also
|
|
suggest taking closer look at `Keystone Auth Plugins`_. Each of the plugin
|
|
can be used to properly instantiate new session and pass it into the client.
|
|
|
|
.. note:: This is recommended way to setup a client.
|
|
Other cases, described below, create sessions internally.
|
|
|
|
|
|
Without session
|
|
---------------
|
|
|
|
If you do not want to use a session or simply prefer client to instantiate
|
|
one on its own, there are two supported ways
|
|
|
|
With token
|
|
~~~~~~~~~~
|
|
|
|
A pseudo-code would be similar to this::
|
|
|
|
from monascaclient import client
|
|
|
|
c = client.Client(
|
|
api_version='2_0',
|
|
endpoint='http://monasca:8070/v2.0',
|
|
token='3bcc3d3a03f44e3d8377f9247b0ad155',
|
|
project_name='mini-mon',
|
|
auth_url='http://my.keystone.com/identity'
|
|
)
|
|
|
|
c.alarms.list()
|
|
|
|
|
|
With username & password
|
|
~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
A pseudo-code would be similar to this::
|
|
|
|
from monascaclient import client
|
|
|
|
c = client.Client(
|
|
api_version='2_0',
|
|
endpoint='http://monasca:8070/v2.0',
|
|
username='mini-mon',
|
|
password='password',
|
|
project_name='mini-mon',
|
|
auth_url='http://my.keystone.com/identity'
|
|
)
|
|
|
|
c.alarms.list()
|
|
|
|
Examples
|
|
========
|
|
|
|
* `Monasca Agent Example`_ - with session
|
|
* `Monasca UI Example`_ - with token
|
|
|
|
.. _Monasca Agent Example: https://github.com/openstack/monasca-agent/blob/master/monasca_agent/forwarder/api/monasca_api.py
|
|
.. _Monasca UI Example: https://github.com/openstack/monasca-ui/blob/master/monitoring/api/client.py
|
|
.. _Using Sessions: https://docs.openstack.org/keystoneauth/latest/using-sessions.html
|
|
.. _Keystone Auth Plugins: https://docs.openstack.org/keystoneauth/latest/authentication-plugins.html
|