Revision 24c06acb lib/storage/bdev.py
b/lib/storage/bdev.py | ||
---|---|---|
230 | 230 |
return map((lambda pv: pv.name), empty_pvs) |
231 | 231 |
|
232 | 232 |
@classmethod |
233 |
def Create(cls, unique_id, children, size, params, excl_stor): |
|
233 |
def Create(cls, unique_id, children, size, spindles, params, excl_stor):
|
|
234 | 234 |
"""Create a new logical volume. |
235 | 235 |
|
236 | 236 |
""" |
... | ... | |
265 | 265 |
for m in err_msgs: |
266 | 266 |
logging.warning(m) |
267 | 267 |
req_pvs = cls._ComputeNumPvs(size, pvs_info) |
268 |
if spindles: |
|
269 |
if spindles < req_pvs: |
|
270 |
base.ThrowError("Requested number of spindles (%s) is not enough for" |
|
271 |
" a disk of %d MB (at least %d spindles needed)", |
|
272 |
spindles, size, req_pvs) |
|
273 |
else: |
|
274 |
req_pvs = spindles |
|
268 | 275 |
pvlist = cls._GetEmptyPvNames(pvs_info, req_pvs) |
269 | 276 |
current_pvs = len(pvlist) |
270 | 277 |
if current_pvs < req_pvs: |
271 |
base.ThrowError("Not enough empty PVs to create a disk of %d MB:" |
|
272 |
" %d available, %d needed", size, current_pvs, req_pvs) |
|
278 |
base.ThrowError("Not enough empty PVs (spindles) to create a disk of %d" |
|
279 |
" MB: %d available, %d needed", |
|
280 |
size, current_pvs, req_pvs) |
|
273 | 281 |
assert current_pvs == len(pvlist) |
274 | 282 |
if stripes > current_pvs: |
275 | 283 |
# No warning issued for this, as it's no surprise |
... | ... | |
836 | 844 |
base.ThrowError("Can't stat %s: %s", self.dev_path, err) |
837 | 845 |
|
838 | 846 |
@classmethod |
839 |
def Create(cls, unique_id, children, size, params, excl_stor): |
|
847 |
def Create(cls, unique_id, children, size, spindles, params, excl_stor):
|
|
840 | 848 |
"""Create a new file. |
841 | 849 |
|
842 | 850 |
@param size: the size of file in MiB |
... | ... | |
904 | 912 |
self.Attach() |
905 | 913 |
|
906 | 914 |
@classmethod |
907 |
def Create(cls, unique_id, children, size, params, excl_stor): |
|
915 |
def Create(cls, unique_id, children, size, spindles, params, excl_stor):
|
|
908 | 916 |
"""Create a new device |
909 | 917 |
|
910 | 918 |
This is a noop, we only return a PersistentBlockDevice instance |
... | ... | |
1004 | 1012 |
self.Attach() |
1005 | 1013 |
|
1006 | 1014 |
@classmethod |
1007 |
def Create(cls, unique_id, children, size, params, excl_stor): |
|
1015 |
def Create(cls, unique_id, children, size, spindles, params, excl_stor):
|
|
1008 | 1016 |
"""Create a new rbd device. |
1009 | 1017 |
|
1010 | 1018 |
Provision a new rbd volume inside a RADOS pool. |
... | ... | |
1358 | 1366 |
self.Attach() |
1359 | 1367 |
|
1360 | 1368 |
@classmethod |
1361 |
def Create(cls, unique_id, children, size, params, excl_stor): |
|
1369 |
def Create(cls, unique_id, children, size, spindles, params, excl_stor):
|
|
1362 | 1370 |
"""Create a new extstorage device. |
1363 | 1371 |
|
1364 | 1372 |
Provision a new volume using an extstorage provider, which will |
... | ... | |
1803 | 1811 |
_VerifyDiskType(disk.dev_type) |
1804 | 1812 |
_VerifyDiskParams(disk) |
1805 | 1813 |
device = DEV_MAP[disk.dev_type].Create(disk.physical_id, children, disk.size, |
1806 |
disk.params, excl_stor) |
|
1814 |
disk.spindles, disk.params, excl_stor)
|
|
1807 | 1815 |
return device |
Also available in: Unified diff