Commit Graph

365 Commits

Author SHA1 Message Date
Balazs Gibizer e291055786 [openstack-tox-cover]Increase timeout
After adding functional test to the job by
9908d87d0d we observe frequent
timeout[1]. So this patch bumps the timeout to unblock the gate.

[1] https://zuul.opendev.org/t/openstack/builds?job_name=openstack-tox-cover&project=openstack/nova

Change-Id: Ibaee059967a41c3fbc0170e3075e9c2e059d6106
Signed-off-by: Balazs Gibizer <gibi@redhat.com>
2026-03-03 09:47:13 +01:00
Zuul 51bf3bdeca Merge "testing: Run functional tests under [testenv:cover]" 2026-02-28 12:17:11 +00:00
melanie witt 9908d87d0d testing: Run functional tests under [testenv:cover]
Nowadays a significant amount of our test code coverage comes from
functional tests rather than just from unit tests.

Currently, we run unit tests under [testenv:cover] via .stestr.conf
and this just adds a run of the functional tests without API samples or
notification samples or database-only tests, for the sake of brevity.

In local testing this increases our Coverage Report from 87% to 89%
overall. And for the particular file I'm interested in,
nova/limit/utils.py, it increases coverage from 66% to 73%.

I'm doing this as a base for a bug fix in nova/limit/utils.py in the
next patch and with this change, I see coverage increase to 90%.

Change-Id: Iec0a9e38f3641e973894748ab2a14d1bd838e904
Signed-off-by: melanie witt <melwittt@gmail.com>
2026-02-27 15:52:33 -08:00
Ghanshyam Maan d5ffb58a8d Use 2nd RPC server in compute operations
For graceful shutdown of compute service, it will have two RPC servers.
One RPC server is used for the new requests which will be stopped during
graceful shutdown and 2nd RPC server (listen on 'compute-alt' topic)
will be used to complete the in-progress operations.

We select the operations (case by case) and their RPC method to use
the 2nd PRC server so that they will not be interupted on shutdown
initiative and graceful shutdown time will keep 2nd RPC server active
for graceful_shutdown_timeout. A new method 'prepare_for_alt_rpcserver'
is added which will fallback to first RPC server if it detect the old
compute.

As this is upgrade impact, it bumps the compute/service version, adds
releasenotes for the same.

The list of operations who should use the 2nd RPC server will grow
evanutally and this commit moves the below operations to use the 2nd
RPC server:

* Live migration

  - Live migration: It use 2nd RPC servers and will try to complete
    the operation during shutdown.
  - live_migration_force_complete does not need to use 2nd RPC server.
    It is direct RPC request from API to compute and if that is
    rejected during shutdown, it is fine and can be initiated again
    once compute is up.
  - live_migration_abort does not need to use 2nd RPC server. Ditto,
    it is direct RPC request from API to compute. It cancel the queue
    live migration but if migration is already started, then driver
    cancel the migration. If it is rejected during shutdown because of
    RPC is stopped, it is fine and can be initiated again.

* server external event
* Get server console

As graceful shutdown cannot be tested in tempest, this adds a new job
to test it. Currently it test the live migration operation which can
be extended to other operations who will use 2nd RPC server.

Partial implement blueprint nova-services-graceful-shutdown-part1

Change-Id: I4de3afbcfaefbed909a29a831ac18060c4a73246
Signed-off-by: Ghanshyam Maan <gmaan.os14@gmail.com>
2026-02-25 20:32:44 +00:00
Balazs Gibizer 4bce4480b9 Run nova-compute in native threading mode
Previous patches removed direct eventlet usage from nova-compute so
now we can run it with native threading as well. This patch documents
the possibility and switches both nova-compute processes to native
threading mode in the nova-next job.

Change-Id: I7bb29c627326892d1cf628bbf57efbaedda12f1a
Signed-off-by: Balazs Gibizer <gibi@redhat.com>
2026-02-24 16:28:06 +01:00
Balazs Gibizer 4227c9b14a Revert "Set openstacksdk-functional-devstack non voting"
This reverts commit 2f9f780a77.

