$ openstack stack resource list <stack name>
+--------------------+--------------------------------------+-------------------------+-----------------+----------------------+
| resource_name | physical_resource_id | resource_type | resource_status | updated_time |
+--------------------+--------------------------------------+-------------------------+-----------------+----------------------+
| <resource name> | ########-####-####-####-############ | OS::Heat::ResourceGroup | DELETE_FAILED | <Time Stamp> |
$ openstack stack resource <Stack name> <Resource Name>
...
| resource_status_reason | DELETE aborted (Task delete from ResourceGroup "<resource name>" [< physical_resource_id>] Stack "<stack name>" [<stack UUID>] Timed out)
...
7.x
OpenStack fails to delete a heat stack, leaving it in a DELETE_FAILED state, because the request timed out.
#openstack stack list | grep -i DELETE_FAILED | awk '{ print $2 }' | while read i; do openstack stack resource list -n 2 $i | grep -i server | awk '{ print $4}' | while read s; do openstack server show $s -c OS-EXT-STS:task_state -f value ; done; done
#openstack stack list | grep -i DELETE_FAILED | awk '{ print $2 }' | while read i; do openstack stack resource list -n 2 $i | grep -i server | awk '{ print $4}' | while read s; do openstack server set --state active $s ; done; done
#openstack stack list | grep -i DELETE_FAILED | awk '{ print $2 }' | while read i; do openstack stack resource list -n 2 $i | grep -i server | awk '{ print $4}' | while read s; do STATE=$(openstack server show $s -c OS-EXT-STS:task_state -f value); if [ "$STATE" == "deleting" ]; then echo $n; fi; done; done
#openstack stack list | grep -i DELETE_FAILED | awk '{ print $2 }' | while read i; do openstack stack delete $i --yes; done