Don't overwrite greenthread-local context in host manager

There are a couple of places in host manager where we create a blank
RequestContext for internal database operations without passing
overwrite=False, so they will overwrite the greenthread-local context
that will be used for logging request_id, replacing them with newly
generated request_ids.

This changes the RequestContext creations to get_admin_context calls,
(which uses overwrite=False) to be more explicit about the admin-ness
of the internal database operations we're doing in these methods.

Related-Bug: #1773102

Change-Id: I752eb677d9ccc5ec65147380efe4067456fa312b
This commit is contained in:
melanie witt
2018-07-12 18:27:59 +00:00
parent 187f80a32c
commit 67c761cb2c

View File

@@ -418,7 +418,7 @@ class HostManager(object):
""" """
def _async_init_instance_info(computes_by_cell): def _async_init_instance_info(computes_by_cell):
context = context_module.RequestContext() context = context_module.get_admin_context()
LOG.debug("START:_async_init_instance_info") LOG.debug("START:_async_init_instance_info")
self._instance_info = {} self._instance_info = {}
@@ -449,7 +449,7 @@ class HostManager(object):
"deleted": False} "deleted": False}
with context_module.target_cell(context, cell) as cctxt: with context_module.target_cell(context, cell) as cctxt:
result = objects.InstanceList.get_by_filters( result = objects.InstanceList.get_by_filters(
cctxt.elevated(), filters) cctxt, filters)
instances = result.objects instances = result.objects
LOG.debug("Adding %s instances for hosts %s-%s", LOG.debug("Adding %s instances for hosts %s-%s",
len(instances), start_node, end_node) len(instances), start_node, end_node)
@@ -642,7 +642,7 @@ class HostManager(object):
def refresh_cells_caches(self): def refresh_cells_caches(self):
# NOTE(tssurya): This function is called from the scheduler manager's # NOTE(tssurya): This function is called from the scheduler manager's
# reset signal handler and also upon startup of the scheduler. # reset signal handler and also upon startup of the scheduler.
context = context_module.RequestContext() context = context_module.get_admin_context()
temp_cells = objects.CellMappingList.get_all(context) temp_cells = objects.CellMappingList.get_all(context)
# NOTE(tssurya): filtering cell0 from the list since it need # NOTE(tssurya): filtering cell0 from the list since it need
# not be considered for scheduling. # not be considered for scheduling.