Change validate method to work for all storages

This commit is contained in:
Joseph Schorr 2016-08-01 17:07:33 -04:00
parent c30b8dd1ad
commit 770ac0016e
4 changed files with 11 additions and 16 deletions

View file

@ -157,23 +157,17 @@ class SwiftStorage(BaseStorage):
return surl.format(scheme=scheme, host=hostname, full_path=full_path, sig=sig, expires=expires)
def validate(self, client):
if self._temp_url_key:
# Add a file to test direct download.
self.put_content('dd_path', 'testing 3456')
super(SwiftStorage, self).validate()
if self._temp_url_key:
# Generate a direct download URL.
dd_url = self.get_direct_download_url('dd_path')
dd_url = self.get_direct_download_url('_verify')
if not dd_url:
self.remove('dd_path')
raise Exception('Could not validate direct download URL; the token may be invalid.')
# Try to retrieve the direct download URL.
response = client.get(dd_url, timeout=2)
# Remove the test file.
self.remove('dd_path')
if response.status_code != 200:
logger.debug('Direct download failure: %s => %s with body %s', dd_url,
response.status_code, response.text)