OpenDev infra only keep around the latest two Fedora releases in their
mirrors. Probe for the image from the local test mirror, but if not
found, fallback to upstream. This will be much less reliable, but can
avoid gate breakage until new images can be used.
Also, use endpoint_type when creating keystoneclient
Keystone admin endpoint has been removed from devstack with[1].
This would use the public endpoint by default.
Change-Id: I96ab14871ee8c5d5b83cc0cd4abc840ef0218ca8
The timeout calculation of nested resource groups are using seconds but
then it passing the value in seconds to the stack resource that is
expected it in minutes. This leads to a rapidly increasing timeout value
in each nesting levels.
This patch converts the seconds to minutes before passing it forward.
Story: 2009237
Task: 43372
Change-Id: I3f132d4889723f7b4a3a416779ac5ee7663249b8
Add a functional test that reproduces the bug that nested resource group
timeout value is increasing rapidly with every nesting level.
Story: 2009237
Task: 43373
Change-Id: I8e85434a5fb9cc6d0ef3240c8ae6085f5124174b
Block Storage API v2 was deprecated during Pike cycle and is being
removed during Xena cycle, and current v3 API should be used instead.
Unused volume_client and network_client in integration test code are
also removed by this change.
Note:
granade tests is made non-voting temporally until the same issue is
fixed in stable/wallaby.
Depends-on: https://review.opendev.org/802150/
Change-Id: I6a2b5afa13480791971bbd8bba1f43b9f2db8294
Gate job is extremely unstable because [1]
This patch propose to add explict dependency before we fix the issue.
Story: 2008936
Task: 42544
[1] https://storyboard.openstack.org/#!/story/2008936
Change-Id: I97e05c3d912030dbf77218b114e9e16fb25dca97
Fedora 31 was retired and the image is gone from mirrors.
heat-cfntools have been dropped from fedora images, disable
the test till that's resolved.
Also makes grenade job non-voting, till this is backported
to stable/victoria.
Change-Id: Id869f83a46454897c2fe7a532eebfa2863befe5e
pattern.
Heat uses domain in user{domain} pattern to
find the user in the corresponding domain.
Change-Id: Ic01877e2524e094b087fcbddac7504356e395031
Story:2007867
Task:40234
Six is in use to help us to keep support for python 2.7.
Since the ussuri cycle we decide to remove the python 2.7
support so we can go ahead and also remove six usage from
the python code.
Review process and help
-----------------------
Removing six introduce a lot of changes and an huge amount of modified files
To simplify reviews we decided to split changes into several patches to avoid
painful reviews and avoid mistakes.
To review this patch you can use the six documentation [1] to obtain help and
understand choices.
Additional informations
-----------------------
Changes related to 'six.b(data)' [2]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
six.b [2] encode the given datas in latin-1 in python3 so I did the same
things in this patch.
Latin-1 is equal to iso-8859-1 [3].
This encoding is the default encoding [4] of certain descriptive HTTP
headers.
I suggest to keep latin-1 for the moment and to move to another encoding
in a follow-up patch if needed to move to most powerful encoding (utf8).
HTML4 support utf8 charset and utf8 is the default charset for HTML5 [5].
Note that this commit message is autogenerated and not necesserly contains
changes related to 'six.b'
[1] https://six.readthedocs.io/
[2] https://six.readthedocs.io/#six.b
[3] https://docs.python.org/3/library/codecs.html#standard-encodings
[4] https://www.w3schools.com/charsets/ref_html_8859.asp
[5] https://www.w3schools.com/html/html_charset.asp
Patch 28 of a serie of 28 patches
six fully removed now!
Thank you six for the rendered services!
Change-Id: If44ee4b565cc9390fa0422fba4dda080b4f90b98
we no longer keep configuration for in-repo integration tests in the
repo, relying on heat-tempest-plugin instead.
As a result, currently the `tox -egenconfig` is broken as it tries to
generate config sample calling non-existing config.py module.
Change-Id: I48685d7c791d98db83a7cbcf4ef926ee25ca62a4
Fedora-Cloud-Base-29-1.2.x86_64 is removed from openstack local mirror.
Update to use Fedora-Cloud-Base-30-1.2.x86_64 for test jobs.
Change-Id: Id3026a115e3a044b3dc00030fd6d82549dc189b6
Something are introduced in this patch:
* As devstack-gate/devstack-vm-gate-wrap.sh is not really zuul v3
native, we move all configs in to `devstack/lib/heat` and .zuul.yaml.
* Remove extra configs process in devstack. Like setup tempest(which
is well covered by tempest itself.) or overlapping heat test configs setup.
Use tempest config for all heat_integration tests. Also remove
heat_integrationtests/common/configs since they're no longer required.
* copy post.yaml for grenade jobs. As we migrate to zuul v3 for
functional tests but not grenade (not yet), the post.yaml should exists
under grenade dir. since it's only required by grenade jobs.
* Use post.yaml in functional tests for cleanup test environments.
Story: #2007056
Task: #37908
Depends-On: https://review.opendev.org/701105
Change-Id: I4f531161a7222e2c2a21f8d483f9c2a1d91dc38d
Check task_state before verify resize or before detachment.
We need to make sure the task_state moved out from resize_finish before
we trigger some action like attach/detach volume.
So when we update flvor and volume at the samethime, the resize action
will not affect volume attachment/detachment.
Depends-On: https://review.opendev.org/#/c/700512/
Change-Id: I64033d5a0a8fea5c4fd93b1deb111d3d8fba0cf7
Story: #2007042
Task: #37854
Task: #37855
Task: #37869
Now that we guarantee that resources are UPDATE_IN_PROGRESS before the
stack update call returns for legacy stacks (this was already true for
convergence stacks), there is no need to have special handling to check the
updated_time either in StackResources or in functional tests.
Change-Id: I5bf7ed6cb9ba6c77a77dd36eb173e1927065c53e
Story: #1669608
Task: 23176
If the parent resource of a nested stack is locked due to an IN_PROGRESS
update, cancel the nested stack update (which will result in the parent
resource being marked FAILED and releasing the lock so that the new
traversal can begin acting on it). This also cancels all descendants of
the nested stack.
This means that a concurrent update no longer gets blocked at a nested
stack boundary until the previous update has finished.
Change-Id: I5f14453ebab75d89672c6eea12de46d48a5147f3
Task: 17760
The purpose of this test is to ensure we can rollback an in-progress
Server resource with attached ports. However, by cancelling immediately
we create a race whereby the stack may be rolled back before we have
even started updating the stack, in which case we are not testing the
behaviour we actually care about. Inserting a delay gives Heat enough
time to process the Port and start updating the Server before we cancel
the update.
In some circumstances this could also trigger a race within Heat,
whereby the rollback traversal would not block, but the update traversal
would retrigger it anyway. This resulted in the stack rollback being
marked COMPLETE multiple times, which could also lead to errors in
deleting the old raw_template after it had already been removed. The
latter have been fixed by separate patches. The race itself should be
addressed separately.
Change-Id: I3f9db686c31659437ff4797555e6608986946572
Task: 37199
Add doc for multi-clouds support in template guide.
Also remove redundant credential information in multi-clouds
integration test.
Change-Id: I76c6427b7bbdac2af3b7f01aff1b0541e56b3653
Story: #2002126
Task: #19808
In convergence we were loading resources from the database using the
current environment. This is incorrect when a previous update has
failed, meaning the resources in the database were created with a
non-current template and environment. If an attempt was made to change
the type of a resource but that resource was never updated, this will
result in us loading a resource with the wrong type. If the type has
been removed then it can result in errors just trying to show the stack.
Note that the Resource.load() method used during a convergence traversal
already does the Right Thing - it only uses the new type if it is a
valid substitution for the old type, and UpdateReplace is later raised
in Resource.update_convergence() if the type does not match in that
specified in the new environment. So we don't see any problems with
stack updates, just with API calls.
Since we cannot change the signature of Resource.__new__() without also
modifying the signature of __init__() in every resource plugin that has
implemented it (many of which are out of tree), instead substitute the
stack definition for the duration of creating the Resource object. This
will result in stack.env returning the environment the resource was last
updated with.
Change-Id: I3fbd14324fc4681b26747ee7505000b8fc9439f1
Story: #2005090
Task: 29688
Allow OS::Heat::Stack to access remote stack from another OpenStack
provider. Also enable functional tests for multi-cloud.
Implement multi-cloud support as an extension to the existing multi-region
support. Allow operate a remote stack (from another OpenStack cloud) as a
resource in stack from local OpenStack cloud.
I propose we add multi cloud support into ``OS::Heat::Stack`` and change the
property schema for ``context``. Within context, we should adding
following properties:
* credential_secret_id: ID of Barbican Secret. Which stores authN
information for remote cloud.
Service will use auth information from Barbican Secret to access
Orchestration service in another OpenStack.
Must make sure you're able toget that secret from Barbican service when
provide `credential_secret_id` property.
Story: #2002126
Task: #26907
Depends-On: https://review.openstack.org/579750
Change-Id: I2f3de3e7c29cf7debb1474228c8a9a81725a72ed
We cannot run this test in the gate because the volume backup feature is
enabled. However, with a change to the Heat tempest plugin to allow this
feature to be automatically skipped based on the tempest config, we no
longer need this test to be explicitly included in the skip list.
Change-Id: Iaefa5c272c4322498330307ea9bd6843d276ef1b
Depends-On: https://review.openstack.org/632989
Nova has added a default policy
os_compute_api:servers:create:zero_disk_flavor to admin-only,
that will prevent non-admins from creating image-backed servers
with a flavor that has disk=0 which is potential a security
exposure.
Add appropriate disk size to flavors we use in tests.
Change-Id: I9c0af0b40fc5b5c33de7f0c690d156ed2bac2f15
Rank all existing versions of a resource in a convergence stack to improve
the likelihood that we find the best one to update.
This allows us to roll back to the original version of a resource (or
even attempt an in-place update of it) when replacing it has failed.
Previously this only worked during automatic rollback; on subsequent
updates we would always work on the failed replacement (which inevitably
meant attempting another replacement in almost all cases).
Change-Id: Ia231fae85d1ddb9fc7b7de4e82cec0c0e0fd06b7
Story: #2003579
Task: 24881
Devstack bumped[1] the cirros image version. Changes
to source the old openrc file for grenade before configuring
tempest.
[1] https://review.openstack.org/#/c/624716/
Change-Id: I9481bbcb03609db6d2224998a4f83d3a8790e96c
The patch 85eff5fc3d03dce7d0d17d965f27246bd3306c53 had to be reverted
because it broke nested stacks in TripleO. To ensure that doesn't happen
again, add some functional tests for conditional outputs in a nested
stack.
Change-Id: I0f7a42c6d1754e340fb519bd228feaa625000ffc
Related-Bug: #1805589
in-place update of failed stacks with old resource references
deleted in last update.
Change-Id: I45fbca77c84744e1778c6f2494674233b9193921
Story: #2003612
Task: 25740
In the legacy path we reparse a resource definition to refer to a different
StackDefinition when copying a resource definition into the existing
template (as the resource is updated) or into the backup stack's template.
However, the resources 'condition' may reference conditionals that are not
defined in the template it is being copied into (e.g. during a stack update
that creates a new condition), and in this case the destination template
will become unusable.
Since the fact that we care about the resource definition at all indicates
that the condition was enabled, just ignore the condition after reparsing.
This is consistent with what we do for 'if' macros, which is to resolve the
condition part during reparsing.
Change-Id: I59a374435f6275badc8124efbd7b7db2e36e2de5
Story: #2003558
Task: 24847