Make notifications properly string-convert instance datetimes

Instance objects use real datetimes for launched_at and terminated_at.
This patch makes the notification information function properly
handle those.

Related to blueprint compute-api-objects

Change-Id: I8622662a83ff0bdc75ffc9e267c5485925326f24
This commit is contained in:
Dan Smith
2013-07-09 14:58:48 -07:00
parent 93fbbceec2
commit 3daabbf761

View File

@@ -19,6 +19,8 @@
the system.
"""
import datetime
from oslo.config import cfg
from nova.compute import flavors
@@ -291,6 +293,12 @@ def info_from_instance(context, instance_ref, network_info,
def null_safe_str(s):
return str(s) if s else ''
def null_safe_isotime(s):
if isinstance(s, datetime.datetime):
return timeutils.strtime(s)
else:
return str(s) if s else ''
image_ref_url = glance.generate_image_url(instance_ref['image_ref'])
instance_type = flavors.extract_flavor(instance_ref)
@@ -335,8 +343,8 @@ def info_from_instance(context, instance_ref, network_info,
# Nova's deleted vs terminated instance terminology is confusing,
# this should be when the instance was deleted (i.e. terminated_at),
# not when the db record was deleted. (mdragon)
deleted_at=null_safe_str(instance_ref.get('terminated_at')),
launched_at=null_safe_str(instance_ref.get('launched_at')),
deleted_at=null_safe_isotime(instance_ref.get('terminated_at')),
launched_at=null_safe_isotime(instance_ref.get('launched_at')),
# Image properties
image_ref_url=image_ref_url,