Merge "Trove - service_statuses status set to delete when instance deleted"

This commit is contained in:
Jenkins 2013-09-04 01:00:14 +00:00 committed by Gerrit Code Review
commit 0dfb50488b
2 changed files with 17 additions and 0 deletions

View File

@ -360,6 +360,7 @@ class BaseInstance(SimpleInstance):
LOG.warn(ex)
self.update_db(deleted=True, deleted_at=deleted_at,
task_status=InstanceTasks.NONE)
self.set_servicestatus_deleted()
# Delete associated security group
if CONF.trove_security_groups_support:
SecurityGroup.delete_for_instance(self.db_info.id,
@ -383,6 +384,11 @@ class BaseInstance(SimpleInstance):
setattr(self.db_info, key, values[key])
self.db_info.save()
def set_servicestatus_deleted(self):
del_instance = InstanceServiceStatus.find_by(instance_id=self.id)
del_instance.set_status(ServiceStatuses.DELETED)
del_instance.save()
@property
def volume_client(self):
if not self._volume_client:
@ -826,6 +832,7 @@ class ServiceStatuses(object):
BUILDING = ServiceStatus(0x09, 'building', 'BUILD')
UNKNOWN = ServiceStatus(0x16, 'unknown', 'ERROR')
NEW = ServiceStatus(0x17, 'new', 'NEW')
DELETED = ServiceStatus(0x05, 'deleted', 'DELETED')
MYSQL_RESPONSIVE_STATUSES = [ServiceStatuses.RUNNING]

View File

@ -1058,6 +1058,16 @@ class AfterDeleteChecks(object):
'trove.instance.delete',
**expected)
@test
def test_instance_status_deleted_in_db(self):
mgmt_details = dbaas_admin.management.index(deleted=True)
for instance in mgmt_details:
if instance.id == instance_info.id:
assert_equal(instance.service_status, 'DELETED')
break
else:
fail("Could not find instance %s" % instance_info.id)
@test(depends_on_classes=[CreateInstance, VerifyGuestStarted,
WaitForGuestInstallationToFinish],