OpenStack Orchestration (Heat)
Go to file
Anant Patil 99b055b423 Re-trigger on update-replace
It is found that the inter-leaving of lock when a update-replace of a
resource is needed is the reason for new traversal not being triggered.

Consider the order of events below:
1. A server is being updated. The worker locks the server resource.
2. A rollback is triggered because some one cancelled the stack.
3. As part of rollback, new update using old template is started.
4. The new update tries to take the lock but it has been already
acquired in (1). The new update now expects that the when the old
resource is done, it will re-trigger the new traversal.
5. The old update decides to create a new resource for replacement. The
replacement resource is initiated for creation, a check_resource RPC
call is made for new resource.
6. A worker, possibly in another engine, receives the call and then it
bails out when it finds that there is a new traversal initiated (from
2). Now, there is no progress from here because it is expected (from 4)
that there will be a re-trigger when the old resource is done.

This change takes care of re-triggering the new traversal from worker
when it finds that there is a new traversal and an update-replace. Note
that this issue will not be seen when there is no update-replace
because the old resource will finish (either fail or complete) and in
the same thread it will find the new traversal and trigger it.

Closes-Bug: #1625073
Change-Id: Icea5ba498ef8ca45cd85a9721937da2f4ac304e0
2016-09-20 11:58:24 +00:00
api-ref/source Merge "[api-ref] Remove temporary block in conf.py" 2016-09-13 13:41:37 +00:00
bin Fix heat-keystone-setup-domain 2016-05-16 07:38:46 +00:00
contrib Merge "Add version keyword argument to RAX glanceclient" 2016-08-15 23:55:50 +00:00
devstack Merge "Don't run neutron tests before upgrade" 2016-09-02 10:16:30 +00:00
doc Update link reference 2016-09-15 14:37:34 +07:00
etc/heat Merge "Add OS::Cinder::Quota resource" 2016-09-03 00:06:41 +00:00
heat Re-trigger on update-replace 2016-09-20 11:58:24 +00:00
heat_integrationtests Merge "Allow referencing conditions by name" 2016-09-14 22:43:56 +00:00
heat_upgradetests In-tree grenade support for Heat 2015-07-02 17:23:22 +05:30
install-guide/source Install Guide: Set bug project 2016-06-24 15:34:11 +02:00
rally-scenarios Rally tests plugins for Heat 2016-03-02 12:20:37 -05:00
releasenotes Update reno for stable/newton 2016-09-15 10:27:22 -04:00
tools Don't raise error in custom guidelines on IOError 2016-08-24 09:36:02 +00:00
.coveragerc Change ignore-errors to ignore_errors 2015-09-21 14:26:58 +00:00
.gitignore Create integration tests requirements on the fly 2016-03-25 13:40:50 +00:00
.gitreview Update .gitreview for org move. 2012-12-02 17:46:15 +00:00
.testr.conf Add separate requirements.txt to integration tests 2015-04-01 09:02:13 +00:00
CONTRIBUTING.rst Workflow documentation is now in infra-manual 2014-12-05 03:30:36 +00:00
HACKING.rst Restrict use of iteritems, iterkeys and itervalues 2016-03-23 10:05:54 +00:00
LICENSE Initial commit (basics copied from glance) 2012-03-13 21:48:07 +11:00
README.rst Add aodh client plugin 2016-06-24 09:07:51 +00:00
babel.cfg Add setup.py and friends 2012-03-14 09:25:54 +11:00
bandit.yaml tox environment for `bandit` 2015-07-08 09:13:35 -04:00
config-generator.conf Move heat_keystoneclient to clients package 2016-06-01 16:27:01 +05:30
install.sh install.sh: stop using deprecated option group for rabbit 2015-09-01 19:01:34 +02:00
openstack-common.conf Switch to oslo.service 2015-06-23 08:30:39 +02:00
pylintrc Directives to not use variable names that conflict with pdb 2012-03-20 07:16:16 -04:00
requirements.txt Updated from global requirements 2016-09-09 16:04:07 +00:00
setup.cfg Add cinder qos specs constraint 2016-08-31 01:03:11 +08:00
setup.py Updated from global requirements 2015-09-22 10:40:48 +00:00
test-requirements.txt Updated from global requirements 2016-08-31 18:24:23 +00:00
tox.ini Run heat_integrationtests as a tempest plugin 2016-08-13 09:53:07 +12:00
uninstall.sh use stderr for error echo message 2016-01-17 05:20:40 +00:00

README.rst

Heat

Heat is a service to orchestrate multiple composite cloud applications using templates, through both an OpenStack-native REST API and a CloudFormation-compatible Query API.

Why heat? It makes the clouds rise and keeps them there.

Getting Started

If you'd like to run from the master branch, you can clone the git repo:

git clone https://git.openstack.org/openstack/heat

Python client

https://git.openstack.org/cgit/openstack/python-heatclient

References

We have integration with