Signed-off-by: Balazs Gibizer <gibi@redhat.com>
Change-Id: Ia3d01ba6da0ade10ad70de951cbcb72204fbce12
2026-02-09 10:19:56 +01:00
Balazs Gibizer 2f9f780a77 Set openstacksdk-functional-devstack non voting
There is neutron issue in the job but it's fix is being blocked by
multiple other issues in the sdk's gate. Let's keep our gate operational
until they fix the sdk gate.

[1] https://review.opendev.org/c/openstack/openstacksdk/+/976008
[2] https://lists.openstack.org/archives/list/openstack-discuss@lists.openstack.org/message/5HHEYPZA6VIORX2XLBZGNMM2EVX2LR65/

Signed-off-by: Balazs Gibizer <gibi@redhat.com>
Change-Id: Ie2fe2ec18a0fe7dbbfe4fbb9094d9542c729122a
2026-02-09 10:16:10 +01:00
Steve Baker 1637397253 Use the correct name for the ironic check job
The job name has been an alias for 6 years [1] and the accurate
preferred name ironic-tempest-bios-ipmi-direct has been in place for 8
months [2].

The intent of job names is to accurately describe the configuration of
the job, and the name
ironic-tempest-ipa-wholedisk-bios-agent_ipmitool-tinyipa is now
inaccurate - specifically the job no longer uses tinyipa.

[1] https://opendev.org/openstack/ironic/commit/53f751dcfd86594160dc9be92b616ef5d0d70623
[2] https://opendev.org/openstack/ironic/blame/branch/master/zuul.d/ironic-jobs.yaml#L1210-L1236

Change-Id: I768a6d3c7f9f550a692dd1f6e0435228076f118f
Signed-off-by: Steve Baker <sbaker@redhat.com>
2026-01-27 11:15:02 +13:00
Zuul f43c64c56c Merge "Migrate upper functional job to Python 3.13" 2026-01-15 20:10:58 +00:00
Zuul 4b90fdf9af Merge "Replace remaining reference to policy.json" 2026-01-06 14:15:23 +00:00
Takashi Kajinami ad911932ff Replace removed os-vif-ovs job
It was replaced by os-vif-ovn job.

Depends-on: https://review.opendev.org/c/openstack/os-vif/+/798038
Change-Id: I4fc595eb51c05c4875bc94e0e812f117a35df7cf
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
2026-01-05 21:20:18 +09:00
Takashi Kajinami 56e31f8d4e Replace remaining reference to policy.json
The json format of policy files was deprecated long ago and is being
removed completely. Mention policy.yaml instead.

Change-Id: I9f6f11fd563d39a4fc1b940c67084292de7c56e3
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
2025-12-12 01:23:18 +09:00
Takashi Kajinami d013960242 Migrate upper functional job to Python 3.13
Depends-on: https://review.opendev.org/960639
Change-Id: I441298c9a71521b45d1ddcbe9612b7f4e18a60da
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
2025-12-07 17:02:44 +00:00
Dan Smith 326b77d837 Test nova-next with >1 parallel migrations
Change-Id: Ic69872e6667664d1b3bd7a88d7ef018b67352f44
Signed-off-by: Dan Smith <dansmith@redhat.com>
2025-11-13 06:32:54 -08:00
Balazs Gibizer 0bf6780fb8 [CI]nova-alt-configurations tests eventlet
This patch renames the nova-ovs-hybrid-plug Job to
nova-alt-configurations and ensures that all nova services are
running with eventlet even after some of the services switches to
native threading by default. This ensures we keep eventlet test
coverage in place.

