Update the jobs that were explicitly using python 3.5 and have them
just use python 3 without specifying a minor version.
Change-Id: I38734f2956a30c01ff51e2d74a9c248e4304d08b
We are updating all Python projects to publish artifacts to PyPI. The
name "heat" is already taken there by another project, and they have
rejected our request to claim the name. We therefore need to change the
dist name used to package heat. We have some other projects publishing
using an "openstack-" prefix, so I propose using the name
"openstack-heat". This will not change the imports or anything else
about how the code works, just how it is packaged.
Add a grenade plugin for upgrading between the packages with different
names so that we can clean up the old version of the code and avoid
discovering the heat plugins multiple times in different locations.
Change-Id: I59b55cffd9e648f842eb286b936f09c5b55a76db
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
This adds basic framework for heat-status upgrade
check commands. For now it has only "check_placeholder"
check implemented.
Real checks can be added to this tool in the future.
Change-Id: I83629184b49a6cf91928df702db23156433d99f6
Story: 2003657
Task: 26131
We have the OutputDefinition API now, and no longer need to treat
templates like CFN JSON blobs to obtain information about outputs.
Change-Id: I8dfea1e9855a56fb85d2e3af40996d5f337d7859
In a number of places we parse templates passing None as the stack
definition, in order to be able to extract information from the template
in cases where we don't actually need to resolve functions.
However, the GetParam and GetFile HOT functions require an actual stack
definition to be passed in order to initialise them. So far we haven't
encountered any cases where those functions appear where we pass None
for the stack definition. Ensure that all Functions can always be
created even with no stack definition.
Note that the cfn ParamRef class is not affected, as the Ref function
always selects the GetResource implementation when the stack definition
is None.
Change-Id: Ic947dcdc17e9dbc58459a92ba970c292d70578cd
When migrating stacks to convergence, if there are resources in
the database that are not in the current_template_id of the stack,
they are possibly of no isue, so it would better to delete those
resources from db to avoid any future update issues.
Change-Id: Ica99cec6765d22d7ee2262e2d402b2e98cb5bd5e
Story: #2004071
Task: 27092
Use '!=' instead of 'is not' to compare strings.
In practice, short strings that appear in the source code are interned
in CPython, but this is implementation-specific.
Change-Id: If3f305c2d647fcd7515cb0a326a30f4eda93acd3
With moving away from required milestone releases, the version numbers
calculated by PBR on the master branch will not work for those testing
upgrades from the last stable release. More details can be found in the
mailing list post here:
http://lists.openstack.org/pipermail/openstack-dev/2018-October/135706.html
This is an empty commit that will cause PBR to increment its calculated
version to get around this.
PBR will see the following which will cause it to increment the version:
Sem-Ver: feature
Please merge this patch as soon as possible to support those testing
upgrades.
Change-Id: Ifbba36f4974efcf891c7f5938acfeef75bb05dd2
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
Quotes around {posargs} cause the entire string to be combined into one
arg that gets passed to stestr. This prevents passing multiple args
(e.g. '--concurrency=16 some-regex')
Change-Id: Iccbd680731592abab4980a51aa97c60d6ef95005
inspect.getargspec() is deprecated in Python 3, but there is no equivalent
of inspect.signature() in Python 2.
Change-Id: I4793ac625c1b87e783718bfabe661ccc2ad5dcfd
We use the notify.signal() call to notify the main thread that the stack
status has moved to IN_PROGRESS so that it can wait before returning
control to the user. Therefore it is expected that if an operation
eventually fails (or succeeds), signal() will have been called a long
time previously. The only reason it is there is to guard against
failures before the resource attains the IN_PROGRESS state, where the
persistence of the state has been deferred to coincide with the lock
release.
Story #2003988
Task: 26931
Change-Id: Ie0519ee78607f71855c2c0ace2cb4ff52c5809b6
This adds a limit to the number of resources that ResourceChain creates
in parallel. It reduces memory usage drastically when ResourceChain
contains lots of resources. We use the number of active services, which
seems to give a reasonable balance between performance and memory
consumption.
Story: #2003975
Task: #26917
Change-Id: Id20fb89813b32927298b3a7c0abe23da710b04d1
It's possible that a volume can end up in `reserved` state
when volume attachment fails. We should wait for it to be
available when detaching.
Change-Id: Ieb1d12ea9d7c8c76c448387fadfb2e4dbf4cbb2e
Story: #2003789
Task: 26497
In 866864f7e5 we changed to use
noop drivers, we don't seem to set them correctly.
Depends-On: https://review.openstack.org/605000
Change-Id: I7ba69fc047334c9c3d2fffe41e586650f9fb372b
In order to get openstack/placement installed as part of the
heat grenade jobs, we have to list it as a required project.
Needed by https://review.openstack.org/604454/
Change-Id: I58fae5f56fdbcb4fc084689bde95f1a2c4bfad0f
We always check that a properties schema is valid at the time that it is
created. Do the same for the attributes schema. This will catch programming
errors in the writing of Resource plugins.
Change-Id: I8119aec30b83f1f9e711013a60a828ae4a8337c7
Story: #2003915
It's possible that the volume is already attached to another
server, which can happen by marking a VolumeAttachment resource
unhealthy after removing the volume from the server.
Change-Id: Ia77e0462bf732224b491591d22584cbcfa779956
Story: #2003850
Task: 26643
When a heat-engine thread activity completes, it calls release on
its stack_lock object in the database. If that release action fails
due to an inability to update the database, that engine process is no
longer usable. This code catches that failure, logs it, and terminates
that engine process so that a new one can be started. New heat engines
will automatically purge stale stack_locks from the database.
Also, make sure that if the thread exit does not teardown the process
after 5 seconds, the non blockable os level exit call will be invoked.
This bug is very timing specific. The DB error needs to exist when the
stack_lock release fails
Change-Id: I7663b2270bf325cd8e3dd194f2994227fd6f5e8a
Story: 2003439
Task: 24635
keystone endpoint region can be different from other services.
Let's use the one from keystone middleware authtoken config,
if available, when creating keystone client.
Change-Id: I190abd946db1cf8712ef669cf72a1134dfcf9376
Story: #2003806
Task: 26549
Continue to test Heat's interaction with the Octavia API without relying on
Octavia's interaction with Nova, Neutron &c. which is known to be unstable.
Change-Id: I8765aceee09ada3086abc704b7f73ce240e21847