python-vitrageclient/vitrageclient/v1/alarm.py
Eyal 43b0b79077 using default mutable argument is wrong
we can use a tuple instead

Change-Id: Ic807a8b740e022fc6d4556dd83d999a2395b9748
2018-08-12 13:40:27 +03:00

113 lines
4.3 KiB
Python
Executable File

# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
class Alarm(object):
url = 'v1/alarm/'
def __init__(self, api):
self.api = api
def list(self, vitrage_id, all_tenants=False,
limit=1000,
sort_by=['start_timestamp', 'vitrage_id'],
sort_dirs=['asc', 'asc'],
filter_by=None,
filter_vals=None,
next_page=True,
marker=None):
"""Get a all alarms on entity
:param all_tenants: should return all tenants alarms
:param vitrage_id: the id for the entity
:param limit: number of rows in page.
:param sort_by: array of attributes by which results should be sorted
:param sort_dirs: per-column array of sort_dirs,
corresponding to sort_keys ('asc' or 'desc')
:param filter_by: array of attributes by which results will be filtered
:param filter_vals: array of filter values corresponding to filter_by
:param next_page: True if next page was requested, False if previouse
:param marker: if next_page is True,
vitrage_id of last row in current page is needed,
else, vitrage_id of first row in current page.
marker=None if the request is for the first page.
"""
params = dict(vitrage_id=vitrage_id,
all_tenants=all_tenants,
limit=limit,
sort_by=sort_by,
sort_dirs=sort_dirs,
filter_by=filter_by,
filter_vals=filter_vals,
next_page=next_page,
marker=marker
)
return self.api.get(self.url, params=params).json()
def history(self, all_tenants=False,
start=None,
end=None,
limit=1000,
sort_by=('start_timestamp', 'vitrage_id'),
sort_dirs=('asc', 'asc'),
filter_by=None,
filter_vals=None,
next_page=True,
marker=None):
"""Get the alarm history
:param all_tenants: should return all tenants alarms
:param start: start of time frame.
:param end: end of time frame.
:param limit: number of rows in page.
:param sort_by: array of attributes by which results should be sorted
:param sort_dirs: per-column array of sort_dirs,
corresponding to sort_keys ('asc' or 'desc')
:param filter_by: array of attributes by which results will be filtered
:param filter_vals: array of filter values corresponding to filter_by
:param next_page: True if next page was requested, False if previouse
:param marker: if next_page is True,
vitrage_id of last row in current page is needed,
else, vitrage_id of first row in current page.
marker=None if the request is for the first page.
"""
params = dict(all_tenants=all_tenants,
start=start,
end=end,
limit=limit,
sort_by=sort_by,
sort_dirs=sort_dirs,
filter_by=filter_by,
filter_vals=filter_vals,
next_page=next_page,
marker=marker
)
return self.api.get(self.url + 'history/', params=params).json()
def get(self, vitrage_id):
"""Get an alarm
:param vitrage_id: the vitrage_id of the alarm
"""
url = self.url + vitrage_id
return self.api.get(url).json()
def count(self, all_tenants=False):
"""Get a count of all alarms present
:param all_tenants: should return all tenants alarms
"""
params = dict(all_tenants=all_tenants)
return self.api.get(self.url + 'count/', params=params).json()