Revision ff5def9b
b/lib/backend.py | ||
---|---|---|
2255 | 2255 |
This is a wrapper over _RecursiveAssembleBD. |
2256 | 2256 |
|
2257 | 2257 |
@rtype: str or boolean |
2258 |
@return: a C{/dev/...} path for primary nodes, and
|
|
2259 |
C{True} for secondary nodes
|
|
2258 |
@return: a tuple with the C{/dev/...} path and the created symlink
|
|
2259 |
for primary nodes, and (C{True}, C{True}) for secondary nodes
|
|
2260 | 2260 |
|
2261 | 2261 |
""" |
2262 | 2262 |
try: |
2263 | 2263 |
result = _RecursiveAssembleBD(disk, owner, as_primary) |
2264 | 2264 |
if isinstance(result, BlockDev): |
2265 | 2265 |
# pylint: disable=E1103 |
2266 |
result = result.dev_path |
|
2266 |
dev_path = result.dev_path |
|
2267 |
link_name = None |
|
2267 | 2268 |
if as_primary: |
2268 |
_SymlinkBlockDev(owner, result, idx) |
|
2269 |
link_name = _SymlinkBlockDev(owner, dev_path, idx) |
|
2270 |
elif result: |
|
2271 |
return result, result |
|
2272 |
else: |
|
2273 |
_Fail("Unexpected result from _RecursiveAssembleBD") |
|
2269 | 2274 |
except errors.BlockDeviceError, err: |
2270 | 2275 |
_Fail("Error while assembling disk: %s", err, exc=True) |
2271 | 2276 |
except OSError, err: |
2272 | 2277 |
_Fail("Error while symlinking disk: %s", err, exc=True) |
2273 | 2278 |
|
2274 |
return result
|
|
2279 |
return dev_path, link_name
|
|
2275 | 2280 |
|
2276 | 2281 |
|
2277 | 2282 |
def BlockdevShutdown(disk): |
b/test/py/cmdlib/instance_migration_unittest.py | ||
---|---|---|
128 | 128 |
.CreateSuccessfulNodeResult(self.master, True) |
129 | 129 |
self.rpc.call_blockdev_assemble.return_value = \ |
130 | 130 |
self.RpcResultsBuilder() \ |
131 |
.CreateSuccessfulNodeResult(self.snode, True)
|
|
131 |
.CreateSuccessfulNodeResult(self.snode, ("/dev/mock", "/var/mock"))
|
|
132 | 132 |
self.rpc.call_instance_start.return_value = \ |
133 | 133 |
self.RpcResultsBuilder() \ |
134 | 134 |
.CreateSuccessfulNodeResult(self.snode, True) |
b/test/py/cmdlib/instance_unittest.py | ||
---|---|---|
1491 | 1491 |
|
1492 | 1492 |
self.rpc.call_blockdev_assemble.return_value = \ |
1493 | 1493 |
self.RpcResultsBuilder() \ |
1494 |
.CreateSuccessfulNodeResult(self.node, "/dev/mocked_path") |
|
1494 |
.CreateSuccessfulNodeResult(self.node, ("/dev/mocked_path", |
|
1495 |
"/var/run/ganeti/instance-disks/mocked_d")) |
|
1495 | 1496 |
self.rpc.call_blockdev_export.return_value = \ |
1496 | 1497 |
self.RpcResultsBuilder() \ |
1497 | 1498 |
.CreateSuccessfulNodeResult(self.master, "") |
... | ... | |
1607 | 1608 |
def testFileInstance(self): |
1608 | 1609 |
self.rpc.call_blockdev_assemble.return_value = \ |
1609 | 1610 |
self.RpcResultsBuilder() \ |
1610 |
.CreateSuccessfulNodeResult(self.master, None)
|
|
1611 |
.CreateSuccessfulNodeResult(self.master, (None, None))
|
|
1611 | 1612 |
self.rpc.call_blockdev_shutdown.return_value = \ |
1612 | 1613 |
self.RpcResultsBuilder() \ |
1613 | 1614 |
.CreateSuccessfulNodeResult(self.master, None) |
Also available in: Unified diff