OpenStack Orchestration (Heat)
Go to file
Zane Bitter 8819c6380f Resolve race in providing deployment data to Swift
While we are careful to ensure there are no race conditions in updating
the software deployment metadata in the Heat database, there was no such
protection in place for the actual update of the metadata provided to
the server via Swift. In legacy Heat, this race could only occur when
software deployments were created from the REST API or from separate
stacks deploying software to the same server, because resources in the
same stack were handled by a single thread making synchronous calls to
create the software deployments. However, with convergence, resources in
the same stack not only can be processed concurrently but will tend to
be synchronised if they have the same dependencies (since they'll be
triggered by consecutive asynchronous RPC messages).

This handles the race by retrying if a concurrent update is detected by
the time the data has been provided to Swift.

Note that this is only guaranteed to result in the latest data being
available on the assumption that a later write to Swift cannot overwrite
an earlier one that has been accepted. This is probably *not* guaranteed
by Swift in the presence of clock skew. Nonetheless, this should
drastically reduce the failure rate.

Similar caveats would probably apply to Zaqar, although Zaqar nominally
provides FIFO queues (in practice, it likely depends on the backend
used). However, with Zaqar clients receive all updates, not just the
latest one, and os-collect-config stores the deployments contained in
every message. Thus, Zaqar is not affected even assuming out-of-order
arrival.

Change-Id: Ic9a447f27e8c51f91f47f93b0fd1e9710341ec38
Closes-Bug: #1731032
(cherry picked from commit 46132999c0)
2018-03-29 16:41:43 +02:00
api-ref/source Return Environment from validate_template 2017-11-14 17:35:52 +00:00
bin Remove CloudWatch API 2018-01-28 09:11:17 +05:30
contrib Remove usage of parameter enforce_type 2017-05-08 17:55:32 +08:00
devstack Update .stestr.conf with the group_regex 2018-02-22 16:22:28 +00:00
doc Fix hot_spec.rst in Template Guide 2018-02-07 08:09:42 +01:00
etc/heat Remove CloudWatch API 2018-01-28 09:11:17 +05:30
heat Resolve race in providing deployment data to Swift 2018-03-29 16:41:43 +02:00
heat_integrationtests Imported Translations from Zanata 2018-02-19 06:49:11 +00:00
heat_upgradetests In-tree grenade support for Heat 2015-07-02 17:23:22 +05:30
playbooks/devstack Enable octavia services for gate testing 2017-12-28 16:00:31 +05:30
rally-scenarios Update rally link 2017-03-24 11:58:38 +08:00
releasenotes Imported Translations from Zanata 2018-02-19 06:49:11 +00:00
tools Use correct raw string format 2017-11-16 18:23:58 -05:00
.coveragerc Update .coveragerc after the removal of openstack directory 2016-11-12 09:21:05 +05:30
.gitignore Allow run tests for both tempest plugin and regression tests 2018-01-19 13:26:25 -05:00
.gitreview Update .gitreview for stable/queens 2018-02-10 05:45:09 +00:00
.stestr.conf Use stestr for unit tests 2017-12-15 12:39:37 +05:30
.zuul.yaml Merge "Add scenario002 tripleo jobs to experimental pipeline" 2018-02-07 05:57:19 +00:00
CONTRIBUTING.rst Workflow documentation is now in infra-manual 2014-12-05 03:30:36 +00:00
HACKING.rst Prepare for using standard python tests 2017-02-04 09:49:18 +01:00
LICENSE Initial commit (basics copied from glance) 2012-03-13 21:48:07 +11:00
README.rst Update openstacksdk construction 2018-02-02 18:24:37 -06:00
babel.cfg Add setup.py and friends 2012-03-14 09:25:54 +11:00
config-generator.conf Remove SSLMiddleware from oslo.config namespace 2017-11-27 13:05:00 +05:30
install.sh Remove use of heat_watch_server_url 2018-01-28 09:11:18 +05:30
requirements.txt Merge "Update openstacksdk construction" 2018-02-07 22:58:41 +00:00
setup.cfg Merge "Remove CloudWatch API" 2018-01-31 19:29:03 +00:00
setup.py Updated from global requirements 2017-03-02 17:42:22 +00:00
test-requirements.txt Updated from global requirements 2018-01-27 17:37:51 +00:00
tox.ini Update UPPER_CONSTRAINTS_FILE for stable/queens 2018-02-10 05:45:13 +00:00
uninstall.sh use stderr for error echo message 2016-01-17 05:20:40 +00:00

README.rst

Team and repository tags

image

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