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