We are glad to announce the release of: blazar 3.0.0: Reservation Service for OpenStack clouds This release is part of the stein release series. The source is available from: https://git.openstack.org/cgit/openstack/blazar Download the package from: https://tarballs.openstack.org/blazar/ Please report issues through: https://bugs.launchpad.net/blazar/+bugs For more details, please see below. 3.0.0 ^^^^^ New Features * Added a new resource plugin supporting floating IPs. This plugin enables users to reserve floating IPs from Neutron. To try the plugin, add "virtual:floatingip" to the "[manager]/plugins" configuration option in "blazar.conf". For the API schema, see details of the APIs in the Lease API reference and Floating IP API reference. Note that this feature is available as a preview but is not yet complete. The Blazar CLI does not yet support it, documentation is incomplete, and the Update Lease API is not implemented. Floating IP reservation will be fully completed in the next release. (https://developer.openstack.org/api- ref/reservation/v1/index.html#leases) (https://developer.openstack.org/api-ref/reservation/v1/index.html #floating-ips) Changes in blazar 2.0.0..3.0.0 ------------------------------ 27c3aea Add a release note for the floating IP plugin 748017f Use os_region_name to select Neutron endpoint 6c2053f Prevent the delete floating IP API from deleting reserved floating ips 59b0968 Expose floatingip APIs and virtual:floatingip resources 9e963f8 Support on_start and on_end method in FloatingIPPlugin class 412787c Support reserve_resource in floatingip_plugin ee8908c Create tables for floating IP reservations f71d028 Add floatingip plugin to support floating IP resource 8457896 Add floatingips table for floating IP resources 2bd5b65 Expose placement exception code to end users 4b6190f Use oslo_serialization.jsonutils.dump_as_bytes() d45a7f7 Distinguish hypervisor_hostname and service_name 122c61a Expose instance reservation affinity support 49f78f2 Consider affinity=True in reallocation b5c4acb Add FloatingIPPool class for neutron client dd3f3e3 Add BlazarNeutronClient base class 80938df Spec: Floating IP reservation plugin bf57492 Do not execute event of transitional lease 81f3ba9 Support adding to existing reservation inventory b7e7267 Consider the number of instances for reservation inventory c9cb33d Change update_host_allocations() for new affinity 9160ada Update placement client unit tests 9bcbded Prevent race during instance deletion 0dfeabe Update json module to jsonutils ef1729b add python 3.7 unit test job a21f88e Change pickup_hosts() for affinity=True/None 00760ae Prevent leases from being deleted during event execution 3ef8b66 Move hosts back to freepool in case of failure 1855e05 Call placement after instance delete 7dc9a6a Use hypervisor_hostname for host name 74ef135 Add more details to exception messages 3d22669 Use LOG.exception in except block in status module 41efc33 Raise error if resource provider is not found 9a22d11 Add a release note for the List and Get Allocation APIs a3aff12 Support reservation_id parameter in List and Get Allocation API 7a491b8 Support lease_id parameter in List and Get Allocations API 5dd2fd1 Expose List/Get Allocations API 201dc7e Implement list and get allocations methods to compute hosts plugin 848a687 Pass query parameters in GET request to list handler 469ddca Change "Resource Allocation API" spec 37ff8b2 Use template for lower-constraints 3c145a4 Enable mutable config in blazar 793bb58 Fix typo in spec ff94c95 Set the min and max value of IntOpt config options 265872f Change openstack-dev to openstack-discuss e90cc65 Use placement inventory for instance reservation 900a17c Return 401 error for invalid token instead of 204 9a70bb2 Change openstack-dev to openstack-discuss c023e36 Fix incorrect response returned by the Update Lease API 64caeb6 Fix enabled log_exchange issue ef9764e Update config group for option aggregate_freepool_name 65ed774 Correct spelling mistakes 82b5526 Fix small typo in test case class name 3c3f943 Move blazar-status docs to admin section 6e412b7 Add new hosts to aggregate when updating an active reservation 604b715 Add blazar-status upgrade check command framework f60f0a8 Create and delete reservation provider ebb95f6 Adds subnormal path for placement client (2) 5e11476 Adds subnormal path for placement client (1) 99924bd Add update/delete resource inventory c491da2 Improve error message for AggregateAlreadyHasHost exception eaa735f Add create/delete resource class 3c8a29c Add create/delete reservation provider 6ca69c0 Allow terminating leases in ERROR state when start_lease failed 74c5363 Allow leases to transition to ERROR status when events fail 8d2f4a0 Allow terminating a lease in ERROR state 284493c Increment versioning with pbr instruction 04da560 add python 3.6 unit test job 2f85187 switch documentation job to new PTI 8294cfb import zuul job settings from project-config 77c1a2b Handle requirements set to empty strings a2e5e2d Fix py36 unit tests c49aa9d Remove nose dependency 0b293c3 Mark the ZeroMQ driver deprecated 3fdac0d Fix order of arguments in assertEqual 44d2913 Add lease_opts to the global option list 9e26f79 Create directory for Stein specs 20a3bce Add Rocky release note page b6eb8ee Fix default values provided as keyword arguments 55ff472 Rename scalar relationships to use singular names 29d28fe Raise database exception instead of returning None 0429ac8 Close session after updating lease statuses Diffstat (except docs and test files) ------------------------------------- .zuul.yaml | 14 +- api-ref/source/v1/floatingips.inc | 162 +++++ api-ref/source/v1/hosts.inc | 81 +++ api-ref/source/v1/index.rst | 1 + api-ref/source/v1/parameters.yaml | 100 ++++ blazar/api/app.py | 20 +- blazar/api/v1/app.py | 20 +- blazar/api/v1/floatingips/__init__.py | 0 blazar/api/v1/floatingips/service.py | 57 ++ blazar/api/v1/floatingips/v1_0.py | 58 ++ blazar/api/v1/leases/service.py | 5 +- blazar/api/v1/leases/v1_0.py | 14 +- blazar/api/v1/oshosts/service.py | 24 +- blazar/api/v1/oshosts/v1_0.py | 26 +- blazar/api/v1/utils.py | 21 +- blazar/api/v2/app.py | 7 +- blazar/cmd/api.py | 5 +- blazar/cmd/manager.py | 3 +- blazar/cmd/status.py | 53 ++ blazar/config.py | 3 +- blazar/db/api.py | 101 ++++ .../versions/75a74e4539cb_update_lease_status.py | 2 + ...593f3656974_no_affinity_instance_reservation.py | 44 ++ .../versions/e069c014356d_add_floatingip.py | 54 ++ .../f4084140f608_add_floatingip_reservation.py | 82 +++ blazar/db/sqlalchemy/api.py | 277 +++++++++ blazar/db/sqlalchemy/models.py | 108 +++- blazar/db/sqlalchemy/utils.py | 71 ++- blazar/db/utils.py | 20 +- blazar/manager/exceptions.py | 32 +- blazar/manager/floatingips/__init__.py | 0 blazar/manager/floatingips/rpcapi.py | 53 ++ blazar/manager/leases/rpcapi.py | 4 +- blazar/manager/oshosts/rpcapi.py | 13 +- blazar/manager/service.py | 32 +- blazar/opts.py | 1 + blazar/plugins/base.py | 10 + blazar/plugins/floatingips/__init__.py | 15 + blazar/plugins/floatingips/floatingip_plugin.py | 228 +++++++ blazar/plugins/instances/instance_plugin.py | 429 ++++++++++---- blazar/plugins/oshosts/host_plugin.py | 111 +++- blazar/policies/__init__.py | 2 + blazar/policies/floatingips.py | 61 ++ blazar/policies/oshosts.py | 15 + blazar/status.py | 34 +- .../plugins/floatingips/test_floatingip_plugin.py | 511 ++++++++++++++++ .../plugins/instances/test_instance_plugin.py | 654 +++++++++++++++++---- .../plugins/oshosts/test_physical_host_plugin.py | 385 +++++++++++- blazar/utils/openstack/exceptions.py | 35 ++ blazar/utils/openstack/neutron.py | 145 +++++ blazar/utils/openstack/nova.py | 72 ++- blazar/utils/openstack/placement.py | 229 +++++++- blazar/utils/plugins.py | 31 + devstack/plugin.sh | 2 +- .../floatingips/floatingip-create-req.json | 4 + .../floatingips/floatingip-create-resp.json | 11 + .../floatingips/floatingip-details-resp.json | 11 + .../floatingips/floatingip-list-resp.json | 23 + lower-constraints.txt | 5 +- ...ocated-hosts-to-aggregate-95bb75410afc6b8d.yaml | 6 + ...s-upgrade-check-framework-895079486d8085f2.yaml | 13 + .../floatingip-reservation-6c2f3c3ad8843948.yaml | 16 + ...ve-hosts-back-to-freepool-041fcda9fb3fc6c3.yaml | 7 + .../notes/multi-freepools-9d88b1f79c330a3c.yaml | 2 +- ...nity-instance-reservation-d356e33088772ea3.yaml | 24 + ...vent-delete-during-events-c206a8f0a116798c.yaml | 7 + .../resource-allocation-api-f2fff51fc4556cd4.yaml | 11 + releasenotes/source/index.rst | 1 + releasenotes/source/rocky.rst | 10 + releasenotes/source/unreleased.rst | 3 - requirements.txt | 3 + setup.cfg | 9 +- test-requirements.txt | 2 +- 108 files changed, 6295 insertions(+), 584 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index 3c66364..386459b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -23,0 +24 @@ oslo.service!=1.28.1,>=1.24.0 # Apache-2.0 +oslo.upgradecheck>=0.1.0 # Apache-2.0 @@ -24,0 +26 @@ oslo.utils>=3.33.0 # Apache-2.0 +python-neutronclient>=6.0.0 # Apache-2.0 @@ -30,0 +33 @@ requests>=2.18.4 # Apache-2.0 +retrying>=1.3.3,!=1.3.0 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index 7806a8f..4b2a59e 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -6 +6 @@ hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0 -nose>=1.3.7 # LGPL +ddt>=1.0.1 # MIT
participants (1)
-
no-reply@openstack.org