Allow optional, temporary healthcheck failure.

A deployer may want to remove a Swift node from a load balancer for
maintenance or upgrade.  This patch provides an optional mechanism for
this.  The healthcheck filter config can specify "disable_path" which is
a filesystem path.  If a file is present at that location, the
healthcheck middleware returns a 503 with a body of "DISABLED BY FILE".

So a deployer can configure "disable_path" and then touch that
filesystem path, wait for the proxy to be removed from the load balancer
pool, perform maintenance/upgrade, and then remove the "disable_path"
file.

Also cleaned up the conf file man pages a bit.

Change-Id: I1759c78c74910a54c720f298d4d8e6fa57a4dab4
This commit is contained in:
Darrell Bishop
2012-12-03 16:05:44 -08:00
parent 4f617f49b6
commit b8e3e9e1c2
12 changed files with 484 additions and 356 deletions

View File

@@ -33,7 +33,7 @@
# db_preallocation = off
[pipeline:main]
pipeline = recon container-server
pipeline = healthcheck recon container-server
[app:container-server]
use = egg:swift#container
@@ -48,6 +48,12 @@ use = egg:swift#container
# allow_versions = False
# auto_create_account_prefix = .
[filter:healthcheck]
use = egg:swift#healthcheck
# An optional filesystem path, which if present, will cause the healthcheck
# URL to return "503 Service Unavailable" with a body of "DISABLED BY FILE"
# disable_path =
[filter:recon]
use = egg:swift#recon
#recon_cache_path = /var/cache/swift