Heat does not validation deployment 'actions' in a nested stack. It's possible to provide a role specific (non-standard) NetworkDeploymentActions that would result in heat deployments without resource_id and overcloud deploy would fail.
Here is an example stack trace that we find:
{"message": "The resource could not be found.<br /><br />\n\n\n", "code": "404 Not Found", "title": "Not Found"}
log_http_response /usr/lib/python2.7/site-packages/heatclient/common/http.py:157
2019-01-16 10:35:17.418 1 WARNING mistral.executors.default_executor [req-36f0f06d-5ce3-4de2-820c-8481b43409e7 6612b704f7a34876b5799e29298021bd 0254bbcb255d445083b5b16db74011e8 - default default] The action raised an exception [action_ex_id=f25ce5c2-61cf-4bc4-b817-006574c70802, action_cls='<class 'mistral.actions.action_factory.GetOvercloudConfig'>', attributes='{}', params='{u'container_config': u'overcloud-config', u'container': u'overcloud'}']
ERROR: None: HTTPNotFound: ERROR: None
ERROR mistral.executors.default_executor Traceback (most recent call last):
ERROR mistral.executors.default_executor File "/usr/lib/python2.7/site-packages/mistral/executors/default_executor.py", line 114, in run_action
ERROR mistral.executors.default_executor result = action.run(action_ctx)
ERROR mistral.executors.default_executor File "/usr/lib/python2.7/site-packages/tripleo_common/actions/config.py", line 87, in run
ERROR mistral.executors.default_executor commit_message=message)
ERROR mistral.executors.default_executor File "/usr/lib/python2.7/site-packages/tripleo_common/utils/config.py", line 465, in download_config
ERROR mistral.executors.default_executor self.write_config(stack, name, config_dir, config_type)
ERROR mistral.executors.default_executor File "/usr/lib/python2.7/site-packages/tripleo_common/utils/config.py", line 273, in write_config
ERROR mistral.executors.default_executor config_dict = self.get_config_dict(deployment)
ERROR mistral.executors.default_executor File "/usr/lib/python2.7/site-packages/tripleo_common/utils/config.py", line 86, in get_config_dict
ERROR mistral.executors.default_executor deployment_resource_id)
ERROR mistral.executors.default_executor File "/usr/lib/python2.7/site-packages/heatclient/v1/software_deployments.py", line 57, in get
ERROR mistral.executors.default_executor resp = self.client.get('/software_deployments/%s' % deployment_id)
ERROR mistral.executors.default_executor File "/usr/lib/python2.7/site-packages/heatclient/common/http.py", line 289, in get
ERROR mistral.executors.default_executor return self.client_request("GET", url, **kwargs)
ERROR mistral.executors.default_executor File "/usr/lib/python2.7/site-packages/heatclient/common/http.py", line 282, in client_request
ERROR mistral.executors.default_executor resp, body = self.json_request(method, url, **kwargs)
ERROR mistral.executors.default_executor File "/usr/lib/python2.7/site-packages/heatclient/common/http.py", line 271, in json_request
ERROR mistral.executors.default_executor resp = self._http_request(url, method, **kwargs)
ERROR mistral.executors.default_executor File "/usr/lib/python2.7/site-packages/heatclient/common/http.py", line 234, in _http_request
ERROR mistral.executors.default_executor raise exc.from_response(resp)
ERROR mistral.executors.default_executor HTTPNotFound: ERROR: None
ERROR mistral.executors.default_executor
Fix proposed to branch: stable/rocky /review. openstack. org/632011
Review: https:/