Use tmp env path when rewriting absolute resource paths

When rewriting absolute resource paths from a resource_registry that
failed to load due to missing resources (one case being where those
resources are rendered j2), then we should refer to the initial
environemnt that failed to load by the tmp path.

This is required since itself may have been rendered from j2. In such a
case, the environment doesn't exist under the absolute template root
path as it's not been rendered to that location.

Change-Id: Ib681729cc2728ca4b0486c14166b6b702edfcaab
Closes-Bug: #1671096
(cherry picked from commit 9bfd6c21a7)
This commit is contained in:
James Slagle 2017-03-08 08:36:58 -05:00
parent f7196dfedf
commit 92c6fd1278
1 changed files with 3 additions and 1 deletions

View File

@ -158,7 +158,9 @@ class DeployOvercloud(command.Command):
# for details on why this is needed (backwards-compatibility)
self.log.debug("Error %s processing environment file %s"
% (six.text_type(ex), env_path))
with open(abs_env_path, 'r') as f:
# Use the temporary path as it's possible the environment
# itself was rendered via jinja.
with open(env_path, 'r') as f:
env_map = yaml.safe_load(f)
env_registry = env_map.get('resource_registry', {})
env_dirname = os.path.dirname(os.path.abspath(env_path))