Revision b5636704 snf-pithos-backend/pithos/backends/lib/hashfiler/context_archipelago.py
b/snf-pithos-backend/pithos/backends/lib/hashfiler/context_archipelago.py | ||
---|---|---|
33 | 33 |
|
34 | 34 |
from os import SEEK_CUR, SEEK_SET |
35 | 35 |
from archipelago.common import ( |
36 |
Request,
|
|
37 |
string_at,
|
|
38 |
)
|
|
36 |
Request, |
|
37 |
string_at, |
|
38 |
) |
|
39 | 39 |
from pithos.workers import monkey |
40 | 40 |
monkey.patch_Request() |
41 | 41 |
|
... | ... | |
139 | 139 |
in archipelago") |
140 | 140 |
|
141 | 141 |
def sync_write(self, data): |
142 |
ioctx = self.ioctx_pool.pool_get()
|
|
142 |
ioctx = self.ioctx_pool.pool_get() |
|
143 | 143 |
req = Request.get_write_request(ioctx, self.dst_port, self.name, |
144 | 144 |
data=data, offset=self.offset, |
145 | 145 |
datalen=len(data)) |
... | ... | |
154 | 154 |
raise IOError("archipelago: Write request error") |
155 | 155 |
|
156 | 156 |
def sync_write_chunks(self, chunksize, offset, chunks, size=None): |
157 |
return file_sync_write_chunks(self, chunksize, offset, chunks,size) |
|
157 |
return file_sync_write_chunks(self, chunksize, offset, chunks, size)
|
|
158 | 158 |
|
159 | 159 |
def sync_read(self, size): |
160 | 160 |
read = Request.get_read_request |
... | ... | |
162 | 162 |
datalen = 0 |
163 | 163 |
dsize = size |
164 | 164 |
while 1: |
165 |
ioctx = self.ioctx_pool.pool_get()
|
|
165 |
ioctx = self.ioctx_pool.pool_get() |
|
166 | 166 |
req = read(ioctx, self.dst_port, |
167 |
self.name,size=dsize-datalen,offset=self.offset)
|
|
167 |
self.name, size=dsize-datalen, offset=self.offset)
|
|
168 | 168 |
req.submit() |
169 | 169 |
req.wait() |
170 | 170 |
ret = req.success() |
171 | 171 |
if ret: |
172 |
s = string_at(req.get_data(),dsize-datalen) |
|
172 |
s = string_at(req.get_data(), dsize-datalen)
|
|
173 | 173 |
else: |
174 | 174 |
s = None |
175 | 175 |
req.put() |
Also available in: Unified diff