27fd97cef9
Users have complained for a while that Swift's ETags don't match the expected RFC formats. We've resisted fixing this for just as long, worrying that the fix would break innumerable clients that expect the value to be a hex-encoded MD5 digest and *nothing else*. But, users keep asking for it, and some consumers (including some CDNs) break if we *don't* have quoted etags -- so, let's make it an option. With this middleware, Swift users can set metadata per-account or even per-container to explicitly request RFC compliant etags or not. Swift operators also get an option to change the default behavior cluster-wide; it defaults to the old, non-compliant format. See also: - https://tools.ietf.org/html/rfc2616#section-3.11 - https://tools.ietf.org/html/rfc7232#section-2.3 Closes-Bug: 1099087 Closes-Bug: 1424614 Co-Authored-By: Tim Burke <tim.burke@gmail.com> Change-Id: I380c6e34949d857158e11eb428b3eda9975d855d
164 lines
5.5 KiB
INI
164 lines
5.5 KiB
INI
[metadata]
|
|
name = swift
|
|
summary = OpenStack Object Storage
|
|
description-file =
|
|
README.rst
|
|
author = OpenStack
|
|
author-email = openstack-discuss@lists.openstack.org
|
|
home-page = https://docs.openstack.org/swift/latest/
|
|
classifier =
|
|
Development Status :: 5 - Production/Stable
|
|
Environment :: OpenStack
|
|
Intended Audience :: Information Technology
|
|
Intended Audience :: System Administrators
|
|
License :: OSI Approved :: Apache Software License
|
|
Operating System :: POSIX :: Linux
|
|
Programming Language :: Python
|
|
Programming Language :: Python :: 2
|
|
Programming Language :: Python :: 2.7
|
|
Programming Language :: Python :: 3
|
|
Programming Language :: Python :: 3.6
|
|
Programming Language :: Python :: 3.7
|
|
|
|
[pbr]
|
|
skip_authors = True
|
|
skip_changelog = True
|
|
|
|
[files]
|
|
packages =
|
|
swift
|
|
scripts =
|
|
bin/swift-account-audit
|
|
bin/swift-account-auditor
|
|
bin/swift-account-info
|
|
bin/swift-account-reaper
|
|
bin/swift-account-replicator
|
|
bin/swift-account-server
|
|
bin/swift-config
|
|
bin/swift-container-auditor
|
|
bin/swift-container-info
|
|
bin/swift-container-replicator
|
|
bin/swift-container-server
|
|
bin/swift-container-sharder
|
|
bin/swift-container-sync
|
|
bin/swift-container-updater
|
|
bin/swift-container-reconciler
|
|
bin/swift-reconciler-enqueue
|
|
bin/swift-dispersion-populate
|
|
bin/swift-dispersion-report
|
|
bin/swift-drive-audit
|
|
bin/swift-form-signature
|
|
bin/swift-get-nodes
|
|
bin/swift-init
|
|
bin/swift-object-auditor
|
|
bin/swift-object-expirer
|
|
bin/swift-object-info
|
|
bin/swift-object-replicator
|
|
bin/swift-object-reconstructor
|
|
bin/swift-object-relinker
|
|
bin/swift-object-server
|
|
bin/swift-object-updater
|
|
bin/swift-oldies
|
|
bin/swift-orphans
|
|
bin/swift-proxy-server
|
|
bin/swift-recon
|
|
bin/swift-recon-cron
|
|
bin/swift-ring-builder
|
|
bin/swift-ring-builder-analyzer
|
|
bin/swift-ring-composer
|
|
|
|
[extras]
|
|
kms_keymaster =
|
|
oslo.config>=4.0.0,!=4.3.0,!=4.4.0 # Apache-2.0
|
|
castellan>=0.13.0 # Apache-2.0
|
|
|
|
kmip_keymaster =
|
|
pykmip>=0.7.0 # Apache-2.0
|
|
|
|
keystone =
|
|
keystonemiddleware>=4.17.0
|
|
|
|
[entry_points]
|
|
console_scripts =
|
|
swift-manage-shard-ranges = swift.cli.manage_shard_ranges:main
|
|
swift-container-deleter = swift.cli.container_deleter:main
|
|
|
|
paste.app_factory =
|
|
proxy = swift.proxy.server:app_factory
|
|
object = swift.obj.server:app_factory
|
|
mem_object = swift.obj.mem_server:app_factory
|
|
container = swift.container.server:app_factory
|
|
account = swift.account.server:app_factory
|
|
|
|
paste.filter_factory =
|
|
healthcheck = swift.common.middleware.healthcheck:filter_factory
|
|
crossdomain = swift.common.middleware.crossdomain:filter_factory
|
|
memcache = swift.common.middleware.memcache:filter_factory
|
|
read_only = swift.common.middleware.read_only:filter_factory
|
|
ratelimit = swift.common.middleware.ratelimit:filter_factory
|
|
cname_lookup = swift.common.middleware.cname_lookup:filter_factory
|
|
catch_errors = swift.common.middleware.catch_errors:filter_factory
|
|
domain_remap = swift.common.middleware.domain_remap:filter_factory
|
|
staticweb = swift.common.middleware.staticweb:filter_factory
|
|
tempauth = swift.common.middleware.tempauth:filter_factory
|
|
keystoneauth = swift.common.middleware.keystoneauth:filter_factory
|
|
recon = swift.common.middleware.recon:filter_factory
|
|
tempurl = swift.common.middleware.tempurl:filter_factory
|
|
formpost = swift.common.middleware.formpost:filter_factory
|
|
name_check = swift.common.middleware.name_check:filter_factory
|
|
bulk = swift.common.middleware.bulk:filter_factory
|
|
container_quotas = swift.common.middleware.container_quotas:filter_factory
|
|
account_quotas = swift.common.middleware.account_quotas:filter_factory
|
|
proxy_logging = swift.common.middleware.proxy_logging:filter_factory
|
|
dlo = swift.common.middleware.dlo:filter_factory
|
|
slo = swift.common.middleware.slo:filter_factory
|
|
list_endpoints = swift.common.middleware.list_endpoints:filter_factory
|
|
gatekeeper = swift.common.middleware.gatekeeper:filter_factory
|
|
container_sync = swift.common.middleware.container_sync:filter_factory
|
|
xprofile = swift.common.middleware.xprofile:filter_factory
|
|
versioned_writes = swift.common.middleware.versioned_writes:filter_factory
|
|
copy = swift.common.middleware.copy:filter_factory
|
|
keymaster = swift.common.middleware.crypto.keymaster:filter_factory
|
|
encryption = swift.common.middleware.crypto:filter_factory
|
|
kms_keymaster = swift.common.middleware.crypto.kms_keymaster:filter_factory
|
|
kmip_keymaster = swift.common.middleware.crypto.kmip_keymaster:filter_factory
|
|
listing_formats = swift.common.middleware.listing_formats:filter_factory
|
|
symlink = swift.common.middleware.symlink:filter_factory
|
|
s3api = swift.common.middleware.s3api.s3api:filter_factory
|
|
s3token = swift.common.middleware.s3api.s3token:filter_factory
|
|
etag_quoter = swift.common.middleware.etag_quoter:filter_factory
|
|
|
|
swift.diskfile =
|
|
replication.fs = swift.obj.diskfile:DiskFileManager
|
|
erasure_coding.fs = swift.obj.diskfile:ECDiskFileManager
|
|
|
|
[egg_info]
|
|
tag_build =
|
|
tag_date = 0
|
|
tag_svn_revision = 0
|
|
|
|
[compile_catalog]
|
|
directory = swift/locale
|
|
domain = swift
|
|
|
|
[update_catalog]
|
|
domain = swift
|
|
output_dir = swift/locale
|
|
input_file = swift/locale/swift.pot
|
|
|
|
[extract_messages]
|
|
keywords = _ l_ lazy_gettext
|
|
mapping_file = babel.cfg
|
|
output_file = swift/locale/swift.pot
|
|
|
|
[bdist_wheel]
|
|
universal = 1
|
|
|
|
[nosetests]
|
|
exe = 1
|
|
verbosity = 2
|
|
detailed-errors = 1
|
|
cover-package = swift
|
|
cover-html = true
|
|
cover-erase = true
|