I'm currently trying to debug an issue, where the stack failures list amounts to "ERROR":
(undercloud) [stack@undercloud-0 ~]$ openstack stack failures list --long overcloud
overcloud.AllNodesDeploySteps.WorkflowTasks_Step2_Execution:
resource_type: OS::Mistral::ExternalResource
physical_resource_id: 3a7e9a89-4283-4e8a-842e-2cde7b8b3e23
status: CREATE_FAILED
status_reason: |
resources.WorkflowTasks_Step2_Execution: ERROR
It seems to be caused by something going wrong while running the workflows at https://github.com/openstack/tripleo-common/blob/master/workbooks/access.yaml , however due to an error in how the errors or messages are parsed in the workflow, it's difficult to find the root of the problems. There are many pages of YAQL evaluation errors, I'm pasting a few that seem relevant and ideally should be fixed to ease debugging in the future:
ceph_base_ansible_workflow [task_ex_id=e3e09097-c89d-4b7d-aef5-5169f7f09c57] -> Failure caused by error in tasks: enable_ssh_admin
enable_ssh_admin [task_ex_id=fe7e29f1-26ca-4c53-bc35-e72feb19ea58] -> Failure caused by error in tasks: create_admin_via_nova
create_admin_via_nova [task_ex_id=d8ae0d9c-58f3-4f4e-9fa3-bf3189a61a76] -> Failure caused by error in tasks: create_admin
create_admin [task_ex_id=22bf7ba4-c11f-48cb-a110-48548576da06] -> One or more actions had failed.
[wf_ex_id=009ce7eb-0e88-4f08-800a-0716dcaa17ac, idx=0]: Failed to run task [error=Can not evaluate YAQL expression [expression=task(deploy_config).result.deploy_stderr, error=Unknown function "#property#depl
oy_stderr", data={}], wf=tripleo.deployment.v1.deploy_on_server, task=send_message]:
YaqlEvaluationException: Can not evaluate YAQL expression [expression=task(deploy_config).result.deploy_stderr, error=Unknown function "#property#deploy_stderr", data={}]
- - -
2017-11-27 13:30:34.431 1352 INFO workflow_trace [req-9ad76c03-46ba-455c-b02a-0536bce603d9 2c93e7a436fe4ef8ae0b91c6ec5e921c 48958151e805416f939c5579ae578435 - default default] Workflow 'tripleo.access.v1.create_admin_via_nova' [RUNNING -> ERROR, msg=Failure caused by error in tasks: create_admin
...
create_admin_via_nova [task_ex_id=d8ae0d9c-58f3-4f4e-9fa3-bf3189a61a76] -> Failure caused by error in tasks: create_admin
create_admin [task_ex_id=22bf7ba4-c11f-48cb-a110-48548576da06] -> One or more actions had failed.
[wf_ex_id=009ce7eb-0e88-4f08-800a-0716dcaa17ac, idx=0]: Failed to run task [error=Can not evaluate YAQL expression [expression=task(deploy_config).result.deploy_stderr, error=Unknown function "#property#deploy_stderr", data={}], wf=tripleo.deployment.v1.deploy_on_server, task=send_message]:
create_admin [task_ex_id=22bf7ba4-c11f-48cb-a110-48548576da06] -> One or more actions had failed.
[wf_ex_id=009ce7eb-0e88-4f08-800a-0716dcaa17ac, idx=0]: Failed to run task [error=Can not evaluate YAQL expression [expression=task(deploy_config).result.deploy_stderr, error=Unknown function "#property#depl
oy_stderr", data={}], wf=tripleo.deployment.v1.deploy_on_server, task=send_message]:
[...]
File "/usr/lib/python2.7/site-packages/mistral/expressions/yaql_expression.py", line 119, in evaluate
cls).evaluate(trim_expr, data_context)
File "/usr/lib/python2.7/site-packages/mistral/expressions/yaql_expression.py", line 73, in evaluate
", data=%s]" % (expression, str(e), data_context)
YaqlEvaluationException: Can not evaluate YAQL expression [expression=task(deploy_config).result.deploy_stderr, error=Unknown function "#property#deploy_stderr", data={}]
Some information about the deployment: I'm trying to deploy 3 controllers + 2 compute + 3 ceph nodes, on Pike. The following environments are enabled:
- path: overcloud-resource-registry-puppet.yaml
- path: environments/docker.yaml
- path: environments/docker-ha.yaml
- path: environments/containers-default-parameters.yaml
- path: environments/ceph-ansible/ceph-ansible.yaml
The only "deploy_stderr" I can see is here. The task name (deploy_config) also matches up with your error.
https:/ /github. com/openstack/ tripleo- common/ blob/db340be059 f69d22cfb9f4edb 8f7d3a8663b571a /workbooks/ deployment. yaml#L46
The action tripleo. deployment. config is probably failing. Unfortunately, the way this workflow has been written, the error handling is broken. If this action fails, send_message is called and it attempts to access the deploy_stdout and deploy_stderr properties. However, when actions fail the output is only a string.
You should be able to find the error by looking at the task output or the mistral executor log.