diff --git a/ironic/common/swift.py b/ironic/common/swift.py index 7340912d6e..8a98c32d21 100644 --- a/ironic/common/swift.py +++ b/ironic/common/swift.py @@ -131,7 +131,12 @@ class SwiftAPI(object): parse_result = urlparse.urlparse(self.connection.url) swift_object_path = '/'.join((parse_result.path, container, obj)) - temp_url_key = account_info['x-account-meta-temp-url-key'] + temp_url_key = account_info.get('x-account-meta-temp-url-key') + if not temp_url_key: + raise exception.MissingParameterValue(_( + 'Swift temporary URLs require a shared secret to be ' + 'created. You must provide pre-generate the key on ' + 'the project used to access Swift.')) url_path = swift_utils.generate_temp_url(swift_object_path, timeout, temp_url_key, 'GET') return urlparse.urlunparse( diff --git a/zuul.d/ironic-jobs.yaml b/zuul.d/ironic-jobs.yaml index 56d9c19ea1..9196265ee8 100644 --- a/zuul.d/ironic-jobs.yaml +++ b/zuul.d/ironic-jobs.yaml @@ -777,6 +777,8 @@ IRONIC_REQUIRE_AGENT_TOKEN: False Q_AGENT: openvswitch Q_ML2_TENANT_NETWORK_TYPE: vxlan + SWIFT_ENABLE_TEMPURLS: True + SWIFT_TEMPURL_KEY: secretkey EBTABLES_RACE_FIX: True old: IRONIC_VM_LOG_DIR: '{{ devstack_bases.old }}/ironic-bm-logs'