Get deployment_stack_id via deployment_ref for config download

When the deployment is a software_resource, trying to get the
deployment_stack_id will failed with a http stack not found.
We need to get the deployment_stack_id with the dpeloyment
links.
Cherry pick from 8f7f5d2c6a

Closes-Bug: 1774961
Resolves: rhbz#1584951
Change-Id: I7f51a1d89ac6518d160b037615501dda745cb6e7
This commit is contained in:
Mathieu Bultel 2018-06-01 17:25:16 +02:00 committed by mathieu bultel
parent 4279b1b5ab
commit 726c603fb7
1 changed files with 11 additions and 4 deletions

View File

@ -232,8 +232,16 @@ class Config(object):
else:
# We can't have an integer here, let's figure out the
# grandparent resource name
deployment_stack_id = \
deployment.attributes['value']['deployment'].split('/')[-1]
deployment_ref = deployment.attributes['value']['deployment']
if '/' in deployment_ref:
deployment_stack_id = deployment_ref.split('/')[-1]
else:
for link in deployment.links:
if link['rel'] == 'stack':
deployment_stack_id = link['href'].split('/')[-1]
break
else:
raise ValueError("Couldn't not find parent stack")
deployment_stack = self.client.stacks.get(
deployment_stack_id, resolve_outputs=False)
parent_stack = deployment_stack.parent
@ -245,8 +253,7 @@ class Config(object):
message = "The deployment resource grandparent name could" \
"not be determined."
raise ValueError(message)
deployment_name = resources[0].name
deployment_name = resources[0].resource_name
config_dict['deployment_name'] = deployment_name
# reset deploy_server_id to the actual server_id since we have to