Previously when calling function.validate() we passed the path to the
function in the template (used for debugging purposes) as a string. This
change allows us to pass it as a list of path components, as we do
elsewhere, so that higher-level code that catches StackValidationFailed
can deal with its components separately.
Change-Id: I017aa6f7511b8478ef8273522ab8087684ae71c6
This is to enable preview of the merged environment
without merging the environment on the client side.
Related-Bug: #1635409
Change-Id: I7ec3af729a65164230153021f438bf226cc5e858
In some scenarios, it is required to categorize the parameter.
Associating tags with the parameter, it is will be easy to
categorize the parameter and add simple validations to users.
This patch introduces a new attribute 'tags' with the parameters,
which is a list of strings.
Change-Id: I20fc95d606b0b8a08d3b46bf33f4860bff49c74f
We return back the sensitive information to user
when some exceptions happened, for example,
when DBError happened, we return the whole sql
statement to user, it's not safe.
This patch changes to return the message if the
exception is the HeatException, otherwise the message
won't be revealed to user.
Change-Id: I6e01b1003a39106274e79c3b413917a30b5651b6
Closes-Bug: #1708122
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
Only add the token_info to the keystone headers if it is set.
This resolves an issue which breaks the catalog for some previous
deployments using noauth middleware (the old TripleO undercloud
deploy architecture).
Change-Id: I74d0f71149014418db3af226b419eb7a9cb5bb1e
Closes-bug: #1730280
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
Adding a if condition to format_validate_parameter function, is
failing the pep validation, because of complexity is going beyond
the 20 limit. Separating the constraints from the base makes it,
simpler.
Change-Id: Iaa4cdfceea67a17af1e17512cc28eb54dd52907d
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
We seem to be adding an implicit interface/port for the server
irrespective of the fact that there are existing non-updated
interfaces already there.
Change-Id: Ifce2301c4d47c8462f2280955c665bdad72dd417
Closes-Bug: #1724843
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 640abe0c12 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
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