We've some issues with tempest and devstack py2 support
which is blocking train backports. Let's set them to
non-voting untill the issues are fixed. Also removes
not used amqp1 job definition.
Change-Id: Ibc87f20a86aa706663ec117c5619aa00d9644a7a
this is much more suited for resolving contention when
accessing a (lockable) shared resource.
Change-Id: I93abdbf8a9532af1aec7ad15a6f384beb9fc3ff9
(cherry picked from commit 56f6e583d1)
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.
Fix contradicting lower constraints to make lower-constraints job pass.
Change-Id: Id869f83a46454897c2fe7a532eebfa2863befe5e
(cherry picked from commit 61e53c4eca)
(cherry picked from commit 779b39c975)
Don't override ResourceStatus.ACTIONS, as it's used internally by the
Resource class.
Change-Id: Icf306e981c19e3d5410905befa7907dcdba33337
Story: 2008013
Task: 40663
(cherry picked from commit c362c57854)
(cherry picked from commit 18f2ed6b0c)
Supports the 'virtio-forwarder' vnic type for port sync with Neutron.
The 'virtio-forwarder' is an indirect mode for SR-IOV interfaces used to
connect the instances into the Neutron networks. It has been supported
since the Queens release:
I28315fb12f62dc7d52d099c211086b2b81eca39a
Note that 'virtio-forwarder' is already supported by Horizon:
openstack_dashboard/api/neutron.py:
('virtio-forwarder', _('Virtio Forwarder'))
Nova:
nova/network/model.py:
VNIC_TYPE_VIRTIO_FORWARDER = 'virtio-forwarder'
openstackclient:
openstackclient/network/v2/port.py:
choices=(...), virtio-forwarder
neutron-lib:
neutron_lib/api/definitions/portbindings.py
VNIC_VIRTIO_FORWARDER = 'virtio-forwarder'
Task: 40435
Change-Id: Ie65f8858d6d1a1854702eb33c40ea827505bfe51
(cherry picked from commit 03ab18d459)
Aso configures swap as before
https://review.opendev.org/750941 changed the default
swap to 1024MB for jobs and this seems to resulting in
high failure rate of the functional and grenade jobs.
Let's configure it back to what used to before i.e 8192MB.
Change-Id: Ia45e957bb24f5596a5ef16271f71ba8b77df9e42
(cherry picked from commit f18a676792
and cherry picked from commit f419923a0d)
Parsing the value of JSON parameters at the time we create them (or
update the default value) results in exceptions occurring while creating
the Stack object, that are then not caught and transformed. The result
is an HTTP 500 Internal Error reported by the API, with an unhelpful
error message.
By not parsing the JSON until it is needed, we ensure that any errors
will occur during validation, where errors are appropriately transformed
(to StackValidationFailed) and annotated with the necessary information
to help the user determine the source.
Change-Id: I70e341c344d6254173ad4519276626230087263a
Story: 2007957
Task: 40443
(cherry picked from commit b603470a12)
(cherry picked from commit 4aafceb379)
The method Resource.check() is not a generator function, but it does
return a generator in most cases. Simply calling the function does not
cause the resource to actually be checked. Only in the case where the
resource did not provide a handle_check() method would it do anything at
all - and in that case it simply changes the state to CHECK_COMPLETE.
Yield the generator function so that the resource will actually be
checked if the resource type supports it.
Change-Id: I2a78b6f6235529a95838307e3d38731d31ff5c4b
Task: 37828
(cherry picked from commit 5c6038f7a2)
If stacks are already migrated to convergence, there is no point
in checking stack status before returning. This will allow re-run
of the command inspite of migrated stacks in FAILED state.
Change-Id: Ia0e34423377843adee8efc7f23d2c2df5dac8e20
Task: 40266
(cherry picked from commit 8d5d2a8fb6)
(cherry picked from commit 1f66e61ca5)
When detaching and attaching volumes nova would raise an
exception.Conflict, if attach and detach can't happen. Let's
use that to retry rather than using task_state.
Change-Id: I50904e4254568cd807b9ff18eef482cadb626ce5
Task: 40169
(cherry picked from commit 01c230e793)
Don't use timestamp when generating ec2 signed url for alarm url
attributes of resource.
This will resolve the issue for new resources even if they are cached
in attributes or resource_data.
However, for existing stacks containing these resources the current
best option is to not cache these attributes and allow alarm resources
to be able to get a new never expiring urls in the next forced update.
Change-Id: If2ebc3deacb770294004ae023500367af603b59e
Task: 39985
Related-Bug: #1872737
(cherry picked from commit d0e44ded0a)
As part of a CVE keystone has started checking[1] the timestamp
of signed ec2 token with default TTL of 15 mins. We can't
store the ec2 url anymore for future use for those.
This moves the caching logic to BaseWaitConditionHandle class.
Conflicts:
heat/engine/resources/signal_responder.py
heat/tests/test_signal.py
[1] https://review.opendev.org/#/c/724124/
Change-Id: I6b74faed820caccd39210bd48a212b2dedca46b9
Task: 39985
Related-Bug: #1872737
(cherry picked from commit 3047ca7d36)
This allows resizing of instances on the same host and would
not depend on ssh to the other node in multinode grenade job.
For ussuri and above we'll use the zuulv3 jobs which sets it
by default.
Change-Id: I68c4ff34266ee1ae0a68df36b1fa1025b23b712a
Task: 40166
When user wants to do manual scale-up of ASG by increasing the
desired_capacity and also update some member properties as
part of a stack update, if it fails due to insufficient
resources when resizing, trying to manually scale-down by
decreasing the desired_capacity won't work, as it would
always expect to update the group with the earlier size
before scaling down.
This patch uses the target_size when building the batches.
Task: 39867
Change-Id: Id851530b424f68b5e0e967fe34431483bfffd852
(cherry picked from commit 26d8f64fc9)
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
(cherry picked from commit 40ca7e9e63)
INSTALL_TEMPEST flag enable to install Tempest by default on
devstack env which is meant for using on master gate only and has
to be false for stable branch. On stable branch master Tempest
on system wide can fail to install for various reason like constraint
etc. That is why we install Tempest on venv always.
This started failing the py2 jobs on stable/train gate[1] where
heat devstack plugin try to install Tempest on system wide also which try to
use py2 env (Tempest is py3 only now) because jobs is py2 and fail.
We need to set up the Tempest on system wide based on INSTALL_TEMPEST flag
which is set to false on all stable branch to:
- https://review.opendev.org/#/q/I60949fb735c82959fb2cfcb6aeef9e33fb0445b6
Aslo includes below backport:
Check if subnet already added to router before adding it.
(cherry picked from commit c923b9c64b)
[1] https://zuul.opendev.org/t/openstack/build/398d906e73724ee6b91d8f32babc5035/log/logs/devstacklog.txt#37969
- https://review.opendev.org/#/c/717428/
- https://review.opendev.org/#/c/717529/
Change-Id: I13153881223c3a585052a94651b9ff082a75b283
OS::Mistral::Workflow resource creates a mistral workflow with
a unique name (resource_id). We replace FAILED resources by
default and replace wont work in this case as it will try to
use the same workflow name for the replacement resouce, if the
'name' property is provided.
If the workflow does not exist/deleted using mistral api directly,
it would create a replacement resource, but it would delete the
workflow when cleaning up the old resource. So we would endup
with a replacement resource without any backing workflow.
This adds a new resource attribute ``always_replace_on_check_failed``
and overrides needs_replace_failed() for OS::Mistral::Workflow.
Task: 38855
Change-Id: Ia0812b88cae363dfa25ccd907ecbe8b86f5b1a23
(cherry picked from commit 9e80518b90)
When building a complex stack, instance and volume are both
necessary. But the support of AZ in Nova and Cinder are slightly
different which is causing troubles to build the Heat template.
Without setting, the property availability_zone of volume always
got "", an empty string, instead of None. As a result, Cinder will
return 400 BadRequest error. This patch will turn the empty
string into None, to make sure Cinder can correctly handle the
scenario when availability_zone of volume is not set.
Task: 38853
Story: 2007330
Change-Id: Ib5bddf12ca63849a030d1d579d0a2e853e8b848a
(cherry picked from commit 50d72b8c0b)
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: I942d7f1fc4b54304f472e0cb0097f7dcb70f3c71
This feature of openstackdocstheme means that we'll always link to the
corresponding branch of another project (i.e. latest links to latest,
but train links to train, &c.)
https://docs.openstack.org/openstackdocstheme/latest/#external-link-helper
Change-Id: If94115f87af3689413405f3283be7fb197fab058
(cherry picked from commit dd70d9244d)
When there are no 'supported_versions' defined for a client plugin,
we should not use version when calling self.client()
Also fixes similar issue in resources.
Task: 38165
Change-Id: Ifce776e8e8375f6a4399574aa71cc2f81ecc57b0
(cherry picked from commit 2f63735a5c)
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
(cherry picked from commit 3b4e0cda28)
The wrap_db_retry decorator must be used outside the outermost DB
transaction. Using it on a subtransaction means that the main
transaction gets marked for rollback but not closed, leaving the session
in the 'inactive' state.
This change ensures that the decorator is not used when we update the
previous resource from within a subtransaction as part of creating a
replacement resource, and instead the retry happens outside the main
transaction.
Change-Id: I28bfcc43b108d4d907098b2f0cf3553aab399553
Task: 36957
(cherry picked from commit 2398191be9)
The 'local-data' in path /var/lib/os-collect-config/local-data should
be a directory, not a file. However, even if we can fix this, now
os-apply-config will merge configs based on the order [ec2, heat and
local], but actually there is no deployments collected local. Then
unfortunately, the deployments collected from Heat will be
overwriten because the merging order in os-apply-config. At this
moment, we can't change os-apply-config since it's deliberate.
So the only reasonable way we can do now is using
/var/lib/heat-cfntools/cfn-init-data and /var/lib/cloud/data/cfn-init-data.
Story: 2006566
Task: 36851
Change-Id: I3b1ed30967e9235e9e830c5e4156f739303be618
(cherry picked from commit ea18c18188)
Fedora CoreOS will replace Fedora Atomic being the next generation
container OS. So it would be nice to support Fedora CoreOS in Heat.
In Fedora CoreOS, the cloud-init will be replaced with Ignition[1],
so the changes proposed in this patch are mainly focusing on how to
support Ignition when using Heat SOFTWARE_CONFIG with Ignition.
Task: 36671
Story: 2006566
Change-Id: I11df2431634de7d8b584b1a2ac733d43959e34fc
(cherry picked from commit f6249c0110)