Convert the DateTime into ISO8601 format for Ceilometer

The fields of DateTime type should be converted to the time in
ISO8601 format, when they are put in the usage information to be
reported to Ceilometer.

Change-Id: I67e9e3609291d0d835156dfd9cfda88deae119c1
closes-bug: #1372791
This commit is contained in:
Vincent Hou 2014-11-16 22:33:35 -08:00
parent 24ce46bb98
commit 0ecba69df0
4 changed files with 34 additions and 32 deletions

View File

@ -96,7 +96,7 @@ class VolumeApiTest(test.TestCase):
'source_volid': None,
'metadata': {},
'id': '1',
'created_at': datetime.datetime(1, 1, 1,
'created_at': datetime.datetime(1900, 1, 1,
1, 1, 1),
'size': 100,
'encrypted': False}}
@ -188,7 +188,7 @@ class VolumeApiTest(test.TestCase):
'source_volid': None,
'metadata': {},
'id': '1',
'created_at': datetime.datetime(1, 1, 1,
'created_at': datetime.datetime(1900, 1, 1,
1, 1, 1),
'size': '1'}}
body = {"volume": vol}
@ -272,7 +272,7 @@ class VolumeApiTest(test.TestCase):
'metadata': {'attached_mode': 'rw',
'readonly': 'False'},
'id': '1',
'created_at': datetime.datetime(1, 1, 1, 1, 1, 1),
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
'size': 1}}
self.assertEqual(res_dict, expected)
self.assertEqual(len(fake_notifier.NOTIFICATIONS), 2)
@ -309,7 +309,7 @@ class VolumeApiTest(test.TestCase):
"readonly": "False",
"attached_mode": "rw"},
'id': '1',
'created_at': datetime.datetime(1, 1, 1, 1, 1, 1),
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
'size': 1
}}
self.assertEqual(res_dict, expected)
@ -358,7 +358,7 @@ class VolumeApiTest(test.TestCase):
'metadata': {'key': 'value',
'readonly': 'True'},
'id': '1',
'created_at': datetime.datetime(1, 1, 1, 1, 1, 1),
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
'size': 1}}
self.assertEqual(res_dict, expected)
self.assertEqual(len(fake_notifier.NOTIFICATIONS), 2)
@ -412,7 +412,7 @@ class VolumeApiTest(test.TestCase):
'metadata': {'attached_mode': 'rw',
'readonly': 'False'},
'id': '1',
'created_at': datetime.datetime(1, 1, 1,
'created_at': datetime.datetime(1900, 1, 1,
1, 1, 1),
'size': 1}]}
self.assertEqual(res_dict, expected)
@ -452,7 +452,7 @@ class VolumeApiTest(test.TestCase):
'metadata': {'key': 'value',
'readonly': 'True'},
'id': '1',
'created_at': datetime.datetime(1, 1, 1,
'created_at': datetime.datetime(1900, 1, 1,
1, 1, 1),
'size': 1}]}
self.assertEqual(res_dict, expected)
@ -481,7 +481,7 @@ class VolumeApiTest(test.TestCase):
'metadata': {'attached_mode': 'rw',
'readonly': 'False'},
'id': '1',
'created_at': datetime.datetime(1, 1, 1,
'created_at': datetime.datetime(1900, 1, 1,
1, 1, 1),
'size': 1}]}
self.assertEqual(res_dict, expected)
@ -521,7 +521,7 @@ class VolumeApiTest(test.TestCase):
'metadata': {'key': 'value',
'readonly': 'True'},
'id': '1',
'created_at': datetime.datetime(1, 1, 1,
'created_at': datetime.datetime(1900, 1, 1,
1, 1, 1),
'size': 1}]}
self.assertEqual(res_dict, expected)
@ -548,7 +548,7 @@ class VolumeApiTest(test.TestCase):
'metadata': {'attached_mode': 'rw',
'readonly': 'False'},
'id': '1',
'created_at': datetime.datetime(1, 1, 1,
'created_at': datetime.datetime(1900, 1, 1,
1, 1, 1),
'size': 1}}
self.assertEqual(res_dict, expected)
@ -575,7 +575,7 @@ class VolumeApiTest(test.TestCase):
'source_volid': None,
'metadata': {'readonly': 'False'},
'id': '1',
'created_at': datetime.datetime(1, 1, 1,
'created_at': datetime.datetime(1900, 1, 1,
1, 1, 1),
'size': 1}}
self.assertEqual(res_dict, expected)
@ -606,7 +606,7 @@ class VolumeApiTest(test.TestCase):
'metadata': {'attached_mode': 'rw',
'readonly': 'False'},
'id': '1',
'created_at': datetime.datetime(1, 1, 1,
'created_at': datetime.datetime(1900, 1, 1,
1, 1, 1),
'size': 1}}
self.assertEqual(res_dict, expected)
@ -683,7 +683,7 @@ class VolumeApiTest(test.TestCase):
'metadata': {'key': 'value',
'readonly': 'True'},
'id': '1',
'created_at': datetime.datetime(1, 1, 1,
'created_at': datetime.datetime(1900, 1, 1,
1, 1, 1),
'size': 1}}
self.assertEqual(res_dict, expected)

