Merge "Secret payload should also be fetched by UUID"

This commit is contained in:
Zuul 2019-01-02 18:28:03 +00:00 committed by Gerrit Code Review
commit 3f432bd111
2 changed files with 11 additions and 7 deletions

View File

@ -371,9 +371,11 @@ class WhenTestingSecrets(test_client.BaseEntityResource):
# Verify the correct URL was used to make the call.
self.assertEqual(self.entity_payload_href, m.last_request.url)
def test_should_decrypt(self):
def test_should_decrypt(self, secret_ref=None):
secret_ref = secret_ref or self.entity_href
content_types_dict = {'default': 'application/octet-stream'}
json = self.secret.get_dict(self.entity_href, content_types_dict)
json = self.secret.get_dict(secret_ref, content_types_dict)
metadata_response = self.responses.get(
self.entity_href,
request_headers={'Accept': 'application/json'},
@ -386,7 +388,7 @@ class WhenTestingSecrets(test_client.BaseEntityResource):
request_headers=request_headers,
content=decrypted)
secret = self.manager.get(secret_ref=self.entity_href)
secret = self.manager.get(secret_ref=secret_ref)
secret_payload = secret.payload
self.assertEqual(decrypted, secret_payload)
@ -397,6 +399,10 @@ class WhenTestingSecrets(test_client.BaseEntityResource):
self.assertEqual(self.entity_payload_href,
decryption_response.last_request.url)
def test_should_decrypt_using_stripped_uuid(self):
bad_href = "http://badsite.com/" + self.entity_id
self.test_should_decrypt(bad_href)
def test_should_delete_from_manager(self, secret_ref=None):
secret_ref = secret_ref or self.entity_href

View File

@ -266,10 +266,8 @@ class Secret(SecretFormatter):
"content-type.")
headers = {'Accept': self.payload_content_type}
if self._secret_ref[-1] != "/":
payload_url = self._secret_ref + '/payload'
else:
payload_url = self._secret_ref + 'payload'
uuid_ref = base.calculate_uuid_ref(self._secret_ref, self._entity)
payload_url = uuid_ref + '/payload'
payload = self._api._get_raw(payload_url, headers=headers)
if self.payload_content_type == u'text/plain':
self._payload = payload.decode('UTF-8')