summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.openstack.org>2019-01-02 18:28:03 +0000
committerGerrit Code Review <review@openstack.org>2019-01-02 18:28:03 +0000
commit3f432bd1110bca4fbf5896e047529c0d98a0ed99 (patch)
tree84f48a2375da350db6d66ba4e53a4407a319d41c
parent63f3ae9d7a53a7d1757543d4e3908ab4945c0b96 (diff)
parent4eec7121b39de3849b469c56d85b95520aab7bad (diff)
downloadpython-barbicanclient-3f432bd1110bca4fbf5896e047529c0d98a0ed99.tar.gz
Merge "Secret payload should also be fetched by UUID"
-rw-r--r--barbicanclient/tests/v1/test_secrets.py12
-rw-r--r--barbicanclient/v1/secrets.py6
2 files changed, 11 insertions, 7 deletions
diff --git a/barbicanclient/tests/v1/test_secrets.py b/barbicanclient/tests/v1/test_secrets.py
index a0300a5..748ec61 100644
--- a/barbicanclient/tests/v1/test_secrets.py
+++ b/barbicanclient/tests/v1/test_secrets.py
@@ -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
diff --git a/barbicanclient/v1/secrets.py b/barbicanclient/v1/secrets.py
index 5b0c4a1..a604160 100644
--- a/barbicanclient/v1/secrets.py
+++ b/barbicanclient/v1/secrets.py
@@ -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')