api: export recorded_at in returned samples

Change-Id: I970bc82d70fd75cbb25ea6c7e0778521aaa9b255
Blueprint: storage-sample-timestamp
This commit is contained in:
Julien Danjou 2014-02-17 11:20:19 +01:00
parent dc7c4863c6
commit e26f7c6af5
3 changed files with 16 additions and 0 deletions

View File

@ -569,6 +569,9 @@ class OldSample(_Base):
timestamp = datetime.datetime
"UTC date and time when the measurement was made"
recorded_at = datetime.datetime
"When the sample has been recorded."
resource_metadata = {wtypes.text: wtypes.text}
"Arbitrary metadata associated with the resource"
@ -601,6 +604,7 @@ class OldSample(_Base):
resource_id='bd9431c1-8d69-4ad3-803a-8d4a6b89fd36',
project_id='35b17138-b364-4e6a-a131-8f3099c5be68',
user_id='efd87807-12d2-4b38-9c70-5f5c2ac427ff',
recorded_at=datetime.datetime.utcnow(),
timestamp=datetime.datetime.utcnow(),
resource_metadata={'name1': 'value1',
'name2': 'value2'},
@ -924,6 +928,9 @@ class Sample(_Base):
timestamp = datetime.datetime
"When the sample has been generated."
recorded_at = datetime.datetime
"When the sample has been recorded."
metadata = {wtypes.text: wtypes.text}
"Arbitrary metadata associated with the sample."
@ -939,6 +946,7 @@ class Sample(_Base):
resource_id=m.resource_id,
source=m.source,
timestamp=m.timestamp,
recorded_at=m.recorded_at,
metadata=_flatten_metadata(m.resource_metadata))
@classmethod
@ -952,6 +960,7 @@ class Sample(_Base):
project_id='35b17138-b364-4e6a-a131-8f3099c5be68',
user_id='efd87807-12d2-4b38-9c70-5f5c2ac427ff',
timestamp=timeutils.utcnow(),
recorded_at=datetime.datetime.utcnow(),
source='openstack',
metadata={'name1': 'value1',
'name2': 'value2'},

View File

@ -24,6 +24,7 @@ import logging
import testscenarios
import webtest.app
from ceilometer.openstack.common import timeutils
from ceilometer.publisher import utils
from ceilometer import sample
from ceilometer.tests.api.v2 import FunctionalTest
@ -40,6 +41,7 @@ class TestListEvents(FunctionalTest,
def setUp(self):
super(TestListEvents, self).setUp()
timeutils.utcnow.override_time = datetime.datetime(2014, 2, 11, 16, 42)
self.sample1 = sample.Sample(
'instance',
'cumulative',
@ -85,6 +87,9 @@ class TestListEvents(FunctionalTest,
def test_all(self):
data = self.get_json('/meters/instance')
self.assertEqual(2, len(data))
for s in data:
self.assertEqual(s['recorded_at'],
timeutils.utcnow.override_time.isoformat())
def test_all_trailing_slash(self):
data = self.get_json('/meters/instance/')

View File

@ -223,6 +223,7 @@ class TestListMeters(FunctionalTest,
sample_id = self.messages[1]['message_id']
data = self.get_json('/samples/%s' % sample_id)
self.assertIn('id', data)
del data['recorded_at']
self.assertEqual(data, {
u'id': sample_id,
u'metadata': {u'display_name': u'test-server',
@ -256,6 +257,7 @@ class TestListMeters(FunctionalTest,
}])
self.assertIn('id', data[0])
del data[0]['id'] # Randomly generated
del data[0]['recorded_at']
self.assertEqual(data, [{
u'user_id': u'user-id4',
u'resource_id': u'resource-id4',