Change-Id: Id2b70aa3870f2bf5a28c875a7564f84c012c9456
Signed-off-by: Balazs Gibizer <gibi@redhat.com>
2025-11-05 14:14:04 +01:00
Zuul 74c568b96b Merge "[CI][nova-next]test with placement ac optimizations" 2025-10-31 16:29:56 +00:00
Balazs Gibizer da1fb487e7 [CI][nova-next]test with placement ac optimizations
The nova-next job will run tempest with allocation candidate generation
optimizations enabled:

  [placement]
  allocation_candidates_generation_strategy = breadth-first
  max_allocation_candidates = 100000
  [workarounds]
  optimize_for_wide_provider_trees = True

Depends-On: https://review.opendev.org/c/openstack/devstack/+/939825
Deepnds-On: https://review.opendev.org/c/openstack/placement/+/962776
Change-Id: Icbfc568bead950a3be22784746421cc11382b2d7
Signed-off-by: Balazs Gibizer <gibi@redhat.com>
2025-10-13 11:07:06 +02:00
Balazs Gibizer ec426532c3 Run nova-conductor in native threading mode
Previous patches removed direct eventlet usage from nova-conductor so
now we can run it with native threading as well. This patch documents
the possibility and switches both nova-conductor process to native
threading mode in the nova-next job.

Change-Id: If26c0c7199cbda157f24b99a419697ecb6618fa6
Signed-off-by: Balazs Gibizer <gibi@redhat.com>
2025-09-22 10:17:39 +00:00
Zuul fa31983299 Merge "[CI]Make nova-tox-py312-threading voting" 2025-09-03 10:40:39 +00:00
Zuul e700b18f2b Merge "Replace remaining usage of Ubuntu Jammy" 2025-09-01 11:30:28 +00:00
Takashi Kajinami 583d88308f Replace remaining usage of Ubuntu Jammy
Ubuntu Jammy is no longer supported since 2025.2 . Replace it by
Ubuntu Noble which is used in the other jobs.

Change-Id: I790fb06ede2c41cb80b3d2e8ff7faa7315c84016
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
2025-08-31 16:36:44 +09:00
Balazs Gibizer 350cdd1b5e [CI]Make nova-tox-py312-threading voting
Change-Id: I6a220d03f7c879af0d714740102b2d84ce61ca69
Signed-off-by: Balazs Gibizer <gibi@redhat.com>
2025-08-27 19:03:34 +02:00
Balazs Gibizer 83eed99a9f Run unit test with threading mode
The py312-threading tox target will run the currently working unit tests
with threading mode. We have an exclude list, those tests are
failing or hanging. Also the current test list might still have unstable
tests.

This also adds a non voting zuul job to run the new target.

Change-Id: Ibf41fede996fbf2ebaf6ae83df8cfde35acb2b7e
Signed-off-by: Balazs Gibizer <gibi@redhat.com>
2025-08-27 19:01:35 +02:00
Balazs Gibizer d6a3f86329 Run nova-api and -metadata in threaded mode
It turns out that nova-api and nova-metadata only depend on spawning
threads via scatter-gather. The scatter-gather already supports both
eventlet and threading mode so we can switch these services.

Our WSGI services (nova-api, nova-metadata) are not relying on
oslo.service to fork worker processes, but expect the web server to
handle that (uwsgi, apache mod_wsgi). This means we don't need to handle
any forking issues as no nova code runs before the fork.

Change-Id: Id3a339c605dfc730bdb7994c3ca45baafeb5af80
Signed-off-by: Balazs Gibizer <gibi@redhat.com>
2025-08-14 13:39:25 +02:00
Balazs Gibizer 3e33b58092 Run nova-next with n-sch in threading mode
Depends-On: https://review.opendev.org/c/openstack/devstack/+/948436

Change-Id: I36c68740fae3e3a9bd3286a1b66d86fd3341aff5
Signed-off-by: Balazs Gibizer <gibi@redhat.com>
2025-08-12 07:51:02 -07:00
Balazs Gibizer dec761b680 Disable NOVA_COMPILE_MDEV_SAMPLES to unblock CI
The nova-next is blocked by missing kernel sources during compilation
disabling it until we find a solution. The result is not yet used by the
nova job so it is safe to disable.

