We are glad to announce the release of: nova 15.1.0: Cloud computing fabric controller This release is part of the ocata release series. Download the package from: https://tarballs.openstack.org/nova/ For more details, please see below. 15.1.0 ^^^^^^ Known Issues ************ * Nova does not support running the nova-api service under mod_wsgi or uwsgi in Ocata. There are some experimental scripts that have been available for years which allow you do to this, but doing so in Ocata results in possible failures to list and show instance details in a cells v2 setup. See bug 1661360 for details. (https://bugs.launchpad.net/nova/+bug/1661360) Upgrade Notes ************* * This release contains a schema migration for the "nova_api" database in order to address bug 1738094: https://bugs.launchpad.net/nova/+bug/1738094 The migration is optional and can be postponed if you have not been affected by the bug. The bug manifests itself through "Data too long for column 'spec'" database errors. Bug Fixes ********* * The fix for `OSSA-2017-005`_ (CVE-2017-16239) was too far-reaching in that rebuilds can now fail based on scheduling filters that should not apply to rebuild. For example, a rebuild of an instance on a disabled compute host could fail whereas it would not before the fix for CVE-2017-16239. Similarly, rebuilding an instance on a host that is at capacity for vcpu, memory or disk could fail since the scheduler filters would treat it as a new build request even though the rebuild is not claiming *new* resources. Therefore this release contains a fix for those regressions in scheduling behavior on rebuild while maintaining the original fix for CVE-2017-16239. Note: The fix relies on a "RUN_ON_REBUILD" variable which is checked for all scheduler filters during a rebuild. The reasoning behind the value for that variable depends on each filter. If you have out- of-tree scheduler filters, you will likely need to assess whether or not they need to override the default value (False) for the new variable. * Fixes bug 1695861 in which the aggregate API accepted requests that have availability zone names including ':'. With this fix, a creation of an availabilty zone whose name includes ':' results in a "400 BadRequest" error response. (https://bugs.launchpad.net/nova/+bug/1695861) * This release includes a fix for bug 1733886 which was a regression introduced in the 2.36 API microversion where the "force" parameter was missing from the "PUT /os-quota-sets/{tenant_id}" API request schema so users could not force quota updates with microversion 2.36 or later. The bug is now fixed so that the "force" parameter can once again be specified during quota updates. There is no new microversion for this change since it is an admin-only API. (https://bugs.launchpad.net/nova/+bug/1733886) Docutils System Messages ************************ Changes in nova 15.0.8..15.1.0 ------------------------------ 4f0ff43 Make request_spec.spec MediumText 901377b Fix 'force' parameter in os-quota-sets PUT schema 10bc4fd Get original image_id from volume for volume-backed instance rebuild e26c915 Only query BDMs once in API during rebuild fe5e3e7 Add regression test for rebuilding a volume-backed server bbfc423 Refined fix for validating image on rebuild 1905407 Document the real behavior of notify_on_state_change 324d57b Update bindep.txt for doc builds 4d7acf3 Add release note for running nova-api under wsgi in Ocata c53df19 fix nova accepting invalid availability zone name with ':' 286fa12 Call terminate_connection when shelve_offloading 1bfc26b Skip test_rebuild_server_in_error_state for cells v1 Diffstat (except docs and test files) ------------------------------------- api-ref/source/parameters.yaml | 3 +- bindep.txt | 7 +- devstack/tempest-dsvm-cells-rc | 3 + .../v2.36/quotas-show-defaults-get-resp.json | 15 ++++ .../v2.36/quotas-show-detail-get-resp.json | 55 +++++++++++++ .../os-quota-sets/v2.36/quotas-show-get-resp.json | 15 ++++ .../v2.36/quotas-update-force-post-req.json | 6 ++ .../v2.36/quotas-update-force-post-resp.json | 14 ++++ .../v2.36/quotas-update-post-req.json | 5 ++ .../v2.36/quotas-update-post-resp.json | 14 ++++ .../v2.36/user-quotas-show-get-resp.json | 15 ++++ .../v2.36/user-quotas-update-post-req.json | 6 ++ .../v2.36/user-quotas-update-post-resp.json | 14 ++++ .../openstack/compute/rest_api_version_history.rst | 6 ++ nova/api/openstack/compute/schemas/aggregates.py | 4 +- nova/api/openstack/compute/schemas/quota_sets.py | 2 +- nova/api/validation/parameter_types.py | 30 +++++++ nova/api/validation/validators.py | 27 +++++++ nova/compute/api.py | 50 +++++++++--- nova/compute/manager.py | 10 ++- nova/conf/notifications.py | 15 ++-- .../versions/031_request_specs_spec_mediumtext.py | 25 ++++++ nova/db/sqlalchemy/api_models.py | 2 +- nova/scheduler/filters/__init__.py | 22 ++++- nova/scheduler/filters/affinity_filter.py | 12 +++ .../aggregate_image_properties_isolation.py | 2 + .../filters/aggregate_instance_extra_specs.py | 2 + .../filters/aggregate_multitenancy_isolation.py | 2 + nova/scheduler/filters/all_hosts_filter.py | 2 + nova/scheduler/filters/availability_zone_filter.py | 2 + .../filters/compute_capabilities_filter.py | 2 + nova/scheduler/filters/compute_filter.py | 2 + nova/scheduler/filters/core_filter.py | 2 + nova/scheduler/filters/disk_filter.py | 4 + nova/scheduler/filters/exact_core_filter.py | 2 + nova/scheduler/filters/exact_disk_filter.py | 2 + nova/scheduler/filters/exact_ram_filter.py | 2 + nova/scheduler/filters/image_props_filter.py | 2 + nova/scheduler/filters/io_ops_filter.py | 2 + nova/scheduler/filters/isolated_hosts_filter.py | 2 + nova/scheduler/filters/json_filter.py | 3 + nova/scheduler/filters/metrics_filter.py | 2 + nova/scheduler/filters/num_instances_filter.py | 2 + nova/scheduler/filters/numa_topology_filter.py | 2 + nova/scheduler/filters/pci_passthrough_filter.py | 2 + nova/scheduler/filters/ram_filter.py | 2 + nova/scheduler/filters/retry_filter.py | 4 + nova/scheduler/filters/trusted_filter.py | 2 + nova/scheduler/filters/type_filter.py | 4 + nova/scheduler/host_manager.py | 9 ++- nova/scheduler/utils.py | 13 +++ .../quotas-update-force-resp.json.tpl | 19 ----- .../v2.36/quotas-show-defaults-get-resp.json.tpl | 15 ++++ .../v2.36/quotas-show-detail-get-resp.json.tpl | 55 +++++++++++++ .../v2.36/quotas-show-get-resp.json.tpl | 15 ++++ .../v2.36/quotas-update-force-post-req.json.tpl | 6 ++ .../v2.36/quotas-update-force-post-resp.json.tpl | 14 ++++ .../v2.36/quotas-update-post-req.json.tpl | 5 ++ .../v2.36/quotas-update-post-resp.json.tpl | 14 ++++ .../v2.36/user-quotas-show-get-resp.json.tpl | 15 ++++ .../v2.36/user-quotas-update-post-req.json.tpl | 6 ++ .../v2.36/user-quotas-update-post-resp.json.tpl | 14 ++++ .../functional/regressions/test_bug_1732947.py | 93 ++++++++++++++++++++++ .../unit/api/openstack/compute/test_aggregates.py | 15 ++++ ...-1661360-wsgi-known-issue-ee439d193a4b56ad.yaml | 10 +++ ...ne-validate-image-rebuild-6d730042438eec10.yaml | 20 +++++ .../notes/bug-1695861-ebc8a0aa7a87f7e0.yaml | 9 +++ ...-os-quota-sets-force-2.36-5866924621ecc857.yaml | 12 +++ ...uest_specs.spec-migration-22d3421ea1536a37.yaml | 11 +++ 78 files changed, 883 insertions(+), 70 deletions(-)