We are delighted to announce the release of: glance 21.0.0: OpenStack Image Service This release is part of the victoria release series. The source is available from: https://opendev.org/openstack/glance Download the package from: https://tarballs.openstack.org/glance/ Please report issues through: https://bugs.launchpad.net/glance/+bugs For more details, please see below. 21.0.0 ^^^^^^ Prelude ******* The Victoria release includes some important milestones in Glance development priorities. * Added support to calculate virtual size of image based on disk format * Added support for sparse image upload for filesystem and rbd driver of glance_store * Improved performance of rbd store chunk upload * Fixed some important bugs around copy-image import method and importing image to multiple stores * Added support to configure multiple cinder stores Bug Fixes ********* * Bug 1795950: Fix cleaning of web-download image import in node_staging_uri * Bug 1895663: Image import "web-download" doesn't check on download size (https://code.launchpad.net/bugs/1795950) (https://code.launchpad.net/bugs/1895663) Changes in glance 20.0.0.0rc1..21.0.0 ------------------------------------- c4d88807 Bump Images API version to 2.11 6504588a Victoria RC-1 release notes 922c2ed5 Fix cleaning of web-download image import df049567 Do not use OSC in infra playbook 68c202d3 Image import "web-download" check downloaded size 54a2231f docs: Remove cruft from 'conf.py' d3d9982e docs: Convert table of image properties to definition list e1fe3024 docs: Remove references to XenAPI driver 213660d8 Victoria milestone 3 release notes 1a9b3458 Run the nova-ceph-multistore job against glance e16d5c9b Corrections in default value of all_stores_must_succeed 9bd06d24 [Docs] Cinder multiple stores for glance 98a1e792 Support cinder multiple stores a8fb4e25 Remove babel.cfg etc 19229d79 Refresh Glance example configs for Victoria milestone 3 bb7774c9 Add a release note about import locking 179d111c [Trivial]Add missing print parameters in log messages c023445d Make our import-workflow job also convert images to raw 76667323 Disable wait_for_fork() kill aggression if expect_exit=True b6380424 Make our ceph job enable thin provisioning 552da844 Cleanup import status information after busting a lock 3636915d Add ImageLock to base flow checks a86062c4 Functional test enhancement for lock busting 26f0311b Handle atomic image properties separately 36cbc50e Move SynchronousAPIBase to a generalized location 1b006c4f Add functional test for task status updating 3f6e349d Implement time-limited import locking dc08127f Add FakeData generator test utility 8c7342cb Make test_copy_image_revert_lifecycle handle 409 on import retry 6c96319e Poll for final state on test_copy_image_revert_lifecycle() 737dfca8 Fix import failure status reporting when all_stores_must_succeed=True 3041b0b4 zuul: use the new barbican simple-crypto job ec372377 Functional reproducer for bug 1891352 8e8072c1 Make wait_for_fork() more robust against infinite deadlock 77d9cfa6 Update task message during import e49f23c0 Heartbeat the actual work of the task b093ae35 Add image_delete_property_atomic() helper 7c91a177 Flesh out FakeImage for extra_properties 94a672c7 Add tests for _ImportToStore.execute() 2e11ecb1 Add testing for _CompleteTask in api_image_import 5a7fb9db Fix non-deterministic copy_image_revert_lifecycle test 12167a95 Squelch the stevedore.extension debug logging in functional tests 747ba1c1 Use correct import order in test_api_import_image b0197656 Inspect upload/import stream and set virtual_size 6a2a6283 Stream-friendly disk format inspection module b985e44f Fix active image without data e8b13ce1 Fix active image when all uploads fail cd50dd21 [goal] Migrate glance jobs to focal e1f0e94b Add "stores" to disallowed properties f2276f9a Change database migration version to victoria 5071a60c Refresh Glance example configs for Victoria milestone 2 013bdad8 Add new config options in sample config generator a4638930 Victoria milestone 2 release notes f4b78606 Make wsgi_app support graceful shutdown 783fa72f Make image conversion use a proper python interpreter for prlimit 52eaa56e [Doc] Policy support to copy unowned images 16a5431c Make glance-api able to do async tasks in WSGI mode 94193c04 Fix release note formatting ffd2f5e6 Fix broken glance-cache-manage utility 7d49b7ff Make our tempest job use import, standalone, and inject_metadata 785eefcf Fix admin docs deplying under HTTPD 2a518431 Add image_set_property_atomic() helper eec06048 Remove deprecated glance-replicator options 363a78dd Remove unused "copy_from" policy rule ee8a69d5 Add a policy knob for allowing non-owned image copying 96507d3e Update sample configs post deprecation removals 30680961 Cleanup remove api v1 and registry code 3ce486f9 Don't use Stevedore 3.0.0 which breaks gate 2fd0c257 Make import task capable of running as admin on behalf of user c59ed1bc Add context.elevated() helper for getting admin privileges 937a70ab Refactor TaskFactory and Executor to take an admin ImageRepo 019afb78 Add a functional test for non-owned image copying 1b172798 Refactor common auth token code in images test 24c28123 Fix metadefs for compute-watchdog f20daa18 Drop collections.abc compat handling b8332d9b Don't include plugins on 'copy-image' import e2e050c0 Add 'all' visibility filter for listing images in docs ab0e5268 Improve lazy loading mechanism for multiple stores bbb3ede8 Removal of 'enable_v2_api' 9eb562eb Update lower-constraints versions f450b9cf Add a test to replicate the owner-required behavior of copy-image 673666cb Deprecation cleanout Registry and related c930638f Check authorization before import for image b2200300 Make test-setup.sh compatible with mysql8 22d8f1fc Fix: Interrupted copy-image leaking data on subsequent operation c636ad29 Switch from unittest2 compat methods to Python 3.x methods e6db0b10 Imported Translations from Zanata 7ff8d2eb Use unittest.mock instead of mock 781da935 Remove configs and entries for deprecated registry f7b16311 Exclude http store if --all-stores specified for import/copy operation a506e941 Use grenade-multinode instead of the custom legacy job 64e3c411 Stop to use the __future__ module. 03cb88a4 Switch to newer openstackdocstheme and reno versions cee088c3 Imported Translations from Zanata 4cd56a49 Cap jsonschema 3.2.0 as the minimal version 890b740a Add tests to lower-constraints job bf637a2a Fix hacking min version to 3.0.1 3e2e51a5 Imported Translations from Zanata 2539e42b Use py38 instead of py37 jobs 06eb617b Switch to new grenade job name ed3bb4e1 Fix a failure to parse json file 38f33482 Bump default tox env from py37 to py38 10f7130b fix typo in gerrit doc 32f7c08b Imported Translations from Zanata 4505f5d6 Add py38 package metadata f0d77a4e Imported Translations from Zanata 6cb83180 Add Python3 victoria unit tests e1fd6540 Update master for stable/ussuri 0049e18f Imported Translations from Zanata 4a64d976 Deprecate the 'checksum' image property Diffstat (except docs and test files) ------------------------------------- .zuul.yaml | 182 +- api-ref/source/conf.py | 13 +- api-ref/source/v2/images-import.inc | 9 +- api-ref/source/v2/images-parameters.yaml | 16 +- babel.cfg | 1 - bindep.txt | 2 + etc/glance-api-paste.ini | 4 - etc/glance-api.conf | 634 ++----- etc/glance-cache.conf | 487 +---- etc/glance-registry-paste.ini | 35 - etc/glance-registry.conf | 1896 -------------------- etc/glance-scrubber.conf | 171 +- etc/metadefs/compute-libvirt-image.json | 9 + etc/metadefs/compute-vmware.json | 2 +- etc/metadefs/compute-watchdog.json | 9 +- etc/metadefs/compute-xenapi.json | 9 - etc/oslo-config-generator/glance-registry.conf | 10 - glance/api/__init__.py | 2 - glance/api/authorization.py | 12 +- glance/api/cached_images.py | 129 -- glance/api/common.py | 25 +- glance/api/middleware/cache.py | 16 +- glance/api/middleware/version_negotiation.py | 27 +- glance/api/policy.py | 10 +- glance/api/v1/__init__.py | 26 - glance/api/v1/controller.py | 96 - glance/api/v1/filters.py | 40 - glance/api/v1/router.py | 18 +- glance/api/v1/upload_utils.py | 293 --- glance/api/v2/image_data.py | 35 +- glance/api/v2/images.py | 184 +- glance/api/v2/tasks.py | 4 +- glance/api/versions.py | 38 +- glance/async_/__init__.py | 114 +- .../async_/flows/_internal_plugins/copy_image.py | 21 +- .../async_/flows/_internal_plugins/web_download.py | 30 +- glance/async_/flows/api_image_import.py | 512 ++++-- glance/async_/flows/plugins/image_conversion.py | 2 + glance/async_/taskflow_executor.py | 20 +- glance/cmd/api.py | 4 + glance/cmd/cache_manage.py | 1 - glance/cmd/control.py | 10 +- glance/cmd/manage.py | 6 +- glance/cmd/registry.py | 102 -- glance/cmd/replicator.py | 19 - glance/common/config.py | 161 +- glance/common/exception.py | 4 + glance/common/format_inspector.py | 682 +++++++ glance/common/rpc.py | 302 ---- glance/common/scripts/image_import/main.py | 8 +- glance/common/scripts/utils.py | 97 + glance/common/store_utils.py | 80 +- glance/common/utils.py | 4 + glance/common/wsgi.py | 5 +- glance/common/wsgi_app.py | 26 + glance/context.py | 14 + glance/db/__init__.py | 31 +- glance/db/migration.py | 4 +- glance/db/registry/__init__.py | 0 glance/db/registry/api.py | 546 ------ glance/db/simple/__init__.py | 4 + glance/db/simple/api.py | 41 +- glance/db/sqlalchemy/alembic_migrations/env.py | 2 - glance/db/sqlalchemy/api.py | 119 +- glance/domain/__init__.py | 16 +- glance/domain/proxy.py | 10 + glance/gateway.py | 9 +- glance/hacking/checks.py | 1 - glance/image_cache/drivers/sqlite.py | 2 - glance/image_cache/drivers/xattr.py | 2 - glance/locale/de/LC_MESSAGES/glance.po | 6 +- glance/locale/en_GB/LC_MESSAGES/glance.po | 51 +- glance/locale/es/LC_MESSAGES/glance.po | 6 +- glance/locale/fr/LC_MESSAGES/glance.po | 6 +- glance/locale/it/LC_MESSAGES/glance.po | 6 +- glance/locale/ja/LC_MESSAGES/glance.po | 6 +- glance/locale/ko_KR/LC_MESSAGES/glance.po | 6 +- glance/locale/pt_BR/LC_MESSAGES/glance.po | 6 +- glance/locale/ru/LC_MESSAGES/glance.po | 6 +- glance/locale/tr_TR/LC_MESSAGES/glance.po | 6 +- glance/locale/zh_CN/LC_MESSAGES/glance.po | 6 +- glance/locale/zh_TW/LC_MESSAGES/glance.po | 6 +- glance/location.py | 34 +- glance/opts.py | 36 +- glance/policies/image.py | 3 +- glance/registry/__init__.py | 68 - glance/registry/api/__init__.py | 40 - glance/registry/api/v1/__init__.py | 91 - glance/registry/api/v1/images.py | 569 ------ glance/registry/api/v1/members.py | 366 ---- glance/registry/api/v2/__init__.py | 35 - glance/registry/api/v2/rpc.py | 53 - glance/registry/client/__init__.py | 264 --- glance/registry/client/v1/__init__.py | 0 glance/registry/client/v1/api.py | 227 --- glance/registry/client/v1/client.py | 276 --- glance/registry/client/v2/__init__.py | 0 glance/registry/client/v2/api.py | 109 -- glance/registry/client/v2/client.py | 27 - .../functional/v2/test_images_import_locking.py | 288 +++ .../v2/test_property_quota_violations.py | 1 - .../unit/async_/flows/test_api_image_import.py | 811 ++++++++- .../unit/common/scripts/image_import/test_main.py | 26 + .../unit/common/scripts/test_scripts_utils.py | 80 + lower-constraints.txt | 46 +- .../legacy/glance-dsvm-grenade-multinode/post.yaml | 15 - .../legacy/glance-dsvm-grenade-multinode/run.yaml | 46 - playbooks/post-check-metadata-injection.yaml | 20 + .../notes/bug-1881958-d0e16538f3c0ffaa.yaml | 6 + ...leanout_registry_data-api-9d91368aed83497e.yaml | 10 + .../cleanup-enable_v2_api-9b9b467f4ae8c3b1.yaml | 5 + .../notes/deprecate-checksum-a602853403e1c4a8.yaml | 23 + .../notes/fix_1889640-95d543629d7dadce.yaml | 6 + .../notes/fix_1889676-f8d302fd240c8a57.yaml | 6 + .../notes/fix_httpd_docs-3efff0395f96a94d.yaml | 6 + .../import-locking-behavior-901c691f3839fe0a.yaml | 13 + ...no_plugins_for_copy-image-26c0e384a368bf6a.yaml | 6 + .../replicator-token-cleanup-4a573c86f1acccc0.yaml | 6 + ...rt-cinder-multiple-stores-eb4e6d912d549ee9.yaml | 12 + ...victoria-m2-release-notes-8a6ae2fdb3d29dae.yaml | 41 + .../victoria-m3-releasenotes-9209cea98a29abc4.yaml | 30 + ...ictoria-rc1-release-notes-d928355cf90d608d.yaml | 25 + releasenotes/source/conf.py | 15 +- releasenotes/source/index.rst | 1 + .../locale/en_GB/LC_MESSAGES/releasenotes.po | 1001 ++++++++++- releasenotes/source/ussuri.rst | 6 + requirements.txt | 12 +- setup.cfg | 18 +- test-requirements.txt | 3 +- tools/test-setup.sh | 4 +- tools/test_format_inspector.py | 107 ++ tox.ini | 6 +- 194 files changed, 8799 insertions(+), 9167 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index a4c6777f..374e8e42 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6 +6 @@ pbr!=2.1.0,>=2.0.0 # Apache-2.0 -defusedxml>=0.5.0 # PSF +defusedxml>=0.6.0 # PSF @@ -10 +10 @@ SQLAlchemy!=1.1.5,!=1.1.6,!=1.1.7,!=1.1.8,>=1.0.10 # MIT -eventlet!=0.23.0,!=0.25.0,>=0.22.0 # MIT +eventlet>=0.25.1 # MIT @@ -23 +23 @@ oslo.utils>=3.33.0 # Apache-2.0 -stevedore>=1.20.0 # Apache-2.0 +stevedore!=3.0.0,>=1.20.0 # Apache-2.0 @@ -34 +34 @@ Paste>=2.0.2 # MIT -jsonschema>=2.6.0 # MIT +jsonschema>=3.2.0 # MIT @@ -39 +39 @@ six>=1.10.0 # MIT -oslo.db>=4.27.0 # Apache-2.0 +oslo.db>=5.0.0 # Apache-2.0 @@ -51 +51 @@ osprofiler>=1.4.0 # Apache-2.0 -glance-store>=1.0.0 # Apache-2.0 +glance-store>=2.3.0 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index 0b26d011..7e833fbe 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -6 +6 @@ -hacking>=3.0,<3.1.0 # Apache-2.0 +hacking>=3.0.1,<3.1.0 # Apache-2.0 @@ -24,0 +25 @@ Pygments>=2.2.0 # BSD license +boto3>=1.9.199 # Apache-2.0