Revision e588764d lib/cmdlib.py

b/lib/cmdlib.py
5988 5988
    """
5989 5989
    # set optional parameters to none if they don't exist
5990 5990
    for attr in ["pnode", "snode", "iallocator", "hypervisor",
5991
                 "disk_template"]:
5991
                 "disk_template", "identify_defaults"]:
5992 5992
      if not hasattr(self.op, attr):
5993 5993
        setattr(self.op, attr, None)
5994 5994

  
......
6313 6313
            einfo.has_option(constants.INISECT_INS, name)):
6314 6314
          self.op.beparams[name] = einfo.get(constants.INISECT_INS, name)
6315 6315

  
6316
  def _RevertToDefaults(self, cluster):
6317
    """Revert the instance parameters to the default values.
6318

  
6319
    """
6320
    # hvparams
6321
    hv_defs = cluster.GetHVDefaults(self.op.hypervisor, self.op.os_type)
6322
    for name in self.op.hvparams.keys():
6323
      if name in hv_defs and hv_defs[name] == self.op.hvparams[name]:
6324
        del self.op.hvparams[name]
6325
    # beparams
6326
    be_defs = cluster.beparams.get(constants.PP_DEFAULT, {})
6327
    for name in self.op.beparams.keys():
6328
      if name in be_defs and be_defs[name] == self.op.beparams[name]:
6329
        del self.op.beparams[name]
6330
    # nic params
6331
    nic_defs = cluster.nicparams.get(constants.PP_DEFAULT, {})
6332
    for nic in self.op.nics:
6333
      for name in constants.NICS_PARAMETERS:
6334
        if name in nic and name in nic_defs and nic[name] == nic_defs[name]:
6335
          del nic[name]
6336

  
6316 6337
  def CheckPrereq(self):
6317 6338
    """Check prerequisites.
6318 6339

  
......
6355 6376
    self.be_full = objects.FillDict(cluster.beparams[constants.PP_DEFAULT],
6356 6377
                                    self.op.beparams)
6357 6378

  
6379
    # now that hvp/bep are in final format, let's reset to defaults,
6380
    # if told to do so
6381
    if self.op.identify_defaults:
6382
      self._RevertToDefaults(cluster)
6383

  
6358 6384
    # NIC buildup
6359 6385
    self.nics = []
6360 6386
    for idx, nic in enumerate(self.op.nics):

Also available in: Unified diff