swift/doc/source/middleware.rst
Samuel Merritt 6acea29fa6 Move all DLO functionality to middleware
This is for the same reason that SLO got pulled into middleware, which
includes stuff like automatic retry of GETs on broken connection and
the multi-ring storage policy stuff.

The proxy will automatically insert the dlo middleware at an
appropriate place in the pipeline the same way it does with the
gatekeeper middleware. Clusters will still support DLOs after upgrade
even with an old config file that doesn't mention dlo at all.

Includes support for reading config values from the proxy server's
config section so that upgraded clusters continue to work as before.

Bonus fix: resolve 'after' vs. 'after_fn' in proxy's required filters
list. Having two was confusing, so I kept the more-general one.

DocImpact

blueprint multi-ring-large-objects

Change-Id: Ib3b3830c246816dd549fc74be98b4bc651e7bace
2014-02-03 18:29:48 -08:00

3.7 KiB

Middleware

TempAuth

swift.common.middleware.tempauth

KeystoneAuth

swift.common.middleware.keystoneauth

Healthcheck

swift.common.middleware.healthcheck

Recon

swift.common.middleware.recon

Ratelimit

swift.common.middleware.ratelimit

StaticWeb

swift.common.middleware.staticweb

TempURL

swift.common.middleware.tempurl

FormPost

swift.common.middleware.formpost

Domain Remap

swift.common.middleware.domain_remap

CNAME Lookup

swift.common.middleware.cname_lookup

Cross Domain Policies

swift.common.middleware.crossdomain

Name Check (Forbidden Character Filter)

swift.common.middleware.name_check

Memcache

swift.common.middleware.memcache

Proxy Logging

swift.common.middleware.proxy_logging

CatchErrors

swift.common.middleware.catch_errors

GateKeeper

swift.common.middleware.gatekeeper

Bulk Operations (Delete and Archive Auto Extraction)

swift.common.middleware.bulk

Container Quotas

swift.common.middleware.container_quotas

Account Quotas

swift.common.middleware.account_quotas

Static Large Objects

swift.common.middleware.slo

Dynamic Large Objects ====================

swift.common.middleware.dlo

List Endpoints

swift.common.middleware.list_endpoints

Container Sync Middleware

swift.common.middleware.container_sync

Discoverability

Swift will by default provide clients with an interface providing details about the installation. Unless disabled (i.e expose_info=false in proxy-server-config), a GET request to /info will return configuration data in JSON format. An example response:

{"swift": {"version": "1.11.0"}, "staticweb": {}, "tempurl": {}}

This would signify to the client that swift version 1.11.0 is running and that staticweb and tempurl are available in this installation.

There may be administrator-only information available via /info. To retrieve it, one must use an HMAC-signed request, similar to TempURL. The signature may be produced like so:

swift-temp-url GET 3600 /info secret 2>/dev/null | sed s/temp_url/swiftinfo/g