Revision e6b39366 kamaki/clients/pithos.py

b/kamaki/clients/pithos.py
37 37
from time import time
38 38

  
39 39
from .storage import StorageClient
40
from .utils import path4url, params4url, prefix_keys
40
from .utils import path4url, params4url, prefix_keys, filter_in, filter_out
41 41

  
42 42

  
43 43
def pithos_hash(block, blockhash):
......
132 132
        self.put(path, params=params, headers=headers, json=hashmap,
133 133
                 success=201)
134 134

  
135
    def get_account_policy(self):
136
        return filter_in(self.get_account_info(), 'X-Account-Policy-')
137

  
138
    def get_account_meta(self):
139
        return filter_in(self.get_account_info(), 'X-Account-Meta-')
135 140

  
136 141
    def set_account_meta(self, metapairs):
137 142
        assert(type(metapairs) is dict)
......
140 145
        meta = prefix_keys(metapairs, 'X-Account-Meta-')
141 146
        self.post(path, meta=meta, success=202)
142 147

  
148
    def get_container_policy(self, container):
149
        return filter_in(self.get_container_info(container), 'X-Container-Policy-')
150

  
151
    def get_container_meta(self, container):
152
        return filter_in(self.get_container_info(container), 'X-Container-Meta-')
153

  
154
    def get_container_object_meta(self, container):
155
        return filter_in(self.get_container_info(container), 'X-Container-Object-Meta')
156

  
143 157
    def set_container_meta(self, metapairs):
144 158
        assert(type(metapairs) is dict)
145 159
        self.assert_container()
......
147 161
        meta = prefix_keys(metapairs, 'X-Container-Meta-')
148 162
        self.post(path, meta=meta, success=202)
149 163

  
164
    def delete_container_meta(self, metakey):
165
        headers = self.get_container_info(self.container)
166
        new_headers = filter_out(headers, 'x-container-meta-'+metakey, exactMatch = True)
167
        if len(new_headers) == len(headers):
168
            raise ClientError('X-Container-Meta-%s not found' % metakey, 404)
169
        path = path4url(self.account, self.container)
170
        self.post(path, headers=new_headers, success = 202)
171

  
172
    def replace_container_meta(self, metapairs):
173
        self.assert_container()
174
        path=path4url(self.account, self.container)
175
        meta = prefix_keys(metapairs, 'X-Container-Meta-')
176
        self.post(path, meta=meta, success=202)
177

  
150 178
    def set_object_meta(self, object, metapairs):
151 179
        assert(type(metapairs) is dict)
152 180
        self.assert_container()

Also available in: Unified diff