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:
@@ -96,7 +96,7 @@ class VolumeApiTest(test.TestCase):
|
|||||||
'source_volid': None,
|
'source_volid': None,
|
||||||
'metadata': {},
|
'metadata': {},
|
||||||
'id': '1',
|
'id': '1',
|
||||||
'created_at': datetime.datetime(1, 1, 1,
|
'created_at': datetime.datetime(1900, 1, 1,
|
||||||
1, 1, 1),
|
1, 1, 1),
|
||||||
'size': 100,
|
'size': 100,
|
||||||
'encrypted': False}}
|
'encrypted': False}}
|
||||||
@@ -188,7 +188,7 @@ class VolumeApiTest(test.TestCase):
|
|||||||
'source_volid': None,
|
'source_volid': None,
|
||||||
'metadata': {},
|
'metadata': {},
|
||||||
'id': '1',
|
'id': '1',
|
||||||
'created_at': datetime.datetime(1, 1, 1,
|
'created_at': datetime.datetime(1900, 1, 1,
|
||||||
1, 1, 1),
|
1, 1, 1),
|
||||||
'size': '1'}}
|
'size': '1'}}
|
||||||
body = {"volume": vol}
|
body = {"volume": vol}
|
||||||
@@ -272,7 +272,7 @@ class VolumeApiTest(test.TestCase):
|
|||||||
'metadata': {'attached_mode': 'rw',
|
'metadata': {'attached_mode': 'rw',
|
||||||
'readonly': 'False'},
|
'readonly': 'False'},
|
||||||
'id': '1',
|
'id': '1',
|
||||||
'created_at': datetime.datetime(1, 1, 1, 1, 1, 1),
|
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
|
||||||
'size': 1}}
|
'size': 1}}
|
||||||
self.assertEqual(res_dict, expected)
|
self.assertEqual(res_dict, expected)
|
||||||
self.assertEqual(len(fake_notifier.NOTIFICATIONS), 2)
|
self.assertEqual(len(fake_notifier.NOTIFICATIONS), 2)
|
||||||
@@ -309,7 +309,7 @@ class VolumeApiTest(test.TestCase):
|
|||||||
"readonly": "False",
|
"readonly": "False",
|
||||||
"attached_mode": "rw"},
|
"attached_mode": "rw"},
|
||||||
'id': '1',
|
'id': '1',
|
||||||
'created_at': datetime.datetime(1, 1, 1, 1, 1, 1),
|
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
|
||||||
'size': 1
|
'size': 1
|
||||||
}}
|
}}
|
||||||
self.assertEqual(res_dict, expected)
|
self.assertEqual(res_dict, expected)
|
||||||
@@ -358,7 +358,7 @@ class VolumeApiTest(test.TestCase):
|
|||||||
'metadata': {'key': 'value',
|
'metadata': {'key': 'value',
|
||||||
'readonly': 'True'},
|
'readonly': 'True'},
|
||||||
'id': '1',
|
'id': '1',
|
||||||
'created_at': datetime.datetime(1, 1, 1, 1, 1, 1),
|
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
|
||||||
'size': 1}}
|
'size': 1}}
|
||||||
self.assertEqual(res_dict, expected)
|
self.assertEqual(res_dict, expected)
|
||||||
self.assertEqual(len(fake_notifier.NOTIFICATIONS), 2)
|
self.assertEqual(len(fake_notifier.NOTIFICATIONS), 2)
|
||||||
@@ -412,7 +412,7 @@ class VolumeApiTest(test.TestCase):
|
|||||||
'metadata': {'attached_mode': 'rw',
|
'metadata': {'attached_mode': 'rw',
|
||||||
'readonly': 'False'},
|
'readonly': 'False'},
|
||||||
'id': '1',
|
'id': '1',
|
||||||
'created_at': datetime.datetime(1, 1, 1,
|
'created_at': datetime.datetime(1900, 1, 1,
|
||||||
1, 1, 1),
|
1, 1, 1),
|
||||||
'size': 1}]}
|
'size': 1}]}
|
||||||
self.assertEqual(res_dict, expected)
|
self.assertEqual(res_dict, expected)
|
||||||
@@ -452,7 +452,7 @@ class VolumeApiTest(test.TestCase):
|
|||||||
'metadata': {'key': 'value',
|
'metadata': {'key': 'value',
|
||||||
'readonly': 'True'},
|
'readonly': 'True'},
|
||||||
'id': '1',
|
'id': '1',
|
||||||
'created_at': datetime.datetime(1, 1, 1,
|
'created_at': datetime.datetime(1900, 1, 1,
|
||||||
1, 1, 1),
|
1, 1, 1),
|
||||||
'size': 1}]}
|
'size': 1}]}
|
||||||
self.assertEqual(res_dict, expected)
|
self.assertEqual(res_dict, expected)
|
||||||
@@ -481,7 +481,7 @@ class VolumeApiTest(test.TestCase):
|
|||||||
'metadata': {'attached_mode': 'rw',
|
'metadata': {'attached_mode': 'rw',
|
||||||
'readonly': 'False'},
|
'readonly': 'False'},
|
||||||
'id': '1',
|
'id': '1',
|
||||||
'created_at': datetime.datetime(1, 1, 1,
|
'created_at': datetime.datetime(1900, 1, 1,
|
||||||
1, 1, 1),
|
1, 1, 1),
|
||||||
'size': 1}]}
|
'size': 1}]}
|
||||||
self.assertEqual(res_dict, expected)
|
self.assertEqual(res_dict, expected)
|
||||||
@@ -521,7 +521,7 @@ class VolumeApiTest(test.TestCase):
|
|||||||
'metadata': {'key': 'value',
|
'metadata': {'key': 'value',
|
||||||
'readonly': 'True'},
|
'readonly': 'True'},
|
||||||
'id': '1',
|
'id': '1',
|
||||||
'created_at': datetime.datetime(1, 1, 1,
|
'created_at': datetime.datetime(1900, 1, 1,
|
||||||
1, 1, 1),
|
1, 1, 1),
|
||||||
'size': 1}]}
|
'size': 1}]}
|
||||||
self.assertEqual(res_dict, expected)
|
self.assertEqual(res_dict, expected)
|
||||||
@@ -548,7 +548,7 @@ class VolumeApiTest(test.TestCase):
|
|||||||
'metadata': {'attached_mode': 'rw',
|
'metadata': {'attached_mode': 'rw',
|
||||||
'readonly': 'False'},
|
'readonly': 'False'},
|
||||||
'id': '1',
|
'id': '1',
|
||||||
'created_at': datetime.datetime(1, 1, 1,
|
'created_at': datetime.datetime(1900, 1, 1,
|
||||||
1, 1, 1),
|
1, 1, 1),
|
||||||
'size': 1}}
|
'size': 1}}
|
||||||
self.assertEqual(res_dict, expected)
|
self.assertEqual(res_dict, expected)
|
||||||
@@ -575,7 +575,7 @@ class VolumeApiTest(test.TestCase):
|
|||||||
'source_volid': None,
|
'source_volid': None,
|
||||||
'metadata': {'readonly': 'False'},
|
'metadata': {'readonly': 'False'},
|
||||||
'id': '1',
|
'id': '1',
|
||||||
'created_at': datetime.datetime(1, 1, 1,
|
'created_at': datetime.datetime(1900, 1, 1,
|
||||||
1, 1, 1),
|
1, 1, 1),
|
||||||
'size': 1}}
|
'size': 1}}
|
||||||
self.assertEqual(res_dict, expected)
|
self.assertEqual(res_dict, expected)
|
||||||
@@ -606,7 +606,7 @@ class VolumeApiTest(test.TestCase):
|
|||||||
'metadata': {'attached_mode': 'rw',
|
'metadata': {'attached_mode': 'rw',
|
||||||
'readonly': 'False'},
|
'readonly': 'False'},
|
||||||
'id': '1',
|
'id': '1',
|
||||||
'created_at': datetime.datetime(1, 1, 1,
|
'created_at': datetime.datetime(1900, 1, 1,
|
||||||
1, 1, 1),
|
1, 1, 1),
|
||||||
'size': 1}}
|
'size': 1}}
|
||||||
self.assertEqual(res_dict, expected)
|
self.assertEqual(res_dict, expected)
|
||||||
@@ -683,7 +683,7 @@ class VolumeApiTest(test.TestCase):
|
|||||||
'metadata': {'key': 'value',
|
'metadata': {'key': 'value',
|
||||||
'readonly': 'True'},
|
'readonly': 'True'},
|
||||||
'id': '1',
|
'id': '1',
|
||||||
'created_at': datetime.datetime(1, 1, 1,
|
'created_at': datetime.datetime(1900, 1, 1,
|
||||||
1, 1, 1),
|
1, 1, 1),
|
||||||
'size': 1}}
|
'size': 1}}
|
||||||
self.assertEqual(res_dict, expected)
|
self.assertEqual(res_dict, expected)
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ def stub_volume(id, **kwargs):
|
|||||||
'display_name': 'displayname',
|
'display_name': 'displayname',
|
||||||
'display_description': 'displaydesc',
|
'display_description': 'displaydesc',
|
||||||
'updated_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
|
'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,
|
'snapshot_id': None,
|
||||||
'source_volid': None,
|
'source_volid': None,
|
||||||
'volume_type_id': '3e196c20-3c06-11e2-81c1-0800200c9a66',
|
'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'},
|
'volume_admin_metadata': [{'key': 'attached_mode', 'value': 'rw'},
|
||||||
{'key': 'readonly', 'value': 'False'}],
|
{'key': 'readonly', 'value': 'False'}],
|
||||||
'bootable': 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'},
|
'volume_type': {'name': 'vol_type_name'},
|
||||||
'replication_status': 'disabled',
|
'replication_status': 'disabled',
|
||||||
'replication_extended_status': None,
|
'replication_extended_status': None,
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ class VolumeApiTest(test.TestCase):
|
|||||||
'availability_zone': 'zone1:host1',
|
'availability_zone': 'zone1:host1',
|
||||||
'bootable': 'false',
|
'bootable': 'false',
|
||||||
'consistencygroup_id': None,
|
'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',
|
'description': 'Volume Test Desc',
|
||||||
'id': '1',
|
'id': '1',
|
||||||
'links':
|
'links':
|
||||||
@@ -230,7 +230,7 @@ class VolumeApiTest(test.TestCase):
|
|||||||
'availability_zone': 'nova',
|
'availability_zone': 'nova',
|
||||||
'bootable': 'false',
|
'bootable': 'false',
|
||||||
'consistencygroup_id': None,
|
'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',
|
'description': 'Volume Test Desc',
|
||||||
'encrypted': False,
|
'encrypted': False,
|
||||||
'id': '1',
|
'id': '1',
|
||||||
@@ -320,7 +320,7 @@ class VolumeApiTest(test.TestCase):
|
|||||||
'availability_zone': 'nova',
|
'availability_zone': 'nova',
|
||||||
'bootable': 'false',
|
'bootable': 'false',
|
||||||
'consistencygroup_id': None,
|
'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',
|
'description': 'Volume Test Desc',
|
||||||
'encrypted': False,
|
'encrypted': False,
|
||||||
'id': '1',
|
'id': '1',
|
||||||
@@ -428,7 +428,7 @@ class VolumeApiTest(test.TestCase):
|
|||||||
'source_volid': None,
|
'source_volid': None,
|
||||||
'metadata': {'attached_mode': 'rw', 'readonly': 'False'},
|
'metadata': {'attached_mode': 'rw', 'readonly': 'False'},
|
||||||
'id': '1',
|
'id': '1',
|
||||||
'created_at': datetime.datetime(1, 1, 1, 1, 1, 1),
|
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
|
||||||
'size': 1,
|
'size': 1,
|
||||||
'links': [
|
'links': [
|
||||||
{
|
{
|
||||||
@@ -482,7 +482,7 @@ class VolumeApiTest(test.TestCase):
|
|||||||
'source_volid': None,
|
'source_volid': None,
|
||||||
'metadata': {'attached_mode': 'rw', 'readonly': 'False'},
|
'metadata': {'attached_mode': 'rw', 'readonly': 'False'},
|
||||||
'id': '1',
|
'id': '1',
|
||||||
'created_at': datetime.datetime(1, 1, 1, 1, 1, 1),
|
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
|
||||||
'size': 1,
|
'size': 1,
|
||||||
'links': [
|
'links': [
|
||||||
{
|
{
|
||||||
@@ -539,7 +539,7 @@ class VolumeApiTest(test.TestCase):
|
|||||||
'source_volid': None,
|
'source_volid': None,
|
||||||
'metadata': {'attached_mode': 'rw', 'readonly': 'False'},
|
'metadata': {'attached_mode': 'rw', 'readonly': 'False'},
|
||||||
'id': '1',
|
'id': '1',
|
||||||
'created_at': datetime.datetime(1, 1, 1, 1, 1, 1),
|
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
|
||||||
'size': 1,
|
'size': 1,
|
||||||
'links': [
|
'links': [
|
||||||
{
|
{
|
||||||
@@ -591,7 +591,7 @@ class VolumeApiTest(test.TestCase):
|
|||||||
"readonly": "False",
|
"readonly": "False",
|
||||||
"attached_mode": "rw"},
|
"attached_mode": "rw"},
|
||||||
'id': '1',
|
'id': '1',
|
||||||
'created_at': datetime.datetime(1, 1, 1, 1, 1, 1),
|
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
|
||||||
'size': 1,
|
'size': 1,
|
||||||
'links': [
|
'links': [
|
||||||
{
|
{
|
||||||
@@ -653,7 +653,7 @@ class VolumeApiTest(test.TestCase):
|
|||||||
'metadata': {'key': 'value',
|
'metadata': {'key': 'value',
|
||||||
'readonly': 'True'},
|
'readonly': 'True'},
|
||||||
'id': '1',
|
'id': '1',
|
||||||
'created_at': datetime.datetime(1, 1, 1, 1, 1, 1),
|
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
|
||||||
'size': 1,
|
'size': 1,
|
||||||
'links': [
|
'links': [
|
||||||
{
|
{
|
||||||
@@ -759,7 +759,7 @@ class VolumeApiTest(test.TestCase):
|
|||||||
'source_volid': None,
|
'source_volid': None,
|
||||||
'metadata': {'attached_mode': 'rw', 'readonly': 'False'},
|
'metadata': {'attached_mode': 'rw', 'readonly': 'False'},
|
||||||
'id': '1',
|
'id': '1',
|
||||||
'created_at': datetime.datetime(1, 1, 1, 1, 1, 1),
|
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
|
||||||
'size': 1,
|
'size': 1,
|
||||||
'links': [
|
'links': [
|
||||||
{
|
{
|
||||||
@@ -821,7 +821,7 @@ class VolumeApiTest(test.TestCase):
|
|||||||
'source_volid': None,
|
'source_volid': None,
|
||||||
'metadata': {'key': 'value', 'readonly': 'True'},
|
'metadata': {'key': 'value', 'readonly': 'True'},
|
||||||
'id': '1',
|
'id': '1',
|
||||||
'created_at': datetime.datetime(1, 1, 1, 1, 1, 1),
|
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
|
||||||
'size': 1,
|
'size': 1,
|
||||||
'links': [
|
'links': [
|
||||||
{
|
{
|
||||||
@@ -1222,7 +1222,7 @@ class VolumeApiTest(test.TestCase):
|
|||||||
'source_volid': None,
|
'source_volid': None,
|
||||||
'metadata': {'attached_mode': 'rw', 'readonly': 'False'},
|
'metadata': {'attached_mode': 'rw', 'readonly': 'False'},
|
||||||
'id': '1',
|
'id': '1',
|
||||||
'created_at': datetime.datetime(1, 1, 1, 1, 1, 1),
|
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
|
||||||
'size': 1,
|
'size': 1,
|
||||||
'links': [
|
'links': [
|
||||||
{
|
{
|
||||||
@@ -1265,7 +1265,7 @@ class VolumeApiTest(test.TestCase):
|
|||||||
'source_volid': None,
|
'source_volid': None,
|
||||||
'metadata': {'readonly': 'False'},
|
'metadata': {'readonly': 'False'},
|
||||||
'id': '1',
|
'id': '1',
|
||||||
'created_at': datetime.datetime(1, 1, 1, 1, 1, 1),
|
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
|
||||||
'size': 1,
|
'size': 1,
|
||||||
'links': [
|
'links': [
|
||||||
{
|
{
|
||||||
@@ -1333,7 +1333,7 @@ class VolumeApiTest(test.TestCase):
|
|||||||
'metadata': {'key': 'value',
|
'metadata': {'key': 'value',
|
||||||
'readonly': 'True'},
|
'readonly': 'True'},
|
||||||
'id': '1',
|
'id': '1',
|
||||||
'created_at': datetime.datetime(1, 1, 1, 1, 1, 1),
|
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1),
|
||||||
'size': 1,
|
'size': 1,
|
||||||
'links': [
|
'links': [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -50,8 +50,10 @@ def _usage_from_volume(context, volume_ref, **kw):
|
|||||||
volume_id=volume_ref['id'],
|
volume_id=volume_ref['id'],
|
||||||
volume_type=volume_ref['volume_type_id'],
|
volume_type=volume_ref['volume_type_id'],
|
||||||
display_name=volume_ref['display_name'],
|
display_name=volume_ref['display_name'],
|
||||||
launched_at=null_safe_str(volume_ref['launched_at']),
|
launched_at=timeutils.isotime(at=
|
||||||
created_at=null_safe_str(volume_ref['created_at']),
|
volume_ref['launched_at']),
|
||||||
|
created_at=timeutils.isotime(at=
|
||||||
|
volume_ref['created_at']),
|
||||||
status=volume_ref['status'],
|
status=volume_ref['status'],
|
||||||
snapshot_id=volume_ref['snapshot_id'],
|
snapshot_id=volume_ref['snapshot_id'],
|
||||||
size=volume_ref['size'],
|
size=volume_ref['size'],
|
||||||
@@ -153,7 +155,7 @@ def _usage_from_consistencygroup(context, group_ref, **kw):
|
|||||||
availability_zone=group_ref['availability_zone'],
|
availability_zone=group_ref['availability_zone'],
|
||||||
consistencygroup_id=group_ref['id'],
|
consistencygroup_id=group_ref['id'],
|
||||||
name=group_ref['name'],
|
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'])
|
status=group_ref['status'])
|
||||||
|
|
||||||
usage_info.update(kw)
|
usage_info.update(kw)
|
||||||
@@ -185,7 +187,7 @@ def _usage_from_cgsnapshot(context, cgsnapshot_ref, **kw):
|
|||||||
cgsnapshot_id=cgsnapshot_ref['id'],
|
cgsnapshot_id=cgsnapshot_ref['id'],
|
||||||
name=cgsnapshot_ref['name'],
|
name=cgsnapshot_ref['name'],
|
||||||
consistencygroup_id=cgsnapshot_ref['consistencygroup_id'],
|
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'])
|
status=cgsnapshot_ref['status'])
|
||||||
|
|
||||||
usage_info.update(kw)
|
usage_info.update(kw)
|
||||||
|
|||||||
Reference in New Issue
Block a user