Revision 54bd7d76 lib/cmdlib.py
b/lib/cmdlib.py | ||
---|---|---|
6530 | 6530 |
|
6531 | 6531 |
assert not (self.failover and self.cleanup) |
6532 | 6532 |
|
6533 |
if not self.failover: |
|
6534 |
if self.lu.op.live is not None and self.lu.op.mode is not None: |
|
6535 |
raise errors.OpPrereqError("Only one of the 'live' and 'mode'" |
|
6536 |
" parameters are accepted", |
|
6537 |
errors.ECODE_INVAL) |
|
6538 |
if self.lu.op.live is not None: |
|
6539 |
if self.lu.op.live: |
|
6540 |
self.lu.op.mode = constants.HT_MIGRATION_LIVE |
|
6541 |
else: |
|
6542 |
self.lu.op.mode = constants.HT_MIGRATION_NONLIVE |
|
6543 |
# reset the 'live' parameter to None so that repeated |
|
6544 |
# invocations of CheckPrereq do not raise an exception |
|
6545 |
self.lu.op.live = None |
|
6546 |
elif self.lu.op.mode is None: |
|
6547 |
# read the default value from the hypervisor |
|
6548 |
i_hv = self.cfg.GetClusterInfo().FillHV(self.instance, |
|
6549 |
skip_globals=False) |
|
6550 |
self.lu.op.mode = i_hv[constants.HV_MIGRATION_MODE] |
|
6551 |
|
|
6552 |
self.live = self.lu.op.mode == constants.HT_MIGRATION_LIVE |
|
6553 |
else: |
|
6554 |
# Failover is never live |
|
6555 |
self.live = False |
|
6556 |
|
|
6533 | 6557 |
def _RunAllocator(self): |
6534 | 6558 |
"""Run the allocator based on input opcode. |
6535 | 6559 |
|
... | ... | |
6559 | 6583 |
self.instance_name, self.iallocator, |
6560 | 6584 |
utils.CommaJoin(ial.result)) |
6561 | 6585 |
|
6562 |
if not self.failover: |
|
6563 |
if self.lu.op.live is not None and self.lu.op.mode is not None: |
|
6564 |
raise errors.OpPrereqError("Only one of the 'live' and 'mode'" |
|
6565 |
" parameters are accepted", |
|
6566 |
errors.ECODE_INVAL) |
|
6567 |
if self.lu.op.live is not None: |
|
6568 |
if self.lu.op.live: |
|
6569 |
self.lu.op.mode = constants.HT_MIGRATION_LIVE |
|
6570 |
else: |
|
6571 |
self.lu.op.mode = constants.HT_MIGRATION_NONLIVE |
|
6572 |
# reset the 'live' parameter to None so that repeated |
|
6573 |
# invocations of CheckPrereq do not raise an exception |
|
6574 |
self.lu.op.live = None |
|
6575 |
elif self.lu.op.mode is None: |
|
6576 |
# read the default value from the hypervisor |
|
6577 |
i_hv = self.cfg.GetClusterInfo().FillHV(self.instance, |
|
6578 |
skip_globals=False) |
|
6579 |
self.lu.op.mode = i_hv[constants.HV_MIGRATION_MODE] |
|
6580 |
|
|
6581 |
self.live = self.lu.op.mode == constants.HT_MIGRATION_LIVE |
|
6582 |
else: |
|
6583 |
# Failover is never live |
|
6584 |
self.live = False |
|
6585 |
|
|
6586 | 6586 |
def _WaitUntilSync(self): |
6587 | 6587 |
"""Poll with custom rpc for disk sync. |
6588 | 6588 |
|
Also available in: Unified diff