api: export recorded_at in returned samples
Change-Id: I970bc82d70fd75cbb25ea6c7e0778521aaa9b255 Blueprint: storage-sample-timestamp
This commit is contained in:
parent
dc7c4863c6
commit
e26f7c6af5
@ -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'},
|
||||
|
@ -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/')
|
||||
|
@ -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',
|
||||
|
Loading…
x
Reference in New Issue
Block a user