Skip to content

Commit

Permalink
Ensure combination alarms can be evaluated
Browse files Browse the repository at this point in the history
Fixes bug 1237589

Previously the retrieval of state for the constituent alarms always
failed for combination alarms, due to an incorrect attribute of
ceilometerclient being used. As a result combination alarms could
never be successfully evaluated.

Now the correct pluralized attribute is used.

Change-Id: Id58a5d185854367e5a08011048774ab5aed93d4e
(cherry picked from commit f44e292)
  • Loading branch information
Eoghan Glynn committed Oct 10, 2013
1 parent 47f4a34 commit 019fd2a
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 10 deletions.
2 changes: 1 addition & 1 deletion ceilometer/alarm/evaluator/combination.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class CombinationEvaluator(evaluator.Evaluator):

def _get_alarm_state(self, alarm_id):
try:
alarm = self._client.alarm.get(alarm_id)
alarm = self._client.alarms.get(alarm_id)
except Exception:
LOG.exception(_('alarm retrieval failed'))
return None
Expand Down
18 changes: 9 additions & 9 deletions tests/alarm/evaluator/test_combination.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ def test_retry_transient_api_failure(self):
with mock.patch('ceilometerclient.client.get_client',
return_value=self.api_client):
broken = exc.CommunicationError(message='broken')
self.api_client.alarm.get.side_effect = [
self.api_client.alarms.get.side_effect = [
broken,
broken,
broken,
Expand All @@ -123,7 +123,7 @@ def test_simple_insufficient(self):
with mock.patch('ceilometerclient.client.get_client',
return_value=self.api_client):
broken = exc.CommunicationError(message='broken')
self.api_client.alarm.get.side_effect = broken
self.api_client.alarms.get.side_effect = broken
self._evaluate_all_alarms()
self._assert_all_alarms('insufficient data')
expected = [mock.call(alarm.alarm_id, state='insufficient data')
Expand All @@ -141,7 +141,7 @@ def test_to_ok_with_all_ok(self):
self._set_all_alarms('insufficient data')
with mock.patch('ceilometerclient.client.get_client',
return_value=self.api_client):
self.api_client.alarm.get.side_effect = [
self.api_client.alarms.get.side_effect = [
self._get_alarm('ok'),
self._get_alarm('ok'),
self._get_alarm('ok'),
Expand All @@ -161,7 +161,7 @@ def test_to_ok_with_one_alarm(self):
self._set_all_alarms('alarm')
with mock.patch('ceilometerclient.client.get_client',
return_value=self.api_client):
self.api_client.alarm.get.side_effect = [
self.api_client.alarms.get.side_effect = [
self._get_alarm('ok'),
self._get_alarm('ok'),
self._get_alarm('alarm'),
Expand All @@ -181,7 +181,7 @@ def test_to_alarm_with_all_alarm(self):
self._set_all_alarms('ok')
with mock.patch('ceilometerclient.client.get_client',
return_value=self.api_client):
self.api_client.alarm.get.side_effect = [
self.api_client.alarms.get.side_effect = [
self._get_alarm('alarm'),
self._get_alarm('alarm'),
self._get_alarm('alarm'),
Expand All @@ -201,7 +201,7 @@ def test_to_alarm_with_one_ok(self):
self._set_all_alarms('ok')
with mock.patch('ceilometerclient.client.get_client',
return_value=self.api_client):
self.api_client.alarm.get.side_effect = [
self.api_client.alarms.get.side_effect = [
self._get_alarm('ok'),
self._get_alarm('alarm'),
self._get_alarm('alarm'),
Expand All @@ -222,7 +222,7 @@ def test_to_unknown(self):
with mock.patch('ceilometerclient.client.get_client',
return_value=self.api_client):
broken = exc.CommunicationError(message='broken')
self.api_client.alarm.get.side_effect = [
self.api_client.alarms.get.side_effect = [
broken,
self._get_alarm('ok'),
self._get_alarm('insufficient data'),
Expand All @@ -249,7 +249,7 @@ def test_no_state_change(self):
self._set_all_alarms('ok')
with mock.patch('ceilometerclient.client.get_client',
return_value=self.api_client):
self.api_client.alarm.get.side_effect = [
self.api_client.alarms.get.side_effect = [
self._get_alarm('ok'),
self._get_alarm('ok'),
self._get_alarm('ok'),
Expand All @@ -266,7 +266,7 @@ def test_no_state_change_and_repeat_actions(self):
self._set_all_alarms('ok')
with mock.patch('ceilometerclient.client.get_client',
return_value=self.api_client):
self.api_client.alarm.get.side_effect = [
self.api_client.alarms.get.side_effect = [
self._get_alarm('ok'),
self._get_alarm('ok'),
self._get_alarm('ok'),
Expand Down

0 comments on commit 019fd2a

Please sign in to comment.