diff options
author | Jenkins <jenkins@review.openstack.org> | 2015-11-13 20:48:44 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2015-11-13 20:48:44 +0000 |
commit | 79147fc305f7955f330ad5494eb3e98b9b6ecc9e (patch) | |
tree | ee57bda40b6af8c014fc7c631c01fe29c8a398e7 | |
parent | 89609fe8825bb446f76493bf6638b55c26c308c0 (diff) | |
parent | b2c2677359f71c3feddd8bcfeafabe009338ca0e (diff) | |
download | heat-79147fc305f7955f330ad5494eb3e98b9b6ecc9e.tar.gz |
Merge "Always fetch temp URL key before generation" into stable/junojuno-eol2014.2.4stable/juno
-rw-r--r-- | heat/engine/clients/os/swift.py | 11 | ||||
-rw-r--r-- | heat/tests/test_swift_client.py | 16 |
2 files changed, 17 insertions, 10 deletions
diff --git a/heat/engine/clients/os/swift.py b/heat/engine/clients/os/swift.py index 79a308602..0eed2dd84 100644 --- a/heat/engine/clients/os/swift.py +++ b/heat/engine/clients/os/swift.py @@ -88,11 +88,12 @@ class SwiftClientPlugin(client_plugin.ClientPlugin): Return a Swift TempURL. ''' key_header = 'x-account-meta-temp-url-key' - if key_header in self.client().head_account(): - key = self.client().head_account()[key_header] - else: - key = hashlib.sha224(str(random.getrandbits(256))).hexdigest()[:32] - self.client().post_account({key_header: key}) + if key_header not in self.client().head_account(): + self.client().post_account({ + key_header: hashlib.sha224( + str(random.getrandbits(256))).hexdigest()[:32]}) + + key = self.client().head_account()[key_header] path = '/v1/AUTH_%s/%s/%s' % (self.context.tenant_id, container_name, obj_name) diff --git a/heat/tests/test_swift_client.py b/heat/tests/test_swift_client.py index fe72d1ec9..5930079f6 100644 --- a/heat/tests/test_swift_client.py +++ b/heat/tests/test_swift_client.py @@ -82,17 +82,23 @@ class SwiftUtilsTests(SwiftClientPluginTestCase): def test_get_temp_url_no_account_key(self): self.swift_client.url = ("http://fake-host.com:8080/v1/" - "AUTH_test_tenant_id") - self.swift_client.head_account = mock.Mock(return_value={}) - self.swift_client.post_account = mock.Mock() - self.assertFalse(self.swift_client.post_account.called) + "AUTH_demo") + head_account = {} + + def post_account(data): + head_account.update(data) + + self.swift_client.head_account = mock.Mock(return_value=head_account) + self.swift_client.post_account = post_account container_name = '1234' # from stack.id stack_name = 'test' handle_name = 'foo' obj_name = '%s-%s' % (stack_name, handle_name) + + self.assertNotIn('x-account-meta-temp-url-key', head_account) self.swift_plugin.get_temp_url(container_name, obj_name) - self.assertTrue(self.swift_client.post_account.called) + self.assertIn('x-account-meta-temp-url-key', head_account) def test_get_signal_url(self): self.swift_client.url = ("http://fake-host.com:8080/v1/" |