summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEoghan Glynn <eglynn@redhat.com>2013-06-24 18:36:13 +0000
committerEoghan Glynn <eglynn@redhat.com>2013-06-24 19:42:44 +0100
commit52e3f6ffe188a82a67fdd573bb03ab1d9b0b95b4 (patch)
tree00d096c65fc16708facfe65d9ec76553fa10c755
parentff77aeea56872be38914c851926af1fb504dba5f (diff)
downloadpython-ceilometerclient-1.0.1.tar.gz
Avoid unnecessary GET of existing alarm for update1.0.1
The existing alarm representation is retrieved prior to update, which is uneccessary as the API merges the new and existing state in any case. This change saves the threshold eval logic one unnecessary API call per state transition. Change-Id: If21c53d6f43164315e1e70e62b0c70520fb5a45c
-rw-r--r--ceilometerclient/v2/alarms.py7
-rw-r--r--tests/v2/test_alarms.py3
2 files changed, 3 insertions, 7 deletions
diff --git a/ceilometerclient/v2/alarms.py b/ceilometerclient/v2/alarms.py
index 6524c8d..6a8529b 100644
--- a/ceilometerclient/v2/alarms.py
+++ b/ceilometerclient/v2/alarms.py
@@ -64,11 +64,8 @@ class AlarmManager(base.Manager):
return self._create(self._path(), new)
def update(self, alarm_id, **kwargs):
- existing = self.get(alarm_id)
- updated = existing.to_dict()
- for (key, value) in kwargs.items():
- if key in updated and key in UPDATABLE_ATTRIBUTES:
- updated[key] = value
+ updated = dict((key, value) for (key, value) in kwargs.items()
+ if key in UPDATABLE_ATTRIBUTES)
return self._update(self._path(alarm_id), updated)
def delete(self, alarm_id):
diff --git a/tests/v2/test_alarms.py b/tests/v2/test_alarms.py
index ac1d2dc..726434d 100644
--- a/tests/v2/test_alarms.py
+++ b/tests/v2/test_alarms.py
@@ -146,8 +146,7 @@ class AlarmManagerTest(unittest.TestCase):
def test_update(self):
alarm = self.mgr.update(alarm_id='alarm-id', **DELTA_ALARM)
expect = [
- ('GET', '/v2/alarms/alarm-id', {}, None),
- ('PUT', '/v2/alarms/alarm-id', {}, UPDATED_ALARM),
+ ('PUT', '/v2/alarms/alarm-id', {}, DELTA_ALARM),
]
self.assertEqual(self.api.calls, expect)
self.assertTrue(alarm)