We already have REST api support for cancelling a
UPDATE_IN_PROGRESS stack with rollback. This adds a
new action 'cancel_without_rollback' to allow for
canceling a create/update in_progress stack without
rollback.
APIImpact
Change-Id: I6c6ffa0502ab8745cfb2f9c5ef263f1e02dfc4ca
Closes-Bug: #1709041
In change I84d2b34d65b3ce7d8d858de106dac531aff509b7, we changed to
call self._converge_create_or_update() in a sub-thread. However,
thread_group_mgr is not set for cancel_update (with rollback),
which in turn calls converge_stack.
This also enables test_cancel_update_server_with_port, as
bug #1607714 seems to be fixed now.
Change-Id: Ie674fd556418f6aa8e79654458cbe43648851db2
Closes-Bug: #1713952
If we force-cancel a resource check operation (i.e. by killing the thread)
then there was a short window where another traversal could have started
and been waiting on the not-yet-cancelled resource. That traversal would
then hang forever, as there was nothing to retrigger it. This change
ensures we retrigger the latest traversal on the resource after
cancellation.
Change-Id: Iae27c9cc5c0895b52aef2f2c72686dc48ec5983c
Closes-Bug: #1727007
Use a single transaction to create the replacement resource and set it as
the replaced_by link in the old resource. Also, ensure that no other
traversal has taken a lock on the old resource before we modify it.
If we end up bailing out and not creating a replacement or sending an RPC
message to check it, make sure we retrigger any new traversal.
Change-Id: I23db4f06a4060f3d26a78f7b26700de426f355e3
Closes-Bug: #1727128
The docs.openstack.org site was rearranged so that the old docs at
/developer/heat/ are now at /heat/latest/. The base .htaccess file in
openstack-manuals redirects everything in the old hierarchy to the root
of the new one unless there is a .htaccess file present (see
I0af0e32d9c646d61f4c72599cdc4613299aa5ec9).
Add a .htaccess file so that old links redirect to the equivalent page
in the new location.
Change-Id: I74de09f4e25c2eda050053d3b8646586c9f24c04
Closes-Bug: #1722820
It seems ceilometer api has been removed[1].
As part od zuulv3 transition we are moving jobs to project repo[2]
and change to enable gnocchi devstack plugin at the gate has to wait
till the movement is complete.
We probably have no other option but to disable the test for the
time being.
[1] https://review.openstack.org/#/c/512286/
[2] https://review.openstack.org/#/c/509098/
Change-Id: I547b26ea78ad70742ae6fcf9a0eae4cd4af60100
Related-Bug: #1727637
Add the ability to consume FakeKeystoneClient class as a client
module. This avoids extra dependencies on the Python mox/mox3
libraries at runtime and allows the end user to wire in the
custom class by simply making the following config setting:
keystone_backend = heat.engine.clients.os.keystone.fake_keystoneclient.FakeKeystoneClient
This use case for this is the TripleO undercloud installer which
uses a heat-all process to transform heat templates into Ansible
playbooks. Previously we leveraged a "fake_keystone" service
as multiple applications and binaries required keystone dependencies.
(Both Heat, os-collect-config, and some openstackclients wanted
a fully version of keystone running)
Now that we've streamlined these dependencies allowing heat to use
a fake KeystoneClient library shim instead of the full fake_keystone
process is much lighter and avoids the security concerns of the extra
socket. This patch allows us to do all of this without installing extra
test time dependencies on mox/mox3.
Change-Id: I03f1789957ba157871fd13164592116d7fcdabe4
Closes-bug: #1723639
Migrate to the new, modern, fixtures-based test framework in oslo_db. This
eliminates about 35 deprecation messages when running the unit tests.
Change-Id: I502c8f9e0718558ae93ff5a568c1ef9ee17ca7f7
Several tests started an RPC server (sometimes unnecessarily) and left it
running after the test had concluded. This resulted in messy logs
("Exception in thread Thread-1 (most likely raised during interpreter
shutdown)" and so on) in the console when the test worker exited. Avoid
these by either not starting the RPC server or ensuring it is stopped
before the end of the test.
Change-Id: I8a506c6b83801cc90ad2268875f848b6d73fdea6
A number of tests used to leave greenthreads that they had spawned running
beyond the end of the test. This fixes those tests to not start unnecessary
threads and/or to wait for all threads to complete before they finish.
Change-Id: Ic0465dc25235ea3b6ec56646df1cb57878faf748
If we attempt to do a convergence update on a resource and find it already
locked by another traversal, don't try to update the resource's current
template ID or requirements data. Doing so will usually fail with the same
exception, but it is unnecessary and leaves ERROR-level messages in the
log. However, there is a race which could result in the call succeeding
(i.e. if the other task releases the lock just after we fail to get it),
and that could result in the resource not being updated at all.
Change-Id: I6bde1f9359cd52c99cca092e8abc660bac8b3065
Closes-Bug: #1722371
If a resource times out, we still need to check whether there is a new
traversal underway that we need to retrigger, otherwise the new traversal
will never complete.
Change-Id: I4ac7ac88797b7fb14046b5668649b2277ee55517
Closes-Bug: #1721654
The python standard library in Python 3.6.3 and earlier has a bug with
handling unhashable exceptions: https://bugs.python.org/issue28603
Although oslo_log will catch the error, make scheduler.Timeout hashable so
that all exceptions will be printable.
Prior to 640abe0c12e63c207fcf67592838f112a29f5b43 we just used __cmp__(),
but that isn't used in Python 3. Defining __eq__(), which is required for
the total_ordering decorator, makes the class unhashable in Python 3.
Change-Id: Idde65b2d41490ab8318b5a8b95ea74e9b96b4e5c
Related-Bug: #1724366
Related-Bug: #1721654
Convergence allows us to start a stack update while a previous update (or
create) is still in progress. If a resource is found to be locked by a
previous graph traversal when the new traversal comes to update it, the
earlier traversal is responsible for retriggering the resource after it
completes.
This patch adds functional tests to confirm that this works when the
long-running resource update ends in success or failure (as opposed to
timing out or being cancelled).
Change-Id: I5cb0cfd6bb05a94cd32709b5cda8454df6e81a61
This adds the ability to return a catalog in the noauth middleware
response.
Change-Id: I5413ae4eadd5affdd1ae01678b61eafbe50b7919
Related-Bug: #1724263
We deprecated the resources OS::Designate::Record and
OS::Designate::Domain in ocata, so hidden them now.
Change-Id: I8f0529602f8d2ca50508c4f5ec00d255d078b8a9
Make sure to delete the ResourcePropertiesData row
if the resource 'attr_data_id' has been set already.
Change-Id: I2df5dfc72d051b6619c769c1260ff24b016bc294
Closes-Bug: #1708378
Raise NotFound() exception with proper message when fetching
atrribitutes for a member, that is not in the nested stack.
Change-Id: I8969893781439ef5e87ea9f815d7f22e23be3e78
Closes-Bug: #1723315