From 895db171233cfc74728a2eb5db3b63d29139055a Mon Sep 17 00:00:00 2001 From: Adrian Turjak Date: Thu, 30 Nov 2017 18:15:45 +1300 Subject: [PATCH] Stop osSDK mangling Swift metadata keys Make the _calculate_headers function check the values as well as the keys in _system_metadata for metadata keys passed in, and otherwise first check if the key has the _custom_metadata_prefix before prepending it. Change-Id: Icb27c6fd43b143676b23c3aca7f23d9d8ab0f04e --- openstack/object_store/v1/_base.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/openstack/object_store/v1/_base.py b/openstack/object_store/v1/_base.py index cd99503fc..a16e8fb7a 100644 --- a/openstack/object_store/v1/_base.py +++ b/openstack/object_store/v1/_base.py @@ -27,10 +27,15 @@ class BaseResource(resource.Resource): def _calculate_headers(self, metadata): headers = dict() for key in metadata: - if key in self._system_metadata: + if key in self._system_metadata.keys(): header = self._system_metadata[key] + elif key in self._system_metadata.values(): + header = key else: - header = self._custom_metadata_prefix + key + if key.startswith(self._custom_metadata_prefix): + header = key + else: + header = self._custom_metadata_prefix + key headers[header] = metadata[key] return headers