Revision b9ca81a0

b/pithos/lib/client.py
94 94
        kwargs['headers']['X-Auth-Token'] = self.token
95 95
        if body:
96 96
            kwargs['body'] = body
97
        elif 'content-type' not in kwargs['headers']:
98
            kwargs['headers']['content-type'] = ''
99 97
        kwargs['headers'].setdefault('content-length', len(body) if body else 0)
100 98
        kwargs['headers'].setdefault('content-type', 'application/octet-stream')
101 99
        try:
......
194 192
            headers[k] = v
195 193
        return self.post(path, headers=headers, params=params)
196 194
    
195
    def _reset_metadata(self, path, entity, **meta):
196
        """
197
        overwrites all user defined metadata
198
        """
199
        headers = {}
200
        prefix = 'x-%s-meta-' % entity
201
        for k,v in meta.items():
202
            k = '%s%s' % (prefix, k)
203
            headers[k] = v
204
        return self.post(path, headers=headers)
205
    
197 206
    def _delete_metadata(self, path, entity, meta=[]):
198 207
        """delete previously set metadata"""
199 208
        ex_meta = self.retrieve_account_metadata(restricted=True)
......
227 236
        """deletes the account metadata"""
228 237
        return self._delete_metadata('', 'account', meta)
229 238
    
239
    def reset_account_metadata(self, **meta):
240
        """resets account metadata"""
241
        return self._reset_metadata('', 'account', **meta)
242
    
230 243
    # Storage Container Services
231 244
    
232 245
    def _filter_trashed(self, l):
......
502 515
        params = {'update':None}
503 516
        return self.post('', headers=headers, params=params)
504 517
    
518
    def retrieve_account_groups(self):
519
        """returns the account groups"""
520
        meta = self.retrieve_account_metadata()
521
        prefix = 'x-account-group-'
522
        prefixlen = len(prefix)
523
        groups = {}
524
        for key, val in meta.items():
525
            if prefix and not key.startswith(prefix):
526
                continue
527
            elif prefix and key.startswith(prefix):
528
                key = key[prefixlen:]
529
            groups[key] = val
530
        return groups
531
    
505 532
    def unset_account_groups(self, groups=[]):
506 533
        """delete account groups"""
507 534
        headers = {}

Also available in: Unified diff