Revision 6d1b57f0 lib/cmdlib.py

b/lib/cmdlib.py
6277 6277
                   prereq=True, ecode=errors.ECODE_STATE)
6278 6278

  
6279 6279

  
6280
    if self.lu.op.live is not None and self.lu.op.mode is not None:
6281
      raise errors.OpPrereqError("Only one of the 'live' and 'mode'"
6282
                                 " parameters are accepted",
6283
                                 errors.ECODE_INVAL)
6284
    if self.lu.op.live is not None:
6285
      if self.lu.op.live:
6286
        self.lu.op.mode = constants.HT_MIGRATION_LIVE
6287
      else:
6288
        self.lu.op.mode = constants.HT_MIGRATION_NONLIVE
6289
      # reset the 'live' parameter to None so that repeated
6290
      # invocations of CheckPrereq do not raise an exception
6291
      self.lu.op.live = None
6292
    elif self.lu.op.mode is None:
6293
      # read the default value from the hypervisor
6294
      i_hv = self.cfg.GetClusterInfo().FillHV(self.instance, skip_globals=False)
6295
      self.lu.op.mode = i_hv[constants.HV_MIGRATION_MODE]
6296

  
6297
    self.live = self.lu.op.mode == constants.HT_MIGRATION_LIVE
6298

  
6280 6299
  def _RunAllocator(self):
6281 6300
    """Run the allocator based on input opcode.
6282 6301

  
......
6306 6325
                 self.instance_name, self.lu.op.iallocator,
6307 6326
                 utils.CommaJoin(ial.result))
6308 6327

  
6309
    if self.lu.op.live is not None and self.lu.op.mode is not None:
6310
      raise errors.OpPrereqError("Only one of the 'live' and 'mode'"
6311
                                 " parameters are accepted",
6312
                                 errors.ECODE_INVAL)
6313
    if self.lu.op.live is not None:
6314
      if self.lu.op.live:
6315
        self.lu.op.mode = constants.HT_MIGRATION_LIVE
6316
      else:
6317
        self.lu.op.mode = constants.HT_MIGRATION_NONLIVE
6318
      # reset the 'live' parameter to None so that repeated
6319
      # invocations of CheckPrereq do not raise an exception
6320
      self.lu.op.live = None
6321
    elif self.lu.op.mode is None:
6322
      # read the default value from the hypervisor
6323
      i_hv = self.cfg.GetClusterInfo().FillHV(self.instance, skip_globals=False)
6324
      self.lu.op.mode = i_hv[constants.HV_MIGRATION_MODE]
6325

  
6326
    self.live = self.lu.op.mode == constants.HT_MIGRATION_LIVE
6327

  
6328 6328
  def _WaitUntilSync(self):
6329 6329
    """Poll with custom rpc for disk sync.
6330 6330

  

Also available in: Unified diff