OpenStack Orchestration (Heat)
Go to file
Zane Bitter 93b4551d9a Fix non-destructive upgrade for deprecated res types in convergence
When a user updates from a deprecated resource type to an
equivalent-but-differently-named one (e.g. from
OS::Heat::SoftwareDeployments to OS::Heat::SoftwareDeploymentGroup), Heat
is supposed to change the type without replacing the resource as it would
normally do when a resource type changes. This was broken in convergence,
because since 4507322675 the new Resource
object we create during the check_resource operation (using the new type's
plugin) is no longer automatically initialised with data from the database
as resources in the legacy path are.

Move the substitution checking to the Resource.load() method, so that it
now returns an instance of the new plugin where allowed. In the actual
update_convergence() method then we need only check that the resource class
is the one we'd expect from the new template, and replace the resource if
not.

We do have a test that is designed to check that this is working, but in it
we didn't compare the physical IDs of the resource that is potentially
getting replaced, but rather the physical IDs of some other resource that
can't possibly get modified (surprise! it doesn't change).

Change-Id: I75778abc303525a71d0a918f7192f00a43c21284
Closes-Bug: #1729439
2017-11-01 18:03:20 -04:00
api-ref/source Add converge flag in stack update for observing on reality 2017-08-07 05:39:29 +00:00
bin Replace SCREEN_LOGDIR with LOGDIR 2017-09-25 16:04:02 +08:00
contrib Remove usage of parameter enforce_type 2017-05-08 17:55:32 +08:00
devstack Don't remove uwsgi config files on stop 2017-09-02 19:00:25 -04:00
doc Correct example for list_concat-unique function 2017-10-12 18:56:27 +08:00
etc/heat Mark the default policy usage for neutron resource 2017-05-18 09:18:54 +08:00
heat Fix non-destructive upgrade for deprecated res types in convergence 2017-11-01 18:03:20 -04:00
heat_integrationtests Fix non-destructive upgrade for deprecated res types in convergence 2017-11-01 18:03:20 -04:00
heat_upgradetests In-tree grenade support for Heat 2015-07-02 17:23:22 +05:30
rally-scenarios Update rally link 2017-03-24 11:58:38 +08:00
releasenotes Imported Translations from Zanata 2017-10-29 06:23:42 +00:00
tools Remove subunit-trace fork 2017-04-06 11:42:05 -07:00
.coveragerc Update .coveragerc after the removal of openstack directory 2016-11-12 09:21:05 +05:30
.gitignore Add .idea pattern to .gitignore 2017-04-03 09:32:25 +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 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 URL in README.rst 2017-08-08 12:34:20 +05:30
babel.cfg Add setup.py and friends 2012-03-14 09:25:54 +11:00
config-generator.conf fix heat_keystoneclient config gen 2017-08-18 09:00:02 -04:00
install.sh install.sh: stop using deprecated option group for rabbit 2015-09-01 19:01:34 +02:00
requirements.txt Updated from global requirements 2017-10-12 21:53:25 +00:00
setup.cfg Add default configuration files to data_files 2017-09-21 15:19:25 +01:00
setup.py Updated from global requirements 2017-03-02 17:42:22 +00:00
test-requirements.txt Updated from global requirements 2017-09-16 23:12:02 +00:00
tox.ini Remove install-guide env which is no longer effective 2017-07-31 17:01:11 +08: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