From 3abc36d02c82ef9dd3a8978a7e17b6fd6ad76de8 Mon Sep 17 00:00:00 2001 From: Monsyne Dragon Date: Wed, 17 Dec 2014 23:33:07 +0000 Subject: [PATCH] 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 --- stacktach/views.py | 5 +++++ tests/unit/test_stacktach.py | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/stacktach/views.py b/stacktach/views.py index b77d609..1012eb2 100644 --- a/stacktach/views.py +++ b/stacktach/views.py @@ -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'], diff --git a/tests/unit/test_stacktach.py b/tests/unit/test_stacktach.py index 26ed609..3ac8b16 100644 --- a/tests/unit/test_stacktach.py +++ b/tests/unit/test_stacktach.py @@ -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()