View File

@ -41,7 +41,7 @@ def stub_volume(id, **kwargs):
'display_name': 'displayname',
'display_description': 'displaydesc',
'updated_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
'created_at': datetime.datetime(1, 1, 1, 1, 1, 1),
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
'snapshot_id': None,
'source_volid': None,
'volume_type_id': '3e196c20-3c06-11e2-81c1-0800200c9a66',
@ -49,7 +49,7 @@ def stub_volume(id, **kwargs):
'volume_admin_metadata': [{'key': 'attached_mode', 'value': 'rw'},
{'key': 'readonly', 'value': 'False'}],
'bootable': False,
'launched_at': datetime.datetime(1, 1, 1, 1, 1, 1),
'launched_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
'volume_type': {'name': 'vol_type_name'},
'replication_status': 'disabled',
'replication_extended_status': None,

View File

@ -96,7 +96,7 @@ class VolumeApiTest(test.TestCase):
'availability_zone': 'zone1:host1',
'bootable': 'false',
'consistencygroup_id': None,
'created_at': datetime.datetime(1, 1, 1, 1, 1, 1),
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
'description': 'Volume Test Desc',
'id': '1',
'links':
@ -230,7 +230,7 @@ class VolumeApiTest(test.TestCase):
'availability_zone': 'nova',
'bootable': 'false',
'consistencygroup_id': None,
'created_at': datetime.datetime(1, 1, 1, 1, 1, 1),
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
'description': 'Volume Test Desc',
'encrypted': False,
'id': '1',
@ -320,7 +320,7 @@ class VolumeApiTest(test.TestCase):
'availability_zone': 'nova',
'bootable': 'false',
'consistencygroup_id': None,
'created_at': datetime.datetime(1, 1, 1, 1, 1, 1),
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
'description': 'Volume Test Desc',
'encrypted': False,
'id': '1',
@ -428,7 +428,7 @@ class VolumeApiTest(test.TestCase):
'source_volid': None,
'metadata': {'attached_mode': 'rw', 'readonly': 'False'},
'id': '1',
'created_at': datetime.datetime(1, 1, 1, 1, 1, 1),
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
'size': 1,
'links': [
{
@ -482,7 +482,7 @@ class VolumeApiTest(test.TestCase):
'source_volid': None,
'metadata': {'attached_mode': 'rw', 'readonly': 'False'},
'id': '1',
'created_at': datetime.datetime(1, 1, 1, 1, 1, 1),
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
'size': 1,
'links': [
{
@ -539,7 +539,7 @@ class VolumeApiTest(test.TestCase):
'source_volid': None,
'metadata': {'attached_mode': 'rw', 'readonly': 'False'},
'id': '1',
'created_at': datetime.datetime(1, 1, 1, 1, 1, 1),
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
'size': 1,
'links': [
{
@ -591,7 +591,7 @@ class VolumeApiTest(test.TestCase):
"readonly": "False",
"attached_mode": "rw"},
'id': '1',
'created_at': datetime.datetime(1, 1, 1, 1, 1, 1),
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
'size': 1,
'links': [
{
@ -653,7 +653,7 @@ class VolumeApiTest(test.TestCase):
'metadata': {'key': 'value',
'readonly': 'True'},
'id': '1',
'created_at': datetime.datetime(1, 1, 1, 1, 1, 1),
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
'size': 1,
'links': [
{
@ -759,7 +759,7 @@ class VolumeApiTest(test.TestCase):
'source_volid': None,
'metadata': {'attached_mode': 'rw', 'readonly': 'False'},
'id': '1',
'created_at': datetime.datetime(1, 1, 1, 1, 1, 1),
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
'size': 1,
'links': [
{
@ -821,7 +821,7 @@ class VolumeApiTest(test.TestCase):
'source_volid': None,
'metadata': {'key': 'value', 'readonly': 'True'},
'id': '1',
'created_at': datetime.datetime(1, 1, 1, 1, 1, 1),
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
'size': 1,
'links': [
{
@ -1222,7 +1222,7 @@ class VolumeApiTest(test.TestCase):
'source_volid': None,
'metadata': {'attached_mode': 'rw', 'readonly': 'False'},
'id': '1',
'created_at': datetime.datetime(1, 1, 1, 1, 1, 1),
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
'size': 1,
'links': [
{
@ -1265,7 +1265,7 @@ class VolumeApiTest(test.TestCase):
'source_volid': None,
'metadata': {'readonly': 'False'},
'id': '1',
'created_at': datetime.datetime(1, 1, 1, 1, 1, 1),
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
'size': 1,
'links': [
{
@ -1333,7 +1333,7 @@ class VolumeApiTest(test.TestCase):
'metadata': {'key': 'value',
'readonly': 'True'},
'id': '1',
'created_at': datetime.datetime(1, 1, 1, 1, 1, 1),
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
'size': 1,
'links': [
{

View File

@ -50,8 +50,10 @@ def _usage_from_volume(context, volume_ref, **kw):
volume_id=volume_ref['id'],
volume_type=volume_ref['volume_type_id'],
display_name=volume_ref['display_name'],
launched_at=null_safe_str(volume_ref['launched_at']),
created_at=null_safe_str(volume_ref['created_at']),
launched_at=timeutils.isotime(at=
volume_ref['launched_at']),
created_at=timeutils.isotime(at=
volume_ref['created_at']),
status=volume_ref['status'],
snapshot_id=volume_ref['snapshot_id'],
size=volume_ref['size'],
@ -153,7 +155,7 @@ def _usage_from_consistencygroup(context, group_ref, **kw):
availability_zone=group_ref['availability_zone'],
consistencygroup_id=group_ref['id'],
name=group_ref['name'],
created_at=null_safe_str(group_ref['created_at']),
created_at=timeutils.isotime(at=group_ref['created_at']),
status=group_ref['status'])
usage_info.update(kw)
@ -185,7 +187,7 @@ def _usage_from_cgsnapshot(context, cgsnapshot_ref, **kw):
cgsnapshot_id=cgsnapshot_ref['id'],
name=cgsnapshot_ref['name'],
consistencygroup_id=cgsnapshot_ref['consistencygroup_id'],
created_at=null_safe_str(cgsnapshot_ref['created_at']),
created_at=timeutils.isotime(at=cgsnapshot_ref['created_at']),
status=cgsnapshot_ref['status'])
usage_info.update(kw)