If you specify a rendered environment file name that comes from a j2 template with -e on the command line like so: openstack overcloud deploy ... -e /path/to/some/environment/my-environment.yaml ... where /path/to/some/environment/my-environment.yaml comes from /path/to/some/environment/my-environment.j2.yaml, if there is any exception loading the rendered environment you hit this exception block: https://github.com/openstack/python-tripleoclient/blob/master/tripleoclient/v1/overcloud_deploy.py#L143 where tripleoclient will attempt to rewrite file paths from their absolution location to the new tmp dir location that has been downloaded from swift. However, this fails with an error with a "No such file or directory" error triggered by this line: https://github.com/openstack/python-tripleoclient/blob/master/tripleoclient/v1/overcloud_deploy.py#L143 which is: with open(abs_env_path, 'r') as f: since the the abs_env_path doesn't exist as it was rendered from a template. In this case, I think we just need to use env_path in that line.
Moving to post; patches have been merged in master and backported in stable/ocata upstream. Now waiting for a new downstream build that would include the fix.
Verified on build 2017-04-20.2 [stack@undercloud-0 ~]$ rpm -q python-tripleoclient python-tripleoclient-6.1.0-6.el7ost.noarch
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHEA-2017:1245