diff options
author | Riddhi Shah <ridhi.j.shah@gmail.com> | 2013-08-16 12:17:28 -0500 |
---|---|---|
committer | Ed Cranford <ed.cranford@rackspace.com> | 2013-08-29 16:10:56 -0500 |
commit | fc3d2f5ed7400e7839485b7e4a3066e3a150cf33 (patch) | |
tree | 801ebad2ed7a2552500c9ef0b592e6d9a4500f38 | |
parent | aa5c3ddf1bd39e6074114cba624bf9d33237725d (diff) | |
download | trove-fc3d2f5ed7400e7839485b7e4a3066e3a150cf33.tar.gz |
Trove - service_statuses status set to delete when instance deleted
A Trove Instance that is created and booted successfully has a
service_statuses status as running.When the instance is deleted
however, the service_statuses record remains unchanged.
This fix updates the status to deleted.
Change-Id: Ied0b740e2de563f6337dbbcc3c026aad2777cc53
Fixes: bug #1200373
-rw-r--r-- | trove/instance/models.py | 7 | ||||
-rw-r--r-- | trove/tests/api/instances.py | 10 |
2 files changed, 17 insertions, 0 deletions
diff --git a/trove/instance/models.py b/trove/instance/models.py index a4c35406..7a36759e 100644 --- a/trove/instance/models.py +++ b/trove/instance/models.py @@ -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: @@ -820,6 +826,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] diff --git a/trove/tests/api/instances.py b/trove/tests/api/instances.py index 167bac0e..1d3f83e8 100644 --- a/trove/tests/api/instances.py +++ b/trove/tests/api/instances.py @@ -1060,6 +1060,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], |