Added discoverable capabilities.

Swift can now optionally be configured to allow requests to '/info',
providing information about the swift cluster.  Additionally a HMAC
signed requests to
'/info?swiftinfo_sig=<sign>&swiftinfo_expires=<expires>' can be
configured allowing privileged access to more sensitive information
not meant to be public.

DocImpact
Change-Id: I2379360fbfe3d9e9e8b25f1dc34517d199574495
Implements: blueprint capabilities
Closes-Bug: #1245694
This commit is contained in:
Richard (Rick) Hawkins
2013-10-16 19:28:37 -05:00
parent 34eb76fc57
commit 2c4bf81464
22 changed files with 741 additions and 47 deletions

View File

@@ -15,7 +15,7 @@
import hmac
from hashlib import sha1
from os.path import basename
from sys import argv, exit
from sys import argv, exit, stderr
from time import time
@@ -59,9 +59,11 @@ if __name__ == '__main__':
# have '/'s.
if len(parts) != 5 or parts[0] or parts[1] != 'v1' or not parts[2] or \
not parts[3] or not parts[4].strip('/'):
print '<path> must point to an object.'
print 'For example: /v1/account/container/object'
exit(1)
stderr.write(
'WARNING: "%s" does not refer to an object '
'(e.g. /v1/account/container/object).\n' % path)
stderr.write(
'WARNING: Non-object paths will be rejected by tempurl.\n')
sig = hmac.new(key, '%s\n%s\n%s' % (method, expires, path),
sha1).hexdigest()
print '%s?temp_url_sig=%s&temp_url_expires=%s' % (path, sig, expires)