Revision 6749c3bd pithos/lib/client.py

b/pithos/lib/client.py
136 136
            for k,v in params.items():
137 137
                if v:
138 138
                    full_path = '%s&%s=%s' %(full_path, k, v)
139
                else:
140
                    full_path = '%s&%s' %(full_path, k)
139 141
        conn = HTTPConnection(self.host)
140 142
        
141 143
        #encode whitespace
......
189 191
    def head(self, path, format='text', params=None):
190 192
        return self.req('HEAD', path, format=format, params=params)
191 193
    
192
    def post(self, path, body=None, format='text', headers=None):
193
        return self.req('POST', path, body, headers=headers, format=format)
194
    def post(self, path, body=None, format='text', headers=None, params=None):
195
        return self.req('POST', path, body, headers=headers, format=format,
196
                        params=params)
194 197
    
195 198
    def put(self, path, body=None, format='text', headers=None):
196 199
        return self.req('PUT', path, body, headers=headers, format=format)
......
219 222
    
220 223
    def _update_metadata(self, path, entity, **meta):
221 224
        """
222
         adds new and updates the values of previously set metadata
225
        adds new and updates the values of previously set metadata
223 226
        """
224
        prefix = 'x-%s-meta-' % entity
225
        prev_meta = self._get_metadata(path, prefix)
226
        prev_meta.update(meta)
227
        params = {'update':None}
227 228
        headers = {}
228
        for key, val in prev_meta.items():
229
            key = '%s%s' % (prefix, key)
230
            key = '-'.join(elem.capitalize() for elem in key.split('-'))
231
            headers[key] = val
232
        self.post(path, headers=headers)
229
        prefix = 'x-%s-meta-' % entity
230
        for k,v in meta.items():
231
            k = '%s%s' % (prefix, k)
232
            k = '-'.join(elem.capitalize() for elem in k.split('-'))
233
            headers[k] = v
234
        self.post(path, headers=headers, params=params)
233 235
    
234 236
    def _delete_metadata(self, path, entity, meta=[]):
235 237
        """

Also available in: Unified diff