Revision 961f2fbe pithos/lib/client.py

b/pithos/lib/client.py
217 217
        """
218 218
         adds new and updates the values of previously set metadata
219 219
        """
220
        for key, val in meta.items():
221
            meta.pop(key)
222
            meta['X-%s-Meta-%s' %(entity.capitalize(), key.capitalize())] = val
223
        prev_meta = self._get_metadata(path)
220
        prefix = 'x-%s-meta-' % entity
221
        prev_meta = self._get_metadata(path, prefix)
224 222
        prev_meta.update(meta)
225 223
        headers = {}
226 224
        for key, val in prev_meta.items():
227
            headers[key.capitalize()] = val
225
            key = '%s%s' % (prefix, key)
226
            key = '-'.join(elem.capitalize() for elem in key.split('-'))
227
            headers[key] = val
228 228
        self.post(path, headers=headers)
229 229
    
230 230
    def _delete_metadata(self, path, entity, meta=[]):
231 231
        """
232 232
        delete previously set metadata
233 233
        """
234
        prev_meta = self._get_metadata(path)
234
        prefix = 'x-%s-meta-' % entity
235
        prev_meta = self._get_metadata(path, prefix)
235 236
        headers = {}
236 237
        for key, val in prev_meta.items():
237
            if key.split('-')[-1] in meta:
238
            if key in meta:
238 239
                continue
239
            http_key = key.capitalize()
240
            headers[http_key] = val
240
            key = '%s%s' % (prefix, key)
241
            key = '-'.join(elem.capitalize() for elem in key.split('-'))
242
            headers[key] = val
241 243
        self.post(path, headers=headers)
242 244
    
243 245
    # Storage Account Services
......
402 404
    def restore_object(self, container, object):
403 405
        """
404 406
        restores a trashed object
405
        actualy just resets all object metadata except trash
407
        actualy removes trash object metadata info
406 408
        """
407 409
        self.delete_object_metadata(container, object, ['trash'])
408 410

  

Also available in: Unified diff