Related-Bug: #2110545
Change-Id: Idb4be7d7537fe08f639b9c91b9f9bc261076884f
2025-05-13 14:22:33 +02:00
Balazs Gibizer a5bcaf69b1 Remove python 3.9 support
OpenStack recently dropped python3.9 support for global requirements[1]
as it was removed from the Flamingo supported runtimes[2].

So this patch removes 3.9 support from nova too.

[1]https://review.opendev.org/c/openstack/requirements/+/948285
[2]https://governance.openstack.org/tc/reference/runtimes/2025.2.html#python

Change-Id: I8aea971d7972959c32d5175926cbaddb21839f8e
2025-04-29 09:32:24 +02:00
Michael Still cbc263f6bc libvirt: allow direct SPICE connections to qemu
This patch adds a new console type, "spice-direct", which provides
the connection information required to talk the native SPICE protocol
directly to qemu on the hypervisor. This is intended to be fronted
by a proxy which will handle authentication separately.

A new microversion is introduced which adds the type "spice-direct"
to the existing "spice" protocol.

An example request:

POST /servers/<uuid>/remote-consoles
{
  "remote_console": {
    "protocol": "spice",
    "type": "spice-direct"
  }
}

An example response:

{
  "remote_console": {
    "protocol": "spice",
    "type": "spice-direct",
    "url": "http://localhost:13200/nova?token=XXX";
  }
}

This token can then be used to lookup connection details for the
console using a request like this:

GET /os-console-auth-tokens/<consoletoken>

Which returns something like this:

{
  "console": {
    "instance_uuid": <uuid>,
    "host": <hypervisor>,
    "port": <a TCP port number>,
    "tls_port": <another TCP port number>,
    "internal_access_path": null
  }
}

APIImpact

Change-Id: I1e701cbabc0e2c435685e31465159eec09e3b1a0
2025-02-22 08:25:38 +11:00
Sean Mooney d4f40976d0 move nova-ovs-hybrid-plug to deploy with spice and fix qxl default
In centos/rhel 9 qemu supprot for the qxl model was removed
with the removal of spice support.
In ubuntu 24.04 qemu support for qxl and spice supprot
has now also been removed.
debian 12 bookworm still support spice in there qemu package.

When we updated the default video model to virtio for x86 we
left a config driven special case for spice to default to qxl
since that nolonger works on centos or ubuntu based distos that
default is not helpful so this change removes the special case
making virtio the default for x86 regardless of the console used.

This change also updates the nova-ovs-hybrid-plug to test with spice
so that we have at least one job using it. to enable that the job is
moved to debian.

Closes-Bug: #2097529
Change-Id: I265ad2ced3729bed41bf53c58dcebadb775ce1f7
2025-02-19 17:09:09 +00:00
Zuul 12bc65f942 Merge "Disable the heal instance info cache periodic task" 2025-02-17 20:46:07 +00:00
Sean Mooney b3f8815720 Disable the heal instance info cache periodic task
The _heal_instance_info_cache periodic task predates
the introduction of the server external events API
which is now the canonical way to refresh the cache.

This change updates the default value of
``[compute]heal_instance_info_cache_interval``
to -1 disabling it by default.

The nova-ovs-hybrid-plug job is extended to test the
legacy configuration value and the config override is removed
from nova-next

Closes-Bug: #1996094
Related-Bug: #2089225
Change-Id: I33ac91bb4f3ead51af2f7005002d5eb5078540d9
2025-02-05 19:49:01 +00:00
Ghanshyam Mann bb8ee15106 Cleanup RBAC jobs in check/gate pipeline
This commit does the following changes in gate testing:

- Test tempest-integrated-compute-rbac-old-defaults (Test the
  RBAC old defaults which are deprecated but still supported)
  in periodic weekly pipeline instead of check/gate pipeline.

  Reason: Old defaults are deprecated and it will be rare to
  have any changes in those. These should be ok to run weekly
  to know if anything is broken for old defaults.

