Files
python-aodhclient/aodhclient/tests/functional/test_alarm_history.py
zhangguoqing a286b162e2 Replaces uuid.uuid4 with uuidutils.generate_uuid()
Openstack common has a wrapper for generating uuids. We should
use that function when generating uuids for consistency.

Change-Id: I3ea3355a7f04d5b86c8b0b197fcdbe2f0644b191
Closes-Bug: #1082248
2016-12-07 04:53:54 +00:00

109 lines
4.6 KiB
Python

# 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.
from oslo_serialization import jsonutils
from oslo_utils import uuidutils
from aodhclient.tests.functional import base
class AlarmHistoryTest(base.ClientTestBase):
def test_help(self):
self.aodh("help", params="alarm-history show")
self.aodh("help", params="alarm-history search")
def test_alarm_history_scenario(self):
PROJECT_ID = uuidutils.generate_uuid()
result = self.aodh(u'alarm',
params=(u"create --type threshold --name history1 "
"-m meter_name --threshold 5 "
"--project-id %s" % PROJECT_ID))
alarm = self.details_multiple(result)[0]
ALARM_ID = alarm['alarm_id']
result = self.aodh(u'alarm',
params=(u"create --type threshold --name history2 "
"-m meter_name --threshold 10 "
"--project-id %s" % PROJECT_ID))
alarm = self.details_multiple(result)[0]
ALARM_ID2 = alarm['alarm_id']
# LIST WITH PAGINATION
# list with limit
result = self.aodh('alarm-history',
params=("show %s --limit 1" % ALARM_ID))
alarm_list = self.parser.listing(result)
self.assertEqual(1, len(alarm_list))
# list with sort key=timestamp, dir=asc
result = self.aodh('alarm-history',
params=("show %s --sort timestamp:asc" % ALARM_ID))
alarm_history_list = self.parser.listing(result)
timestamp = [r['timestamp'] for r in alarm_history_list]
sorted_timestamp = sorted(timestamp)
self.assertEqual(sorted_timestamp, timestamp)
# list with sort key=type dir = desc and key=timestamp, dir=asc
result = self.aodh('alarm-history',
params=("show %s --sort type:desc "
"--sort timestamp:asc" % ALARM_ID))
alarm_history_list = self.parser.listing(result)
creation = alarm_history_list.pop(-1)
timestamp = [r['timestamp'] for r in alarm_history_list]
sorted_timestamp = sorted(timestamp)
self.assertEqual(sorted_timestamp, timestamp)
self.assertEqual('creation', creation['type'])
# TEST FIELDS
result = self.aodh(
'alarm-history', params=("show %s" % ALARM_ID))
history = self.parser.listing(result)[0]
for key in ["timestamp", "type", "detail", "event_id"]:
self.assertIn(key, history)
# SHOW
result = self.aodh(
'alarm-history', params=("show %s" % ALARM_ID))
history = self.parser.listing(result)[0]
self.assertEqual('creation', history['type'])
self.assertEqual('history1',
jsonutils.loads(history['detail'])['name'])
result = self.aodh(
'alarm-history', params=("show %s" % ALARM_ID2))
history = self.parser.listing(result)[0]
self.assertEqual('creation', history['type'])
self.assertEqual('history2',
jsonutils.loads(history['detail'])['name'])
# SEARCH ALL
result = self.aodh('alarm-history', params=("search"))
self.assertIn(ALARM_ID,
[r['alarm_id'] for r in self.parser.listing(result)])
self.assertIn(ALARM_ID2,
[r['alarm_id'] for r in self.parser.listing(result)])
# SEARCH
result = self.aodh('alarm-history',
params=("search --query "
"alarm_id=%s"
% ALARM_ID))
history = self.parser.listing(result)[0]
self.assertEqual(ALARM_ID, history["alarm_id"])
self.assertEqual('creation', history['type'])
self.assertEqual('history1',
jsonutils.loads(history['detail'])['name'])
# CLEANUP
self.aodh('alarm', params="delete %s" % ALARM_ID)
self.aodh('alarm', params="delete %s" % ALARM_ID2)