Fix instance_type_id not always being populated.

Fix to make sure instance_type_id is always populated
on InstanceUsage, even if the compute.instance.create
operation is split acreooss multiple requests.

Change-Id: Ic6243e8d5156d0e49a8fa1748a6a152724f01a14
This commit is contained in:
Monsyne Dragon 2014-12-17 23:33:07 +00:00
parent fea828ab35
commit 3abc36d02c
2 changed files with 9 additions and 0 deletions

View File

@ -240,6 +240,11 @@ def _process_usage_for_updates(raw, notification):
INSTANCE_EVENT['resize_revert_end'],
INSTANCE_EVENT['rescue_end']]:
usage.launched_at = utils.str_time_to_unix(notification.launched_at)
if usage.instance_type_id is None:
usage.instance_type_id = notification.instance_type_id
if usage.instance_flavor_id is None:
usage.instance_flavor_id = notification.instance_flavor_id
if raw.event in [INSTANCE_EVENT['resize_revert_end'],
INSTANCE_EVENT['resize_finish_start'],

View File

@ -529,6 +529,8 @@ class StacktachUsageParsingTestCase(StacktachBaseTestCase):
usage = self.mox.CreateMockAnything()
usage.launched_at = None
usage.instance_type_id = None
usage.instance_flavor_id = None
views.STACKDB.get_or_create_instance_usage(instance=INSTANCE_ID_1,
request_id=REQUEST_ID_1) \
.AndReturn((usage, True))
@ -543,6 +545,8 @@ class StacktachUsageParsingTestCase(StacktachBaseTestCase):
self.assertEquals(usage.os_version, OS_VERSION_1)
self.assertEquals(usage.os_distro, OS_DISTRO_1)
self.assertEquals(usage.rax_options, RAX_OPTIONS_1)
self.assertEquals(usage.instance_type_id, INSTANCE_TYPE_ID_1)
self.assertEquals(usage.instance_flavor_id, INSTANCE_FLAVOR_ID_1)
self.mox.VerifyAll()