- Remove tempest-integrated-compute-enforce-scope-new-defaults
  This test the new defaults which are enabled by default and
  tested in every job.

  Reason: We kept this job for cinder because their new defaults
  are not enabled by default. To test nova new defaults combination
  with cinder new defaults, we have Tempest job running in tempest
  gate (tempest-full-enforce-scope-new-defaults).

Change-Id: I3a1634ff71b39c722401dea8e77092228f9cc064
2025-02-04 19:37:17 +00:00
Zuul 8c953d4d25 Merge "zuul: Add missing context comments for nova-next" 2025-01-28 22:32:50 +00:00
Zuul 932866d078 Merge "Run nova-next without periodic cache healing" 2025-01-22 18:30:38 +00:00
Zuul 3d21445b73 Merge "Add whitebox-devstack-multinode job to periodic" 2025-01-20 21:08:50 +00:00
Bogdan Dobrelya 26d174b65d Run nova-next without periodic cache healing
Neutron networking backends today are expected to work without
the periodic healing of the cache in Nova. Turn it off to gain
additional performance and in order to start testing this
setup in advance, before we are ready to change the default
value to it.

Change-Id: Ic90949cae840290dc376af7a7a3056babe2539f2
Signed-off-by: Bogdan Dobrelya <bdobreli@redhat.com>
2025-01-16 15:19:44 +01:00
Stephen Finucane ac48ebd08a zuul: Add missing context comments for nova-next
Spotted while trying to ascertain if unified limits was being tested
anywhere.

Change-Id: Ib0f19a8153bdcc1222bc48ae518b3a9c9fde35a8
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2024-11-19 16:57:27 +00:00
Ghanshyam Mann 3abab88784 Update gate jobs as per the 2025.1 cycle testing runtime
As per 2025.1 testing runtime[1], we need to test on Ubuntu
Noble (which will be taken care by tempest and devstack
patches to move base jobs to Noble (depends-On)) and at least single
job to run on Ubutnu Jammy (for smooth upgrade from previous
releases).

This commit keep rbac old default job continue running on Jammy
which can be moved to noble in next cycle.

Depends-On: https://review.opendev.org/c/openstack/tempest/+/932156
[1] https://governance.openstack.org/tc/reference/runtimes/2025.1.html

Change-Id: I99c0eb76d63a5902555f5527dbfdaf96c47a098f
2024-11-18 17:12:49 -08:00
Takashi Kajinami b476f0c615 Skip functional tests on pre-commit config update
This file is used only in code style checks.

Change-Id: Ia1787dc618a12aca23f6302c3d9c7db44676be88
2024-11-11 15:54:15 +00:00
Artom Lifshitz 877e449a11 Add whitebox-devstack-multinode job to periodic
Whitebox is a tempest plugin whose scope specifically includes peaking
behind the curtain. It is used for integration tests that cannot
perform their assertions based on just the REST API, which is the
limit in Tempest proper. Whitebox allows things like examining the
instance XML and querying the database. While it is not limited to
Nova in theory, in practice at the time of this commit, it only
contains compute-related tests.

This patch adds the basic integration job that whitebox uses in its
own CI to Nova's periodic weekly pipeline. Whitebox does a lof of
tests around CPU pinning, and therefore uses nodepool labels that
provide nested KVM support. For that reason, it's considered wasteful
to run it against every single Nova patch, so periodic is being
proposed here.

As a periodic job, its status will have to be a recurring item on the
Nova team meeting, similar to how the Placement periodic job is
treated.

In addition, we also add it to the experimental pipeline to allow for
manual trigger if deemed necessary on any particular patch.

Change-Id: I0e1b754d0b94194cf9baeb6e188036b03be727db
2024-10-22 13:53:22 -04:00
Balazs Gibizer 7344a87bdf Revert "Test live migration between hosts with differnet cpu_shared_sets"
The nodepool provides different VMs as computes it can have 8 or 4 cpus.
So the reverted commit breaks the test runs that uses 4 cpu computes. We
need a smarter solution and until then we need to get back to a stable
CI.

