service_statuses updated_at Field Not Set

The service_statuses updated_at value is never set due to
inconsistent column naming ('updated' is automatically set in the
base model). The result is the value remains NULL throughout the
instance creation lifecycle, despite multiple row updates.

Fix: override save() and set updated_at (following the pattern
established in agent_heartbeats)

Change-Id: I71fea5001fa1868d221f50c34605022e6a1022bd
Closes-Bug: #1199518
This commit is contained in:
amcrn
2013-09-04 17:35:22 -07:00
parent 6ecab67a17
commit 10b1801ac9

View File

@@ -25,8 +25,10 @@ from trove.common.remote import create_dns_client
from trove.common.remote import create_guest_client
from trove.common.remote import create_nova_client
from trove.common.remote import create_cinder_client
from trove.common import utils
from trove.extensions.security_group.models import SecurityGroup
from trove.extensions.security_group.models import SecurityGroupRule
from trove.db import get_db_api
from trove.db import models as dbmodels
from trove.backup.models import Backup
from trove.quota.quota import run_with_quotas
@@ -722,7 +724,8 @@ class ServiceImage(dbmodels.DatabaseModelBase):
class InstanceServiceStatus(dbmodels.DatabaseModelBase):
_data_fields = ['instance_id', 'status_id', 'status_description']
_data_fields = ['instance_id', 'status_id', 'status_description',
'updated_at']
def __init__(self, status, **kwargs):
kwargs["status_id"] = status.code
@@ -743,6 +746,10 @@ class InstanceServiceStatus(dbmodels.DatabaseModelBase):
self.status_id = value.code
self.status_description = value.description
def save(self):
self['updated_at'] = utils.utcnow()
return get_db_api().save(self)
status = property(get_status, set_status)