While testing glance with Ceph Rados Gateway using latest Ceph release
(Nautilus), i've found that glance fails to upload the manifest using
dynamic large objects mode because of the value used in ETag request.
This issue has been reported to Ceph as it seems related to some recent
change in radosgw code .
However, checking at the upload workflow used by glance and comparing
to Swift documentation , I wonder if adding the etag is actually
providing any value. In the Swift the ETag header is used to validate
integrity when uploading chunks, not the manifest while glance is doing
exactly the oposite, not sending the etag in the chunks (I guess to
avoid checksuming big images, which makes sense to me) and sending it
when puting the manifest.
This patch is removing the etag header when sending the PUT request for
the manifest in chunked uploads.
(cherry picked from commit ed356fc6b4)
During large file uploads under py3, we are occasionally seeing a
"unicode objects must be encoded before hashing" error even though
we are reading from a byte stream. From what I can tell, it looks
like it's happening when a zero-byte read is requested, so we handle
that case explicitly. This is a band-aid fix; we still need to track
down the source.
Co-authored-by: wangxiyuan <email@example.com>
Co-authored-by: Brian Rosmaita <firstname.lastname@example.org>
(cherry picked from commit 1d25a2b7a2)
Update the URL to the upper-constraints file to point to the redirect
rule on releases.openstack.org so that anyone working on this branch
will switch to the correct upper-constraints list automatically when
the requirements repository branches.
Until the requirements repository has as stable/stein branch, tests will
continue to use the upper-constraints list on master.
At the moment, the filesystem driver uses a hardcoded 64 KB chunk
size, used when reading/writing image files.
This can be extremely inefficient, especially when file shares are
For this reason, this change will make it configurable.
In python3 conn.get_fsid() is represented as binary.
Because of this, direct_url is corrupted in DB.
This patch is fixing this. More informations in
The _get_datadir_path_and_priority and _parse_datastore_info_and_weight methods
may return the priority (or weight) as an integer or a string. This causes a few
- the caller must cast the result to an integer
- the code is harder to read
- static checkers such as mypy have a hard time processing these methods
We make sure that both methods now return the priority as an integer.
openstack-dev was decomissioned this night in https://review.openstack.org/621258
Update openstack-dev to openstack-discuss
Co-authored-by: LeopardMa <email@example.com>
* Use openstack-lower-constraints-jobs template, remove individual
* Sort list of templates
Unhelpful error (HTTP 500, Internal Server Error) received if image
creation failed due to insufficient free space. This patch catches rbd
NoSpace exception and re-raise the exact exception
glance_store.StorageFull, and the http client will receive "HTTP 413
Request Entity Too Large".
Co-authored-by: Stefan Dinescu <firstname.lastname@example.org>
Signed-off-by: Liang Fang <email@example.com>
The configuration of the periodic "tips" jobs in .zuul.yaml may
be confusing, particularly after a stable branch is cut. Add a
comment explaining what we're doing and why to reduce confusion.
In Rocky we have added support for multiple backend as a EXPERIMENTAL
feature. However configuration options related to multiple backend
are not generated in sample config file due to some issue. We have
added below 2 new config options for multiple backend.
1. enabled_backneds (added in glance)
2. default_backend (added in glance_store)
Made provision to add option 2 from above to sample config
This is a mechanically generated patch to complete step 1 of moving
the zuul job settings out of project-config and into each project
Because there will be a separate patch on each branch, the branch
specifiers for branch-specific jobs have been removed.
Because this patch is generated by a script, there may be some
cosmetic changes to the layout of the YAML file(s) as the contents are
See the python3-first goal document for details:
1 - declare the abstract base tips jobs 'abstract'
2 - add a branch matcher to where the periodic tips jobs
are invoked in the project definition so that they only
apply to the master branch
doc8 is not required to use this module, only for style
checking of RST documentation.
Move from requirements.txt -> test-requirements.txt to avoid
generating a run-time dependency on doc8.
The store_add_to_backend_with_multihash() function was not wrapped
correctly so that Glance could consume the secure hash value. This
patch adds the correct wrapping.
Currently os-brick that glance_store depends on uses oslo-privsep
to execute commands with root privileges, so we do not need to
maintain each command for os-brick in the rootwrap filters, but
only need to add the privsep-helper command.
This replaces the filters for os-brick with the privsep helper.
Related changes in Nova:
# nova: Add os-brick rootwrap filter for privsep
# nova: Initialise oslo.privsep early in main
Related changes in Cinder:
# cinder: Add os-brick rootwrap filter for privsep
# cinder: Initialise oslo.privsep early in main
Config option help is used to generate sample config files. This
is done statically and only in English. Translation is done
dynamically at runtime by loading the translation catalogs. So
putting the _() translation around config option help creates
unnecessary work for the translators as this will never be loaded
This removes translation markers from config option definitions.
A replacement, store_add_to_backend_with_multihash(), has been
introduced in Rocky. The old function is kept in Rocky for
backward compatability. This deprecation notice registers our
intent to remove it in Stein.