Since the fix for bug 1625783 landed, a get_file call to a file which doesn't exist will now continue the deploy, even though it should have failed with an error.
For a specific example, hear is a chain of file resolutions that currently exists:
- tripleo-heat-templates/environments/docker.yaml ->
- tripleo-heat-templates/docker/compute-post.yaml ->
- tripleo-heat-templates/puppet/manifests/overcloud_compute.pp
overcloud_compute.pp no longer exists, so this should fail. Instead the following is logged and the deployment continues without adding the docker.yaml environment at all:
Processing environment files ['/home/centos/overcloud-env.json', u'tripleo-heat-templates/environments/docker.yaml', u'tripleo-heat-templates/environments/docker-network.yaml']
Processing environment files /home/centos/overcloud-env.json
Processing environment files tripleo-heat-templates/environments/docker.yaml
Redirecting env file /home/centos/dev/tripleo-heat-templates/environments/docker.yaml to /tmp/tripleoclient-pRP81X/tripleo-heat-templates/environments/docker.yaml
Error Could not fetch contents for file:///tmp/tripleoclient-pRP81X/tripleo-heat-templates/puppet/manifests/overcloud_compute.pp processing environment file /tmp/tripleoclient-pRP81X/tripleo-heat-templates/environments/docker.yaml
Rewriting /tmp/tripleoclient-pRP81X/tripleo-heat-templates/environments/docker.yaml environment to /tmp/tripleoclient-pRP81X/tripleo-heat-templates/env-install_docker_agents-Qqyas3.yaml
Processing environment files tripleo-heat-templates/environments/docker-network.yaml
Redirecting env file /home/centos/dev/tripleo-heat-templates/environments/docker-network.yaml to /tmp/tripleoclient-pRP81X/tripleo-heat-templates/environments/docker-network.yaml
Adding files {u'file:///tmp/tripleoclient-pRP81X/tripleo-heat-templates/net-config-bridge.yaml': '{"outputs": {"OS::stack_id": {"description": "The OsNetConfigImpl resource.", "value": {"get_resource": "OsNetConfigImpl"}}}, "heat_template_version": "2015-04-30", "description": "Software Config to drive os-net-config for a simple bridge.\\n", "parameters": {"StorageIpSubnet": {"default": "", "type": "string", "description": "IP address/subnet on the storage network"}, "StorageMgmtIpSubnet": {"default": "", "type": "string", "description": "IP address/subnet on the storage mgmt network"}, "TenantIpSubnet": {"default": "", "type": "string", "description": "IP address/subnet on the tenant network"}, "ManagementIpSubnet": {"default": "", "type": "string", "description": "IP address/subnet on the management network"}, "ControlPlaneIp": {"default": "", "type": "string", "description": "IP address/subnet on the ctlplane network"}, "InternalApiIpSubnet": {"default": "", "type": "string", "description": "IP address/subnet on the internal API network"}, "ExternalIpSubnet": {"default": "", "type": "string", "description": "IP address/subnet on the external network"}}, "resources": {"OsNetConfigImpl": {"type": "OS::Heat::StructuredConfig", "properties": {"group": "os-apply-config", "config": {"os_net_config": {"network_config": [{"use_dhcp": true, "type": "ovs_bridge", "name": {"get_input": "bridge_name"}, "members": [{"type": "interface", "name": {"get_input": "interface_name"}, "primary": true}]}]}}}}}}'} for /tmp/tripleoclient-pRP81X/tripleo-heat-templates/environments/docker-network.yaml
sbaker also pointed out:
"An error in the user's environment files can result in all environments being silently dropped and the overcloud deploying with the defaults - this is not a great user experience."