This reverts commit aca63b66e5.

Change-Id: Id48c6143533fa97f0b79936a4551f0e19751db44
2024-10-14 14:42:43 +02:00
Sean Mooney aca63b66e5 Test live migration between hosts with differnet cpu_shared_sets
This change modifes the nova-live-migration job to define
[compute]cpu_shared_set to different ranges on the controller
and compute node. in ci we have 8 cpus so the controller is set
to 0-5 and the compute uses 2-7

6 cores with our default allocation ratio should be sufficent
for our current level of concurrancy. This change also adds
the remaining cores as cpu_dedicated_set, they will currently
be unused but are thre if we want to enable pinned cpu testing
in the future.

Change-Id: I0d8463cf584d6ac141a5e1cb492d17996db458e0
2024-08-30 01:31:45 +00:00
Sean Mooney 804bc98759 update nova-next to use ubuntu 24.04
This change updates the nova-next nodeset
to use openstack-two-node-noble and revert to
using qemu without nested virt.

using nested virt was a tempory messure to mitigate the kernel
panics we were seeing related to volume detach while we also explored
using split kernel images. since then we have reverted the other
jobs back to using normal whole disk images and we have not
seen a marked uptic in kernel panics.

as such this change drop the use of nested virt since the other jobs
are not using it an updates the nodeset to move nova-next to test on
ubuneu 24.04 (noble) on python 3.12

Depends-On: https://review.opendev.org/c/openstack/devstack/+/922427
Change-Id: I5059ba3c519efb18947a8f3d24868ce1c9289e3d
2024-08-30 02:29:38 +01:00
Sean Mooney c69a9eb87f Skip new image format tests
The nova-ceph-multistore job is currently
not configured properly for the new image format
tests. This change skips them until we decided
how to fix this.

Change-Id: I3de7588ba224453c24beabf8a799c71677603ba7
2024-08-13 19:32:47 +01:00
Zuul 73012258e7 Merge "[CI] Replace deprecated regex" 2024-07-24 23:38:49 +00:00
Dan Smith c0ff2386ed Fix disk_formats in ceph job tempest config
Tempest currently defaults to disk_formats[0] for images it creates,
which is 'ami'. However, it's actually using a qcow2 disk image by
default, which means we're lying to glance when we create those.

Change-Id: I737e9aa51c268a387f1eed24cf717618d057d747
2024-07-02 12:52:36 -07:00
Elod Illes 9b77bae8a3 [CI] Replace deprecated regex
Latest Zuul drops the following warnings:

  All regular expressions must conform to RE2 syntax, but an
  expression using the deprecated Perl-style syntax has been detected.
  Adjust the configuration to conform to RE2 syntax.

  The RE2 syntax error is: invalid perl operator: (?!

This patch replaces the 'irrelevant-files' to 'files' with explicitly
listing the pattern which files should be the tests run against.

Change-Id: If287e800fb9ff428dbe6f9c4c046627f22afe3df
2024-06-18 16:18:33 +02:00
Sean Mooney 3811c7f648 tweak emulation job to avoid OOM errors
This change increases the swap in the emulation job form
1G to 8G
This change updates the default cirrors image form 0.5.2
to 0.5.3 to avoid know kernel bugs
this change reduces the tb_cache_size: to 128
The tempest concurrency is reduced to 4 to avoid
no valid host error in the resize tests

Change-Id: Ic1dde3d54f5ca12408ef53218773a27d55760705
2024-05-27 14:19:02 +01:00
Zuul 4e3a41f0a4 Merge "Stop using split UEC image (mostly)" 2024-05-22 19:03:32 +00:00
Zuul 61ad4f1f27 Merge "Enable virtio-scsi in nova-next" 2024-05-20 21:41:24 +00:00