Ability to read deleted system metadata records.
Update _instance_system_metadata_get_query to use read_deleted from the passed in context instead of just hard-coding "no". Also, use this to ensure system metadata is always collected during delete, even if the instance was deleted elsewhere. Fixes bug 1019357 Change-Id: I9285f110801435344fcaa76ba21fb88c23aac2fa
This commit is contained in:
@@ -761,12 +761,10 @@ class ComputeManager(manager.SchedulerDependentManager):
|
||||
vm_state=vm_states.DELETED,
|
||||
task_state=None,
|
||||
terminated_at=timeutils.utcnow())
|
||||
# Pull the system_metadata before we delete the instance, so we
|
||||
# can pass it to delete.end notification, as it will not be able
|
||||
# to look it up anymore, if it needs it.
|
||||
system_meta = self.db.instance_system_metadata_get(context,
|
||||
instance_uuid)
|
||||
self.db.instance_destroy(context, instance_uuid)
|
||||
with utils.temporary_mutation(context, read_deleted="yes"):
|
||||
system_meta = self.db.instance_system_metadata_get(context,
|
||||
instance_uuid)
|
||||
self._notify_about_instance_usage(context, instance, "delete.end",
|
||||
system_metadata=system_meta)
|
||||
|
||||
|
||||
@@ -4240,8 +4240,8 @@ def instance_metadata_update(context, instance_uuid, metadata, delete):
|
||||
# System-owned metadata
|
||||
|
||||
def _instance_system_metadata_get_query(context, instance_uuid, session=None):
|
||||
return model_query(context, models.InstanceSystemMetadata, session=session,
|
||||
read_deleted="no").\
|
||||
return model_query(context, models.InstanceSystemMetadata,
|
||||
session=session).\
|
||||
filter_by(instance_uuid=instance_uuid)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user