Fix expensive api call to get deployment_name

We filter all resources for overcloud root stack with a
non-indexed field 'physical_resource_id' (nova_instance).
This is very inefficient.

With this patch, though there would still be making heat api
calls for every deployment, it won't be so expensive.

Change-Id: I260501e6061c0d6652b22504e7284940b2c64709
Closes-Bug: #1838861
(cherry picked from commit 3df3719e82)
This commit is contained in:
Rabi Mishra 2019-08-04 05:33:19 +05:30 committed by Emilien Macchi
parent 341b3cbb48
commit e3ca555245
1 changed files with 3 additions and 2 deletions

View File

@ -259,9 +259,10 @@ class Config(object):
deployment_stack = self.client.stacks.get(
deployment_stack_id, resolve_outputs=False)
parent_stack = deployment_stack.parent
grandparent_stack = self.client.stacks.get(
parent_stack, resolve_outputs=False).parent
resources = self.client.resources.list(
name,
nested_depth=constants.NESTED_DEPTH,
grandparent_stack,
filters=dict(physical_resource_id=parent_stack))
if not resources:
message = "The deployment resource grandparent name could" \