We are stoked to announce the release of: nova 24.0.0: Cloud computing fabric controller This release is part of the xena release series. The source is available from: https://opendev.org/openstack/nova Download the package from: https://tarballs.openstack.org/nova/ Please report issues through: https://bugs.launchpad.net/nova/+bugs For more details, please see below. Changes in nova 23.0.0.0rc1..24.0.0 ----------------------------------- 928d3feffd Add missing __init__.py in nova/db/api 3588a4aa33 [stable-only]Update TOX_CONSTRAINTS_FILE for stable/xena 1e0bfd0c56 [stable-only]Update .gitreview for stable/xena 73d78f01a0 Add the Xena prelude section 70040856aa docs: Add nova-volume volume_attachment refresh admin workflow a359753006 Fix nova-manage db version 166b1730b8 Reproduce bug/1943436 058d137ac8 Add more retries to TestMigrateFromDownHost tests 22d4057a16 [doc] port-resource-request-groups not landed in Xena bbcd7d2fd0 fup: Print message logging uncaught nova-manage exceptions a6ef502aa0 Support Cpu Compararion on Aarch64 Platform c590843974 Allow 'bochs' as a display device option 8541f37cb5 Update compute rpc version alias for xena fc77ce191f Add --sleep option for archive_deleted_rows --until-complete 625469d692 Avoid excessive sleep in vmware unit test b67b928c38 Parse alias from domain hostdev 1b6a6e3916 Convert features not supported error to HTTPBadRequest 37f80c13c6 [func test] move unshelve test to the proper place 44309c419f Support interface attach / detach with new resource request format 122a32ed82 workarounds: Remove rbd_volume_local_attach 9bd62eae6e workarounds: Remove disable_native_luksv1 9f8cc2f038 Add two new hacking rules 9cb92e8832 [func test] refactor interface attach with qos fa35cfa998 tests: Address nits for configurable-instance-hostnames series c09d98dadb Add force kwarg to delete_allocation_for_instance 6c5dd864c2 db: Handle parameters in DB strings cf07df57e7 Remove module level caching 191bdf2069 Support move ops with extended resource request 9be996c696 Expose the mdev class c3886c3ca7 Support boot with extended resource request 2b847085c8 Provide and use other RCs for mdevs if needed a543cb23aa Provide the mdev class for every PCI device fc1a99dc16 docs: admin/networking rename neutron_tunneled to neutron_tunnel cfa33d3b06 policy: Deprecate field from 'os-extended-server-attributes' policy e906a8c0ec nova-manage: Introduce volume show, refresh, get_connector commands 191712594d Add some missing parameters in docs of os-cells 38603a4d09 Reproduce bug 1941005 a057bbc406 fup: Fix os-volume_attachments api-ref parameters 1d62485472 Fix documentation about cpu topologies ac21c6674c api: Introduce microversion 2.89 adjusting os-volume_attachments b6ab1cb467 api: Log actual number of UUIDs queried da6af3fb22 compute: Query the service group API within check_instance_host 5e8267f703 fup: Increase service_down_time beyond INITIAL_REPORTING_DELAY in test 50a7a3050a conf: Remove deprecated aliases 62e112461f tests: Merge 'test_utils', 'test_scheduler_utils' 6652999494 scheduler: Merge driver into manager 289438b4c2 docs: Drop references to non-filter scheduler drivers 930b7c9921 Avoid modifying the Mock class in test 6fbd0b758d address open redirect with 3 forward slashes 94f47471e0 Transfer RequestLevelParams from ports to scheduling d6cd4420bb Parse extended resource request from the port data 9bae5f2ca5 Add missing [oslo_reports] options ec6f8f63f9 [func test] ports with both bw and pps resources de9b136dc6 [func test] refactor asserts in qos tests c9b1dfe9b7 [func test] refactor assertPortMatchesAllocation b29ccf8aa5 Support same_subtree in allocation_canadidate query f6e8c512fb Bump min placement microversion to 1.36 9de8bfb6e6 Add same_subtree field to RequestLevelParams 8f5b7c67ca Reject server operations with extended resource req e357ad3c23 Reject server create with extended resource req 017b0a3d23 Detect port-resource-request-groups neutron API extension f68d30bff3 [func test] neutron fixture for extended resource request aa3d89b31f [func test] move port creation to the NeutronFixture 713a11727d [func test] create pps resource on OVS agent RP 1039aa6443 [func test] move port resource request tests 2383cbb4a5 Fix inactive session error in compute node creation a8492e8878 Prevent deletion of a compute node belonging to another host ec48e1523d workarounds: Add libvirt_disable_apic b11e3f1d0d fup: Remove unused legacy block_device_info format 78cace1ce4 fup: Move _migrate_stub into LibvirtMigrationMixin 8a0ae569ef fixtures: Add legacy APIs to cinder fixture cb3e11952d tests: Sanity check some tests e3fa6859f9 api: Remove unnecessary 'base_' prefix from schemas 0942163c82 api: Pass request to 'addresses' view builder b543f8226c api: Rename 'parameter_types.hostname' -> 'fqdn' 3f548f3136 VmWare: Fix deprecation warning in unit tests 1f2aa3e9d8 VMWare: Use get_hardware_devices throughout 7fc6fe6fae Fix 1vcpu error with multiqueue and vif_type=tap d31b26e09d VMWare: Use WithRetrieval to get all results 39f0af5d18 libvirt: Abort live-migration job when monitoring fails 20d8554f64 tests: Enable SADeprecationWarning warnings eb728e877a db: Final cleanups a7584ec1a5 docs: Add documentation on database migrations 2226ec4e3b Accelerator smartnic SRIOV support 2bb4527228 Invalidate provider tree when compute node disappears 32676a9f45 Clear rebalanced compute nodes from resource tracker 59d9871e8a Add functional regression test for bug 1853009 31bedfc09c fup: Assert state of connection_info during LM rollback in func tests d4cc10d7bb fup: Make connection_info returned by CinderFixture unique per attachment ce128798f5 fup: Mock all unix connectors in os-brick fixture 79ec4e2938 fup: Move OSBrickFixture into base.ServersTestBase 962eda94d5 compute: Ensure updates to bdms during pre_live_migration are saved 268b716955 Add a regression test for bug 1939545 d102b751b7 fake: Ensure need_legacy_block_device_info returns False 1ba2c1c55d db: Enable auto-generation of migrations 905c9723e9 db: Integrate alembic 307adc5e08 db: Normalize migrations tests c3e113eb31 db: Trivial style changes 38a022166f db: Add initial alembic migration for API DB ca9ba88a7a db: Add initial alembic migration for main DB 21c5ced0ba db: Avoid use of ALTER in initial migration 43b253cd60 db: Post reshuffle cleanup bf8b5fc7d0 db: Move remaining 'nova.db.sqlalchemy' modules aec2ca9468 db: Exclude the 'use_db_reconnect' option 100b9dc62c db: Unify 'nova.db.api', 'nova.db.sqlalchemy.api' 84b6179076 db: Register database config options ourselves 59c2262ca5 Block servers with vGPU and device profile in heal_allocations d4dbcd5fa0 func: Increase rpc_response_timeout in TestMultiCellMigrate tests 4e18f07670 zuul: Mark live migration jobs as non-voting due to bug #1912310 9cf07d5aaa Change the admin-visible logs for mdev support ede7866de4 Add regression test for bug 1938326 c3245098e3 smartnic support - functional tests 1f53176d2f smartnic support - reject server move and suspend e19fa1a199 smartnic support - cleanup arqs 120fe8af93 smartnic support - build instance with smartnic arqs b90c828d70 smartnic support - create arqs 8b84135f2d smartnic support - new vnic type 9c55d5d59d Smartnic support - cyborg drive 2ffd973860 Add functional test for bug 1937375 753a2ae5d4 fup: Move _wait_for_volume_attach into InstanceHelperMixin 2209b0007f compute: Avoid duplicate BDMs during reserve_block_device_name 49ba5a763f libvirt: Handle silent failures to extend volume within os-brick ff4d0d002a Rename vgpu options to mdev dbf3e276ba zuul: Increase GLANCE_LIMIT_IMAGE_SIZE_TOTAL for nova-lvm 39ef1ad774 Restore original time override in test_archive_task_logs 214cabe684 Reduce mocking in test_reject_open_redirect for compat a3d0aa4772 I2f9ad3df25306e070c8c3538bfed1212d6d8682f fup: add log 48f35058fe tests: Remove 'stub_out_trusted_certs' f916266d4f trivial: Cleanup a comment about a now removed libvirt version check 880611df0b Allow deletion of compute service with no compute nodes 32257a2a6d Reproducer unit test for bug 1860312 d4f9b03c5c api: Improve extra spec validator help texts 1d850a1593 use cinder v3 809a52a16b Add tests for 'AggregateInstanceExtraSpecsFilter' f0d17e774f Add tests for 'AggregateImagePropertiesIsolation' 89e321b7b5 tox: Encode specific Python versions a65ea33824 Bump oslo.db to 10.0.0 4ee2f667b5 tests: Validate AZ values 52d9dd2c0b doc: allow_resize_to_same_host needs nova-api restarted d093849c3c Correct reno for archiving task_log database records a22fe2da97 Bump os-resource-classes to 1.1.0 ad60f23be3 extend_volume of libvirt/volume/iscsi should not use device_path 3bda965e15 tests: Remove unnecessary warnings filter 0aea2ac903 tests: Silence SQLAlchemy warnings 1d3373dcf0 Fix request path to query a resource provider by uuid 982e2ee02d Use neutronclient's port binding APIs 87dba379ac Make test_archive_task_logs deterministic be9fe5ce61 Improve prep_resize reschedule unit test b84787d26a Add func test for nova-manage db archive_deleted_rows --before d88fe2895b docs: Replace 'nova boot' with 'openstack server create' 9cdecc81fb api: Handle invalid volume UUIDs during spawn faa9de93d1 Remove the redundant code for attach interface 8f21ee42bd api: Align availability zone info with forced host 9799468d6f db: Drop support for experimental concurrency 014480d52f db: Remove constant aliases from 'nova.db.api' 089ae234a7 db: Move 'sqlalchemy.types' up a directory bcf225daf4 db: Move main DB migrations 4bbea58cbb db: Move db.sqalchemy.migration to db.migration 43de2421b3 db: Use module-level imports for sqlalchemy (for real) 97a566ad9c Add logs when cannot fit numa dfda0c0482 Fix oslo policy DeprecatedRule warnings f84d5917c6 [ironic] Minimize window for a resource provider to be lost e0534cc289 scheduler: Merge 'FilterScheduler' into base class 6d745036bc trivial: Remove FakeScheduler (for realz) c4b4704783 scheduler: Remove 'hosts_up' b20753b313 scheduler: 'USES_ALLOCATION_CANDIDATES' removal cleanup 97d25371b3 scheduler: Remove 'USES_ALLOCATION_CANDIDATES' a569a51fed fix sr-iov support on Cavium ThunderX hosts. 17cca270a6 Make explicit the network backend used in the CI jobs fa0fb2fe3d libvirt: Always delegate OVS plug to os-vif c31d3f96b1 Fix error '404 Not Found' 99cf5292c7 objects: Fix VIFMigrateData.supports_os_vif_delegation setter b5b2e99824 zuul: Add nova-tox-functional-centos8-py36 job 085de864db tests: Allow bindep and test-setup.sh to run on EL distros 387823b36d Fix max cpu topologies with numa affinity fe25fa13e0 Test numa and vcpu topologies bug: #1910466 4de5a92d4e db: Reintroduce validation of shadow table schema bc71331bca Add --task-log option to nova-manage db archive_deleted_rows 98b01c9a59 Move 'check-cherry-picks' test to gate, n-v check 070e83b749 db: Clean up migration code b5dd59f8f9 db: Synchronize function signatures 1d60cd7e05 db: Copy docs from 'nova.db.*' to 'nova.db.sqlalchemy.*' 7ab2947720 db: Remove 'nova.db.base' module 5819fe46a9 db: Fold in ForeignKey constraints 66daa87339 db: Fold in indexes 3b18b788f2 db: Use module-level imports for sqlalchemy d6cad899ca db: Remove unused DB methods 194df1fa62 db: Remove 'nova.db.sqlalchemy.utils' 6df671fea7 db: Remove dead code d966546516 Add test coverage for API version headers in CORS 6aa580c15f gate: Remove test_evacuate.sh b02a95a18b Allow X-OpenStack-Nova-API-Version header in CORS e59fc77c3d Retry lvm volume and volume group query eb67ec24e3 Handle OPERATION_FAILED error during detach 7c76821499 Add debug log for device detach libvirt error 31491e5bc3 Fix typos in minimum version policy docs 7c478ac099 zuul: Skip block migration with attached volumes tests due to bug #1931702 47bedbb77a Revert "Removing mypy to fix the nova CI" d71dfa8b8d Move fake_notifier impl under NotificationFixture 7085770b20 Test the NotificationFixture 531fa4cd04 Removing mypy to fix the nova CI 375a8452bb api: Log correct client IP if load balancer in use 7a0b2d3482 docs: Explicitly state lack of support for node renaming 5c02091647 requirements: Add types-paramiko 4d8bf15fec libvirt: Set driver_iommu when attaching virtio devices to SEV instance 26d65fc882 libvirt: Do not destroy volume secrets during _hard_reboot bfde686130 Remove unnecessary mocks from unit test 7b11409463 Make test_refresh_associations_* deterministic 0b63f9effe Improve policy doc for supported scope info 2c761066e0 Remove PROJECT_ADMIN limitation from zero-disk and external-network policy 1cc52fd2f2 virt: Add destroy_secrets kwarg to destroy and cleanup 33c8af1f8c Error anti-affinity violation on migrations 7c7a2a142d Deprecate filters that have been replaced by placement filters 5cf06bf33d docs: Remove duplicate ToC entry fc3838a9b3 Change nova doc after Freenode -> OFTC move 5c50a45a1e Fix RequestLevelParams persistence handling in RequestSpec 17ac1a40cb Add test coverage for security group checking 56eb253e9f Honor [neutron]http_retries in the manual client e98994027f hardware: Use image_meta.id within get_mem_encryption_constraint d5ed968826 zuul: Skip swap_volume tests as part of nova-next 740e6f09bf libvirt: Enable 'vmcoreinfo' feature by default 472db13aaf docs: Address TODO b14f6ba62e Use NotificationFixture for legacy notifications too f1f599d098 Create a fixture around fake_notifier 696fbab9e1 tests: Rename 'ImageBackendFixture' to 'LibvirtImageBackendFixture' e2d25eb149 tests: Add os-brick fixture 33be6d4b56 tests: Move libvirt-specific fixtures d0b8028b51 docs: Add releases to libvirt distro support matrix 9d037f7d19 image_meta: Provide image_ref as the id when fetching from instance b28579a7b0 Describe the use of Review-Priority label 0d84833e96 Use the new type HostDomainOpt. 74724b4964 Change minversion of tox to 3.18.0 781612b332 Reject open redirection in the console proxy e1cc0ed978 Add regression test for bug #1928063 212f89a61e tests: Split external service fixtures out c269285568 tests: Move remaining non-libvirt fixtures 2e53c82653 tests: Move ConfFixture d726ef51ec tests: Create 'nova.tests.fixtures' module 150b918251 Replace getargspec with getfullargspec 86af7feed0 Stop leaking ceph df cmd in RBD utils 8b647f1b3f rbd: Get rbd_utils unit tests running again 251e601a4d Fix typo in test_utils 39a617752f Adapt to SQLAlchemy 1.4 67f79fdb44 Add unit test for importing ed25519 ssh key a62dd42c0d libvirt: Delegate OVS plug to os-vif 0b05b838a4 Fix bond_mode enum 802.1ad -> 802.3ad dab4ec1a53 zuul: Remove nova-dsvm-multinode-base 91e53e4c2b zuul: Replace grenade and nova-grenade-multinode with grenade-multinode 51d16adda6 mypy: Add type annotations to 'nova.pci' 00f1d4757e Update SRIOV port pci_slot when unshelving 606d588e3e guestfs: With libguestfs >= v1.41.1 decode returned bytes to string 7317cfbc67 Consolidate device detach error handling 257b4d83d9 Move instance power state check to _detach_with_retry bfe50114e3 Drop support for SQLite < 3.7 bab3c8f3cb Remove references to 'sys.version_info' 3125d4c99c glance: Improve [glance]enable_rbd_download and associated options help text f8e68ddcd9 docs: Document location of nova.conf files b5edc294a1 docs: Add man pages for 'nova-policy' 0997ad15fc vmware: Use oslo.vmware's get_moref_value() dc814a6822 libvirt: Remove dead error handling code a7f2b65d17 Follow up type hints for a634103 c17f1e14cf Enable mypy on libvirt/guest.py 52d6cd941c Move the guest.get_disk test to test_guest e56cc4f439 Replace blind retry with libvirt event waiting in detach bea06123db Test SRIOV port move operations with PCI conflicts cf4b152b6b vmware: Handle empty list attributes on vSphere objects 07a9db5f74 Update min supported service version for Xena. 6ce1272a62 vmware: OptionValue.value cannot be Boolean 6bfa07b9d5 Explaining when a base image is considered unused to avoid confusion why some images aren't deleted. 9e5feb051c docs: Populate "See Also" section with meaningful links 99e5a1ac9a docs: Document options for remaining nova-* commands a3c44c6243 [OVN] Explicitly set nova-next job to ML2/OVS e097c5a792 [OVN] Explicitly set grenade job to ML2/OVS eaf6a828df Update contributor guide for Xena 0a7d3794c6 libvirt: Ignore device already in the process of unplug errors 9d285e0bb4 Switch to new rolevar for run-tempest role 8e5515c1fa Trival change: spell error of Shelve d3d08922c7 Remove unused DeleteFromSelect db api method bf89a23d91 api: Reject requests to force up computes when `done` evacuation records exist db333070b6 Add regression test for bug #1922053 62868aaac7 Neutron fixture: don't clobber profile and vif_details if empty 03ff08c7fe docs: Correct typos in 'nova-manage cells_v2' docs 96bf8a0ab5 docs: Correct typos in 'nova-manage db' docs fe3a04be80 docs: Rewrite 'nova-manage libvirt' docs 5f6aae3753 docs: Rewrite 'nova-manage placement' docs 2f8ab439a7 docs: Rewrite 'nova-manage api_db', 'cell_v2' docs cefa8e0938 docs: Rewrite 'nova-manage db' docs to use proper directives 59e2b38c80 docs: Use proper headers in nova-manage man page 5c396c19cf docs: Follow up for SEV doc e5b264bf7b Bumping min os-brick ver to 4.3.1 e19f6fda58 Follow up from bp/pci-socket-affinity series f35615e921 tests: Remove duplicate policy tests 1748bd2509 tests: Remove useless mocks 6dbc8e5416 tests: Merge flavor tests 0ac74f4e00 Remove references to 'inst_type' 1bf45c4720 Remove (almost) all references to 'instance_type' 48429cc461 tests: Speed up 'servers' API tests 1de6e960af Remove references to 'instance_type' 61256b4f78 Remove 'create_db_entry_for_new_instance' b8ca4d3139 Add Python3 xena unit tests 388498ac5f [neutron] Get only ID and name of the SGs from Neutron 68ad2c67d8 Update master for stable/wallaby 99409375a0 compute: Reject requests to commit intermediary snapshot of an inactive instance e89125a422 docs: Clarify value for 'hw:cpu_realtime' extra spec 387a5753de doc: Use a non-numerical anchor when referencing microversions 4908daed96 libvirt: Simplify device_path check in _detach_encryptor 9dfac32959 docs: Add libvirt misc doc 76549775fe docs: Change formatting of hypervisor config guides 04b8693703 docs: Fold in MDS security flaw doc be03ca7be7 docs: Clarify host-model, host-passthrough differences ee1443bb3f docs: Add CPU models guide 559404c23b trivial: fix word duplication in api ref efd2816619 zuul: Add nova-live-migration-ceph job 4f1b879a68 docs: Change 'add_stylesheet' to 'add_css_file' 20a7c98eff [OVN] Adapt the live-migration job scripts to work with OVN 9f260f1e6e Retry on vmware create_vm when it fails 4dda84eb03 Placeholders for DB migration backports to Wallaby be6927a28f console: Improve logging cf8ae56fab Enable mypy on scheduler/report.py de0e4e7e41 Turn on mypy for nova/network/neutron.py 472825a839 vmware: Handle folder renames in rescue cmd bc0d1c8d63 nova-next: Drop NOVA_USE_SERVICE_TOKEN as it is now True by default 2c19946d06 [ironic] correct capabilities for disk images supported 5e2c31ab78 api: Add support for 'hostname' parameter b2781b98dd Functional tests removed direct post call db524ef74d Address release note nits for cpu-resources series 4ccec62fd1 hardware: Add TODO to remove '(un)pin_cpu_with_siblings' Diffstat (except docs and test files) ------------------------------------- .gitreview | 1 + .zuul.yaml | 280 +- HACKING.rst | 3 + api-guide/source/accelerator-support.rst | 54 + api-guide/source/port_with_resource_request.rst | 10 + api-guide/source/server_concepts.rst | 2 +- api-ref/source/os-cells.inc | 14 + api-ref/source/os-volume-attachments.inc | 18 +- api-ref/source/parameters.yaml | 66 +- api-ref/source/servers-actions.inc | 10 + api-ref/source/servers.inc | 54 +- bindep.txt | 8 +- ...cklist.txt => nova-multi-cell-exclude-list.txt} | 2 +- .../v2.89/attach-volume-to-server-req.json | 7 + .../v2.89/attach-volume-to-server-resp.json | 10 + .../v2.89/list-volume-attachments-resp.json | 22 + .../update-volume-attachment-delete-flag-req.json | 10 + .../v2.89/volume-attachment-detail-resp.json | 11 + .../servers/v2.90/server-action-rebuild-resp.json | 80 + .../servers/v2.90/server-action-rebuild.json | 15 + .../servers/v2.90/server-create-req.json | 30 + .../servers/v2.90/server-create-resp.json | 22 + .../servers/v2.90/server-update-req.json | 8 + .../servers/v2.90/server-update-resp.json | 78 + .../servers/v2.90/servers-details-resp.json | 88 + .../servers/v2.90/servers-list-resp.json | 24 + .../common_payloads/ImageMetaPropsPayload.json | 2 +- .../admin/configuration/hypervisor-basics.rst | 14 - .../admin/configuration/hypervisor-hyper-v.rst | 113 +- .../admin/configuration/hypervisor-ironic.rst | 35 +- .../admin/configuration/hypervisor-powervm.rst | 22 +- .../admin/configuration/hypervisor-virtuozzo.rst | 11 +- .../admin/configuration/hypervisor-vmware.rst | 191 +- .../mitigation-for-Intel-MDS-security-flaws.rst | 128 - .../secure-live-migration-with-qemu-native-tls.rst | 2 +- .../admin/troubleshooting/orphaned-allocations.rst | 9 +- .../{user/upgrade.rst => admin/upgrades.rst} | 127 +- .../contributor/testing/eventlet-profiling.rst | 82 +- .../reference/libvirt-distro-support-matrix.rst | 40 +- .../scheduler-hints-vs-flavor-extra-specs.rst | 2 +- etc/nova/nova-config-generator.conf | 3 +- gate/live_migration/hooks/ceph.sh | 208 -- gate/live_migration/hooks/nfs.sh | 50 - gate/live_migration/hooks/utils.sh | 11 - gate/test_evacuate.sh | 163 - lower-constraints.txt | 37 +- mypy-files.txt | 4 + nova/accelerator/cyborg.py | 136 +- nova/api/metadata/base.py | 4 +- nova/api/openstack/api_version_request.py | 9 +- nova/api/openstack/compute/attach_interfaces.py | 15 +- nova/api/openstack/compute/evacuate.py | 13 +- nova/api/openstack/compute/ips.py | 8 +- nova/api/openstack/compute/migrate_server.py | 30 +- nova/api/openstack/compute/rescue.py | 2 - .../openstack/compute/rest_api_version_history.rst | 27 +- nova/api/openstack/compute/schemas/aggregates.py | 4 +- nova/api/openstack/compute/schemas/evacuate.py | 2 +- nova/api/openstack/compute/schemas/hypervisors.py | 2 +- .../openstack/compute/schemas/migrate_server.py | 2 +- nova/api/openstack/compute/schemas/servers.py | 141 +- nova/api/openstack/compute/schemas/services.py | 4 +- nova/api/openstack/compute/server_groups.py | 2 +- nova/api/openstack/compute/servers.py | 208 +- nova/api/openstack/compute/services.py | 48 +- nova/api/openstack/compute/shelve.py | 20 +- nova/api/openstack/compute/suspend_server.py | 12 +- nova/api/openstack/compute/views/addresses.py | 14 +- nova/api/openstack/compute/views/servers.py | 54 +- nova/api/openstack/compute/volumes.py | 82 +- nova/api/openstack/requestlog.py | 14 +- nova/api/openstack/wsgi.py | 9 + nova/api/validation/extra_specs/hw.py | 194 +- nova/api/validation/extra_specs/hw_rng.py | 2 +- nova/api/validation/extra_specs/null.py | 8 +- nova/api/validation/extra_specs/os.py | 2 +- nova/api/validation/extra_specs/pci_passthrough.py | 11 +- nova/api/validation/extra_specs/quota.py | 133 +- nova/api/validation/parameter_types.py | 39 +- nova/block_device.py | 24 - nova/cmd/common.py | 24 +- nova/cmd/compute.py | 5 +- nova/cmd/manage.py | 530 +++- nova/cmd/policy.py | 40 +- nova/cmd/status.py | 30 +- nova/compute/api.py | 662 ++-- nova/compute/claims.py | 31 +- nova/compute/flavors.py | 29 +- nova/compute/instance_actions.py | 4 + nova/compute/instance_list.py | 2 +- nova/compute/manager.py | 437 ++- nova/compute/migration_list.py | 2 +- nova/compute/resource_tracker.py | 139 +- nova/compute/rpcapi.py | 1 + nova/compute/utils.py | 63 +- nova/conductor/manager.py | 156 +- nova/conductor/tasks/live_migrate.py | 20 +- nova/conductor/tasks/migrate.py | 17 +- nova/conf/compute.py | 3 +- nova/conf/database.py | 114 +- nova/conf/devices.py | 61 +- nova/conf/glance.py | 36 +- nova/conf/imagecache.py | 9 +- nova/conf/libvirt.py | 26 +- nova/conf/netconf.py | 2 +- nova/conf/scheduler.py | 41 +- nova/conf/workarounds.py | 74 +- nova/config.py | 6 +- nova/console/rfb/auth.py | 1 + nova/console/rfb/authvencrypt.py | 37 +- nova/console/securityproxy/rfb.py | 62 +- nova/console/websocketproxy.py | 33 +- nova/context.py | 2 +- nova/db/__init__.py | 13 - nova/db/api.py | 1401 --------- nova/db/{sqlalchemy => api}/__init__.py | 0 nova/db/api/alembic.ini | 89 + nova/db/api/api.py | 50 + .../migrate_repo => api/legacy_migrations}/README | 0 .../legacy_migrations}/__init__.py | 0 .../legacy_migrations}/manage.py | 0 .../legacy_migrations}/migrate.cfg | 0 .../db/api/legacy_migrations/versions/067_train.py | 599 ++++ .../legacy_migrations}/versions/068_placeholder.py | 0 .../legacy_migrations}/versions/069_placeholder.py | 0 .../legacy_migrations}/versions/070_placeholder.py | 0 .../legacy_migrations}/versions/071_placeholder.py | 0 .../legacy_migrations}/versions/072_placeholder.py | 0 .../legacy_migrations}/versions/073_placeholder.py | 0 .../legacy_migrations}/versions/074_placeholder.py | 0 .../legacy_migrations}/versions/075_placeholder.py | 0 .../legacy_migrations}/versions/076_placeholder.py | 0 .../legacy_migrations}/versions/077_placeholder.py | 0 .../legacy_migrations}/versions/078_placeholder.py | 0 .../legacy_migrations}/versions/079_placeholder.py | 0 .../legacy_migrations}/versions/080_placeholder.py | 0 .../legacy_migrations}/versions/081_placeholder.py | 0 .../legacy_migrations}/versions/082_placeholder.py | 0 .../legacy_migrations/versions/083_placeholder.py} | 0 .../legacy_migrations/versions/084_placeholder.py} | 0 .../legacy_migrations/versions/085_placeholder.py} | 0 .../legacy_migrations/versions/086_placeholder.py} | 0 .../legacy_migrations/versions/087_placeholder.py} | 0 .../legacy_migrations/versions}/__init__.py | 0 nova/db/api/migrations/README.rst | 15 + nova/db/api/migrations/env.py | 94 + nova/db/api/migrations/script.py.mako | 32 + .../versions/d67eeaabee36_initial_version.py | 603 ++++ nova/db/api/models.py | 692 +++++ nova/db/base.py | 27 - .../migrate_repo/versions => main}/__init__.py | 0 nova/db/main/alembic.ini | 89 + nova/db/{sqlalchemy => main}/api.py | 1038 ++++--- .../migrate_repo => main/legacy_migrations}/README | 0 .../legacy_migrations}/__init__.py | 0 .../legacy_migrations}/manage.py | 0 .../legacy_migrations}/migrate.cfg | 0 .../main/legacy_migrations/versions/402_train.py | 1602 ++++++++++ .../legacy_migrations/versions/403_placeholder.py} | 0 .../legacy_migrations/versions/404_placeholder.py} | 0 .../legacy_migrations/versions/405_placeholder.py} | 0 .../legacy_migrations/versions/406_placeholder.py} | 0 .../legacy_migrations/versions/407_placeholder.py} | 0 .../legacy_migrations/versions/408_placeholder.py} | 0 .../legacy_migrations/versions/409_placeholder.py} | 0 .../legacy_migrations/versions/410_placeholder.py} | 0 .../legacy_migrations/versions/411_placeholder.py} | 0 .../legacy_migrations/versions/412_placeholder.py} | 0 .../legacy_migrations/versions/413_placeholder.py | 22 + .../legacy_migrations/versions/414_placeholder.py | 22 + .../legacy_migrations/versions/415_placeholder.py | 22 + .../legacy_migrations/versions/416_placeholder.py | 22 + .../legacy_migrations/versions/417_placeholder.py | 22 + .../legacy_migrations/versions/418_placeholder.py | 22 + .../legacy_migrations/versions/419_placeholder.py | 22 + .../legacy_migrations/versions/420_placeholder.py | 22 + .../legacy_migrations/versions/421_placeholder.py | 22 + .../legacy_migrations/versions/422_placeholder.py | 22 + .../legacy_migrations}/versions/__init__.py | 0 nova/db/main/migrations/README.rst | 15 + nova/db/main/migrations/env.py | 111 + nova/db/main/migrations/script.py.mako | 32 + .../versions/8f2f1571d55b_initial_version.py | 1621 ++++++++++ nova/db/{sqlalchemy => main}/models.py | 1192 +++---- nova/db/migration.py | 157 +- .../migrate_repo/versions/067_train.py | 606 ---- nova/db/sqlalchemy/api_models.py | 674 ---- .../sqlalchemy/migrate_repo/versions/402_train.py | 1690 ---------- nova/db/sqlalchemy/migration.py | 180 -- nova/db/sqlalchemy/utils.py | 116 - nova/db/{sqlalchemy => }/types.py | 29 +- nova/db/utils.py | 109 + nova/exception.py | 90 +- nova/hacking/checks.py | 66 +- nova/manager.py | 4 +- nova/middleware.py | 8 +- nova/network/constants.py | 2 + nova/network/model.py | 25 +- nova/network/neutron.py | 769 +++-- nova/network/os_vif_util.py | 1 + nova/notifications/base.py | 8 +- nova/notifications/objects/image.py | 3 +- nova/objects/aggregate.py | 57 +- nova/objects/bandwidth_usage.py | 2 +- nova/objects/block_device.py | 9 +- nova/objects/build_request.py | 19 +- nova/objects/cell_mapping.py | 54 +- nova/objects/compute_node.py | 37 +- nova/objects/console_auth_token.py | 2 +- nova/objects/ec2.py | 2 +- nova/objects/fields.py | 3 +- nova/objects/flavor.py | 58 +- nova/objects/host_mapping.py | 26 +- nova/objects/image_meta.py | 18 +- nova/objects/instance.py | 34 +- nova/objects/instance_action.py | 2 +- nova/objects/instance_fault.py | 2 +- nova/objects/instance_group.py | 37 +- nova/objects/instance_info_cache.py | 2 +- nova/objects/instance_mapping.py | 71 +- nova/objects/instance_numa.py | 4 +- nova/objects/instance_pci_requests.py | 2 +- nova/objects/keypair.py | 27 +- nova/objects/migrate_data.py | 20 +- nova/objects/migration.py | 4 +- nova/objects/migration_context.py | 2 +- nova/objects/network_request.py | 22 +- nova/objects/pci_device.py | 9 +- nova/objects/quotas.py | 104 +- nova/objects/request_spec.py | 135 +- nova/objects/resource.py | 2 +- nova/objects/security_group.py | 7 +- nova/objects/service.py | 24 +- nova/objects/tag.py | 2 +- nova/objects/task_log.py | 2 +- nova/objects/trusted_certs.py | 2 +- nova/objects/vcpu_model.py | 2 +- nova/objects/virt_device_metadata.py | 2 +- nova/objects/virtual_interface.py | 46 +- nova/objects/volume_usage.py | 2 +- nova/pci/devspec.py | 83 +- nova/pci/manager.py | 154 +- nova/pci/request.py | 39 +- nova/pci/stats.py | 148 +- nova/pci/utils.py | 54 +- nova/pci/whitelist.py | 17 +- nova/policies/attach_interfaces.py | 27 +- nova/policies/baremetal_nodes.py | 20 +- nova/policies/base.py | 40 +- nova/policies/deferred_delete.py | 20 +- nova/policies/extended_server_attributes.py | 5 + nova/policies/flavor_access.py | 16 +- nova/policies/floating_ips.py | 36 +- nova/policies/hosts.py | 36 +- nova/policies/hypervisors.py | 41 +- nova/policies/instance_actions.py | 21 +- nova/policies/instance_usage_audit_log.py | 20 +- nova/policies/limits.py | 15 +- nova/policies/multinic.py | 20 +- nova/policies/networks.py | 20 +- nova/policies/rescue.py | 16 +- nova/policies/security_groups.py | 52 +- nova/policies/server_password.py | 20 +- nova/policies/servers.py | 20 - nova/policies/services.py | 24 +- nova/policies/tenant_networks.py | 20 +- nova/policies/volumes.py | 52 +- nova/privsep/fs.py | 15 +- nova/quota.py | 28 +- nova/scheduler/client/report.py | 68 +- nova/scheduler/driver.py | 63 - nova/scheduler/filter_scheduler.py | 493 --- .../filters/aggregate_instance_extra_specs.py | 27 +- nova/scheduler/filters/availability_zone_filter.py | 15 + .../filters/compute_capabilities_filter.py | 16 +- nova/scheduler/filters/type_filter.py | 10 +- nova/scheduler/host_manager.py | 12 +- nova/scheduler/manager.py | 577 +++- nova/scheduler/utils.py | 58 +- nova/storage/rbd_utils.py | 9 +- nova/test.py | 30 +- .../api_paste_fixture.py => fixtures/api_paste.py} | 2 +- .../{unit/conf_fixture.py => fixtures/conf.py} | 0 .../libvirt/fakelibvirt.py => fixtures/libvirt.py} | 160 +- .../libvirt_data.py} | 4 +- .../libvirt_imagebackend.py} | 39 +- .../{unit/policy_fixture.py => fixtures/policy.py} | 2 +- .../v2.89/attach-volume-to-server-req.json.tpl | 7 + .../v2.89/attach-volume-to-server-resp.json.tpl | 10 + .../v2.89/list-volume-attachments-resp.json.tpl | 22 + ...date-volume-attachment-delete-flag-req.json.tpl | 10 + .../os-volumes/v2.89/update-volume-req.json.tpl | 5 + .../v2.89/volume-attachment-detail-resp.json.tpl | 11 + .../v2.90/server-action-rebuild-resp.json.tpl | 80 + .../servers/v2.90/server-action-rebuild.json.tpl | 15 + .../servers/v2.90/server-create-req.json.tpl | 21 + .../servers/v2.90/server-create-resp.json.tpl | 22 + .../servers/v2.90/server-get-resp.json.tpl | 81 + .../servers/v2.90/server-update-req.json.tpl | 8 + .../servers/v2.90/server-update-resp.json.tpl | 78 + .../servers/v2.90/servers-details-resp.json.tpl | 88 + .../servers/v2.90/servers-list-resp.json.tpl | 24 + .../functional/compute/test_live_migration.py | 85 +- .../functional/compute/test_resource_tracker.py | 3 - .../functional/libvirt/test_numa_live_migration.py | 36 +- .../functional/libvirt/test_pci_sriov_servers.py | 181 +- .../functional/libvirt/test_report_cpu_traits.py | 2 +- .../notification_sample_base.py | 29 +- .../test_exception_notification.py | 7 +- .../functional/regressions/test_bug_1522536.py | 6 +- .../functional/regressions/test_bug_1541691.py | 3 +- .../functional/regressions/test_bug_1548980.py | 6 +- .../functional/regressions/test_bug_1552888.py | 3 +- .../functional/regressions/test_bug_1554631.py | 6 +- .../functional/regressions/test_bug_1558866.py | 3 +- .../functional/regressions/test_bug_1595962.py | 10 +- .../functional/regressions/test_bug_1620248.py | 6 +- .../functional/regressions/test_bug_1670627.py | 6 +- .../functional/regressions/test_bug_1671648.py | 19 +- .../functional/regressions/test_bug_1675570.py | 93 +- .../functional/regressions/test_bug_1679750.py | 3 +- .../functional/regressions/test_bug_1682693.py | 3 +- .../functional/regressions/test_bug_1689692.py | 11 +- .../functional/regressions/test_bug_1702454.py | 11 +- .../functional/regressions/test_bug_1713783.py | 12 +- .../functional/regressions/test_bug_1718455.py | 3 +- .../functional/regressions/test_bug_1718512.py | 3 +- .../functional/regressions/test_bug_1719730.py | 3 +- .../functional/regressions/test_bug_1735407.py | 12 +- .../functional/regressions/test_bug_1741125.py | 14 - .../functional/regressions/test_bug_1741307.py | 101 - .../functional/regressions/test_bug_1746483.py | 3 +- .../functional/regressions/test_bug_1764556.py | 5 +- .../functional/regressions/test_bug_1764883.py | 6 +- .../functional/regressions/test_bug_1778305.py | 2 +- .../functional/regressions/test_bug_1780373.py | 3 +- .../functional/regressions/test_bug_1781286.py | 18 +- .../functional/regressions/test_bug_1781710.py | 17 +- .../functional/regressions/test_bug_1784353.py | 3 +- .../functional/regressions/test_bug_1790204.py | 5 +- .../functional/regressions/test_bug_1797580.py | 3 +- .../functional/regressions/test_bug_1806064.py | 7 +- .../functional/regressions/test_bug_1806515.py | 3 - .../functional/regressions/test_bug_1815153.py | 3 +- .../functional/regressions/test_bug_1825034.py | 2 +- .../functional/regressions/test_bug_1835822.py | 8 +- .../functional/regressions/test_bug_1837955.py | 5 +- .../functional/regressions/test_bug_1839560.py | 2 +- .../functional/regressions/test_bug_1843090.py | 10 +- .../functional/regressions/test_bug_1843708.py | 3 +- .../functional/regressions/test_bug_1845291.py | 7 +- .../functional/regressions/test_bug_1852458.py | 3 +- .../functional/regressions/test_bug_1853009.py | 171 + .../functional/regressions/test_bug_1862633.py | 7 +- .../functional/regressions/test_bug_1888395.py | 14 +- .../functional/regressions/test_bug_1893284.py | 3 +- .../functional/regressions/test_bug_1899649.py | 2 +- .../functional/regressions/test_bug_1902925.py | 5 +- .../functional/regressions/test_bug_1914777.py | 3 +- .../functional/regressions/test_bug_1922053.py | 109 + .../functional/regressions/test_bug_1928063.py | 61 + .../functional/regressions/test_bug_1937375.py | 77 + .../functional/regressions/test_bug_1938326.py | 140 + .../functional/regressions/test_bug_1939545.py | 80 + .../test_conf_max_attach_disk_devices.py | 14 - .../functional/test_list_servers_ip_filter.py | 6 +- .../functional/test_server_external_events.py | 9 +- .../functional/test_servers_resource_request.py | 2957 ++++++++++++++++++ .../openstack/compute/admin_only_action_common.py | 3 +- .../openstack/compute/test_attach_interfaces.py | 17 + .../openstack/compute/test_availability_zone.py | 10 +- .../unit/api/openstack/compute/test_disk_config.py | 27 +- .../unit/api/openstack/compute/test_evacuate.py | 26 +- .../api/openstack/compute/test_flavor_access.py | 24 +- .../api/openstack/compute/test_flavor_manage.py | 15 +- .../unit/api/openstack/compute/test_flavors.py | 10 +- .../unit/api/openstack/compute/test_hypervisors.py | 2 +- .../api/openstack/compute/test_instance_actions.py | 27 +- .../compute/test_instance_usage_audit_log.py | 10 +- .../unit/api/openstack/compute/test_keypairs.py | 18 +- .../api/openstack/compute/test_migrate_server.py | 29 +- .../unit/api/openstack/compute/test_quotas.py | 4 +- .../unit/api/openstack/compute/test_rescue.py | 21 +- .../api/openstack/compute/test_security_groups.py | 4 +- .../api/openstack/compute/test_server_actions.py | 103 +- .../api/openstack/compute/test_server_groups.py | 79 +- .../api/openstack/compute/test_server_metadata.py | 72 +- .../openstack/compute/test_server_start_stop.py | 108 +- .../unit/api/openstack/compute/test_server_tags.py | 30 +- .../unit/api/openstack/compute/test_servers.py | 1896 ++++++------ .../unit/api/openstack/compute/test_services.py | 34 +- .../unit/api/openstack/compute/test_shelve.py | 27 +- .../openstack/compute/test_simple_tenant_usage.py | 67 +- .../api/openstack/compute/test_suspend_server.py | 14 +- .../unit/api/openstack/compute/test_volumes.py | 108 +- .../cmd/{test_cmd_db_blocks.py => test_compute.py} | 11 +- .../conductor/tasks/test_cross_cell_migrate.py | 2 +- .../unit/conductor/tasks/test_live_migrate.py | 71 +- .../unit/db/{test_db_api.py => main/test_api.py} | 629 ++-- .../test_libvirt.py} | 2 +- .../test_notifications.py} | 19 +- .../notifications/objects/test_notification.py | 4 +- .../unit/notifications/objects/test_service.py | 8 +- .../unit/objects/test_instance_device_metadata.py | 2 +- .../unit/objects/test_instance_pci_requests.py | 2 +- .../unit/scheduler/weights/test_cross_cell.py | 2 +- .../unit/virt/libvirt/fake_os_brick_connector.py | 42 - .../unit/virt/libvirt/test_machine_type_utils.py | 3 +- .../vmwareapi/test_ds_util_datastore_selection.py | 22 +- nova/utils.py | 8 +- nova/virt/block_device.py | 53 +- nova/virt/disk/api.py | 4 +- nova/virt/disk/vfs/guestfs.py | 9 +- nova/virt/driver.py | 26 +- nova/virt/fake.py | 5 +- nova/virt/hardware.py | 135 +- nova/virt/hyperv/driver.py | 9 +- nova/virt/ironic/driver.py | 27 +- nova/virt/libvirt/config.py | 10 + nova/virt/libvirt/designer.py | 14 +- nova/virt/libvirt/driver.py | 989 ++++-- nova/virt/libvirt/guest.py | 124 +- nova/virt/libvirt/host.py | 39 +- nova/virt/libvirt/migration.py | 9 +- nova/virt/libvirt/vif.py | 124 +- nova/virt/libvirt/volume/iscsi.py | 3 +- nova/virt/libvirt/volume/net.py | 40 +- nova/virt/powervm/driver.py | 1 + nova/virt/vmwareapi/driver.py | 12 +- nova/virt/vmwareapi/ds_util.py | 101 +- nova/virt/vmwareapi/imagecache.py | 4 +- nova/virt/vmwareapi/vif.py | 2 - nova/virt/vmwareapi/vm_util.py | 96 +- nova/virt/vmwareapi/vmops.py | 44 +- nova/virt/vmwareapi/volumeops.py | 28 +- playbooks/legacy/nova-grenade-multinode/post.yaml | 15 - playbooks/legacy/nova-grenade-multinode/run.yaml | 65 - playbooks/legacy/nova-live-migration/post.yaml | 15 - playbooks/legacy/nova-live-migration/run.yaml | 60 - ...-to-os-volume-attachments-a23818d5b11f15a1.yaml | 8 + ...-nova-manage-bdm-commands-19f360dd85c1e81d.yaml | 16 + .../notes/archive-sleep-a0cc3d3e7784e5df.yaml | 11 + .../notes/archive-task-logs-fa9dd7c5859b5e30.yaml | 25 + .../notes/bug-1821755-7bd03319e34b6b10.yaml | 11 + .../notes/bug-1851545-781c358939d96cea.yaml | 12 + .../notes/bug-1853009-99414e14d1491b5f.yaml | 7 + ...vcpu-topologies-with-numa-9a9ceb1b0fc7c33d.yaml | 23 + .../notes/bug-1939604-547c729b7741831b.yaml | 5 + ...roxy-reject-open-redirect-4ac0a7895acca7eb.yaml | 19 + ...t-implemented-return-code-bf8beea51705271b.yaml | 8 + .../notes/cpu-resources-d4e6a0c12681fa87.yaml | 35 +- .../deprecate-AZ-filter-28406abc0135c1c3.yaml | 18 + ...-image-download-ext-point-cd5809e11bbd09d3.yaml | 2 +- ...eprecate-xen-driver-train-bd57a16fa51ab679.yaml | 2 +- ...base-use_db_reconnect-opt-7e0062d3da76032a.yaml | 9 + .../drop-oslo_db-use_tpool-48542a28d10e1bae.yaml | 8 + ...rough-for-cavium-thunderx-8fbd1c40718569e2.yaml | 12 + .../notes/generic_mdevs-0e1b3ef8385f7fae.yaml | 13 + .../notes/generic_mdevs_2-d1b1c71e8035527f.yaml | 10 + ...te-ovs-plugging-to-os-vif-6adc0398a0e0df58.yaml | 28 + .../libvirt-disable-apic-39599bdc2d110a1f.yaml | 13 + ...event-based-device-detach-23ac037004d753b1.yaml | 11 + .../notes/libvirt-vmcoreinfo-3be69e21dfe7dbd2.yaml | 10 + ...nds-disable_native_luksv1-18773636b414970e.yaml | 6 + ...e-rbd_volume_local_attach-ebdf9cf313344a45.yaml | 6 + .../notes/microversion-2-90-59fb6d4ec420b9f4.yaml | 24 + ...e-bug-1841481-race-window-f76912d4985770ad.yaml | 13 + .../releasenotes/notes/bochs-ffaa289da97d08c8.yaml | 7 + .../remove-caching-scheduler-cfe0985b5a58bef4.yaml | 4 +- ...deprecated-scheduler-opts-37afb63a94e8b47e.yaml | 17 + ...net-api-microversion-1.36-1129fe4afc949075.yaml | 7 + .../notes/smartnic-support-0339efe4b68075fe.yaml | 9 + .../notes/switch-to-alembic-ed5c64f62b6c91a3.yaml | 25 + .../notes/xena-prelude-515ee8a9e1f71c18.yaml | 43 + releasenotes/source/index.rst | 1 + releasenotes/source/wallaby.rst | 6 + requirements.txt | 35 +- roles/run-evacuate-hook/tasks/main.yaml | 20 +- test-requirements.txt | 3 +- tools/check-cherry-picks.sh | 5 - tools/db/schema_diff.py | 283 -- tools/generate-schemas | 123 - tools/reserve-migrations.py | 75 - tools/test-setup.sh | 35 + tox.ini | 39 +- 756 files changed, 42782 insertions(+), 30250 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index 4d943060f8..a8bed744fb 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,2 @@ -# The order of packages is significant, because pip processes them in the order -# of appearance. Changing the order has an impact on the overall integration -# process, which may cause wedges in the gate later. - -pbr>=5.5.0 # Apache-2.0 -SQLAlchemy>=1.2.19 # MIT +pbr>=5.5.1 # Apache-2.0 +SQLAlchemy>=1.4.13 # MIT @@ -8 +4 @@ decorator>=4.1.0 # BSD -eventlet>=0.26.1 # MIT +eventlet>=0.30.1 # MIT @@ -21,0 +18 @@ sqlalchemy-migrate>=0.13.0 # Apache-2.0 +alembic>=1.5.0 # MIT @@ -29 +26 @@ keystoneauth1>=3.16.0 # Apache-2.0 -python-neutronclient>=6.7.0 # Apache-2.0 +python-neutronclient>=7.1.0 # Apache-2.0 @@ -31 +28 @@ python-glanceclient>=2.8.0 # Apache-2.0 -requests>=2.23.0 # Apache-2.0 +requests>=2.25.1 # Apache-2.0 @@ -35,2 +32,2 @@ oslo.cache>=1.26.0 # Apache-2.0 -oslo.concurrency>=4.3.0 # Apache-2.0 -oslo.config>=6.8.0 # Apache-2.0 +oslo.concurrency>=4.4.0 # Apache-2.0 +oslo.config>=8.6.0 # Apache-2.0 @@ -40 +37 @@ oslo.reports>=1.18.0 # Apache-2.0 -oslo.serialization>=4.0.1 # Apache-2.0 +oslo.serialization>=4.1.0 # Apache-2.0 @@ -42,2 +39,2 @@ oslo.upgradecheck>=1.3.0 -oslo.utils>=4.7.0 # Apache-2.0 -oslo.db>=4.44.0 # Apache-2.0 +oslo.utils>=4.8.0 # Apache-2.0 +oslo.db>=10.0.0 # Apache-2.0 @@ -46 +43 @@ oslo.messaging>=10.3.0 # Apache-2.0 -oslo.policy>=3.6.0 # Apache-2.0 +oslo.policy>=3.7.0 # Apache-2.0 @@ -49 +46 @@ oslo.i18n>=5.0.1 # Apache-2.0 -oslo.service>=2.4.0 # Apache-2.0 +oslo.service>=2.5.0 # Apache-2.0 @@ -54,2 +51,2 @@ oslo.versionedobjects>=1.35.0 # Apache-2.0 -os-brick>=4.2.0 # Apache-2.0 -os-resource-classes>=0.4.0 # Apache-2.0 +os-brick>=4.3.1 # Apache-2.0 +os-resource-classes>=1.1.0 # Apache-2.0 @@ -57 +54 @@ os-traits>=2.5.0 # Apache-2.0 -os-vif>=1.14.0 # Apache-2.0 +os-vif>=1.15.2 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index 9f695c6124..44cb2bacf7 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -6,0 +7 @@ mypy>=0.761 # MIT +types-paramiko>=0.1.3 # Apache-2.0 @@ -27 +28 @@ wsgi-intercept>=1.7.0 # MIT License -oslo.vmware>=2.17.0 # Apache-2.0 +oslo.vmware>=3.6.0 # Apache-2.0
participants (1)
-
no-reply@openstack.org