We are amped to announce the release of: nova 18.1.0: Cloud computing fabric controller This release is part of the rocky stable release series. Download the package from: https://tarballs.openstack.org/nova/ For more details, please see below. 18.1.0 ^^^^^^ Upgrade Notes ************* * The "nova-manage db online_data_migrations" command now returns exit status 2 in the case where some migrations failed (raised exceptions) and no others were completed successfully from the last batch attempted. This should be considered a fatal condition that requires intervention. Exit status 1 will be returned in the case where the "--max-count" option was used and some migrations failed but others succeeded (updated at least one row), because more work may remain for the non-failing migrations, and their completion may be a dependency for the failing ones. The command should be reiterated while it returns exit status 1, and considered completed successfully only when it returns exit status 0. Bug Fixes ********* * The "long_rpc_timeout" configuration option is now used for the RPC call to the scheduler to select a host. This is in order to avoid a timeout when scheduling multiple servers in a single request and/or when the scheduler needs to process a large number of hosts. * A new "[workarounds]/report_ironic_standard_resource_class_inventory" configuration option has been added. Starting in the 16.0.0 Pike release, ironic nodes can be scheduled using custom resource classes rather than the standard resource classes VCPU, MEMORY_MB and DISK_GB: https://docs.openstack.org/ironic/rocky/install/configure-nova- flavors.html However, existing ironic instances require a data migration which can be achieved either by restarting "nova-compute" services managing ironic nodes or running "nova-manage db ironic_flavor_migration". The completion of the data migration can be checked by running the "nova-status upgrade check" command and checking the "Ironic Flavor Migration" result. Once all data migrations are complete, you can set this option to False to stop reporting VCPU, MEMORY_MB and DISK_GB resource class inventory to the Placement service so that scheduling will only rely on the custom resource class for each ironic node, as described in the document above. Note that this option does not apply starting in the 19.0.0 Stein release since the ironic compute driver no longer reports standard resource class inventory regardless of configuration. Alternatives to this workaround would be unsetting "memory_mb" and/or "vcpus" properties from ironic nodes, or using host aggregates to segregate VM from BM compute hosts and restrict flavors to those aggregates, but those alternatives might not be feasible at large scale. See related bug https://bugs.launchpad.net/nova/+bug/1796920 for more details. * When testing whether direct IO is possible on the backing storage for an instance, Nova now uses a block size of 4096 bytes instead of 512 bytes, avoiding issues when the underlying block device has sectors larger than 512 bytes. See bug https://launchpad.net/bugs/1801702 for details. * The "os-simple-tenant-usage" pagination has been fixed. In some cases, nova usage-list would have returned incorrect results because of this. See bug https://launchpad.net/bugs/1796689 for details. Changes in nova 18.0.3..18.1.0 ------------------------------ 25dc6a4 Remove GROUP BY clause from CellMapping.get_by_project_id 7ef3304 Add secret=true to fixed_key configuration parameter cbb9eb5 Handle tags in _bury_in_cell0 58d3ac0 Only warn about not having computes nodes once in rpcapi bbc431f Ignore MoxStubout deprecation warnings 3028d25 Create BDMs/tags in cell with instance when over-quota 5b7e904 Add functional regression test for bug 1806064 899b4ca Note the aggregate allocation ratio restriction in scheduler docs 0208d64 Fix InstanceNotFound during _destroy_evacuated_instances 83d74db Add functional regression test for bug 1794996 7e6375c Add a bug tag for nova doc d571e43 Remove unnecessary redirect e54c5fb Add description of custom resource classes 4b5a21b Use long_rpc_timeout in select_destinations RPC call 031f04a Imported Translations from Zanata 99b1b3f Don't use private interface in oslo.service c689c09 Default embedded instance.flavor.is_public attribute 386e574 Make supports_direct_io work on 4096b sector size e90e892 Consider root id is None in the database case 2ddb689 Add recreate test for bug 1799892 7520d15 Handle unicode characters in migration params 4c0342b Mention meta key suffix in tenant isolation with placement docs 74ed2fe Harden placement init under wsgi 980013d Properly track local root disk usage during moves d4ec966 Add regression test for bug 1796737 26c5ee1 Provide allocation_ratio/reserved amounts from update_provider_tree() 57ca928 Add functional recreate test for bug 1799727 133b194 Fix os-simple-tenant-usage result order 732b057 Update resources once in update_available_resource 954b200 Don't persist RequestSpec.requested_destination cb9c96f Add regression test for bug 1797580 dd8354e Handle online_data_migrations exceptions 940034c Fix NoneType error in _notify_volume_usage_detach dfbcf5e Handle IndexError in _populate_neutron_binding_profile 8e463aa Time how long select_destinations() takes in conductor f7d0a76 [stable-only] Add report_ironic_standard_resource_class_inventory option 3d4e4a4 Set defult value of num_nvme_discover_tries=5 057a05d De-dupe subnet IDs when calling neutron /subnets API 74f1db7 placement: Always reset conf.CONF when starting the wsgi app b35b812 Wait for network-vif-plugged on resize revert 3c2f07f Validate transport_url in nova-manage cell_v2 commands 1c1c373 Refix disk size during live migration with disk over-commit 5e69018 hardware: fix memory check usage for small/large pages Diffstat (except docs and test files) ------------------------------------- .../v2.40/simple-tenant-usage-get-all.json | 68 ++++++ nova/api/openstack/compute/simple_tenant_usage.py | 3 +- nova/api/openstack/placement/db_api.py | 6 +- .../placement/objects/resource_provider.py | 50 ++++- nova/api/openstack/placement/wsgi.py | 5 + nova/cmd/manage.py | 40 +++- nova/compute/manager.py | 20 +- nova/compute/resource_tracker.py | 39 ++-- nova/compute/rpcapi.py | 13 +- nova/conductor/manager.py | 40 +++- nova/conf/key_manager.py | 1 + nova/conf/libvirt.py | 2 +- nova/conf/rpc.py | 1 + nova/conf/workarounds.py | 33 +++ nova/locale/ko_KR/LC_MESSAGES/nova.po | 28 ++- nova/network/neutronv2/api.py | 21 +- nova/objects/cell_mapping.py | 16 +- nova/objects/instance.py | 20 +- nova/objects/request_spec.py | 8 +- nova/privsep/utils.py | 4 +- nova/scheduler/client/__init__.py | 3 - nova/scheduler/rpcapi.py | 4 +- nova/scheduler/utils.py | 33 --- .../placement/db/test_allocation_candidates.py | 107 +++++++++ .../v2.40/simple-tenant-usage-get-all.json.tpl | 68 ++++++ .../functional/compute/test_resource_tracker.py | 99 ++++++++ .../functional/regressions/test_bug_1794996.py | 179 +++++++++++++++ .../functional/regressions/test_bug_1797580.py | 97 ++++++++ .../functional/regressions/test_bug_1806064.py | 140 ++++++++++++ .../functional/regressions/test_bug_1806515.py | 69 ++++++ .../unit/api/openstack/placement/test_db_api.py | 52 +++++ .../api_samples_test_base/test_compare_result.py | 2 +- nova/utils.py | 43 ++++ nova/virt/driver.py | 18 ++ nova/virt/fake.py | 33 +++ nova/virt/hardware.py | 89 +++++--- nova/virt/ironic/driver.py | 33 +-- nova/virt/libvirt/driver.py | 19 +- nova/virt/libvirt/guest.py | 4 +- ...meout-select_destinations-9712e8690160928f.yaml | 7 + ..._resource_class_inventory-85c1fc629a08038d.yaml | 35 +++ .../notes/bug-1801702-c8203d3d55007deb.yaml | 8 + ...e-tenant-usage-pagination-393ed6e7d0e31594.yaml | 6 + ...ne-migrations-exit-status-9de5ea7836d0e368.yaml | 13 ++ 75 files changed, 2262 insertions(+), 344 deletions(-)