Revision cd46491f lib/cmdlib.py

b/lib/cmdlib.py
8639 8639
  return results
8640 8640

  
8641 8641

  
8642
def _ComputeLDParams(disk_template, disk_params):
8643
  """Computes Logical Disk parameters from Disk Template parameters.
8644

  
8645
  @type disk_template: string
8646
  @param disk_template: disk template, one of L{constants.DISK_TEMPLATES}
8647
  @type disk_params: dict
8648
  @param disk_params: disk template parameters; dict(template_name -> parameters
8649
  @rtype: list(dict)
8650
  @return: a list of dicts, one for each node of the disk hierarchy. Each dict
8651
    contains the LD parameters of the node. The tree is flattened in-order.
8652

  
8653
  """
8654
  if disk_template not in constants.DISK_TEMPLATES:
8655
    raise errors.ProgrammerError("Unknown disk template %s" % disk_template)
8656

  
8657
  result = list()
8658
  dt_params = disk_params[disk_template]
8659
  if disk_template == constants.DT_DRBD8:
8660
    drbd_params = {
8661
      constants.LDP_RESYNC_RATE: dt_params[constants.DRBD_RESYNC_RATE],
8662
      constants.LDP_BARRIERS: dt_params[constants.DRBD_DISK_BARRIERS],
8663
      constants.LDP_NO_META_FLUSH: dt_params[constants.DRBD_META_BARRIERS],
8664
      constants.LDP_DEFAULT_METAVG: dt_params[constants.DRBD_DEFAULT_METAVG],
8665
      constants.LDP_DISK_CUSTOM: dt_params[constants.DRBD_DISK_CUSTOM],
8666
      constants.LDP_NET_CUSTOM: dt_params[constants.DRBD_NET_CUSTOM],
8667
      constants.LDP_DYNAMIC_RESYNC: dt_params[constants.DRBD_DYNAMIC_RESYNC],
8668
      constants.LDP_PLAN_AHEAD: dt_params[constants.DRBD_PLAN_AHEAD],
8669
      constants.LDP_FILL_TARGET: dt_params[constants.DRBD_FILL_TARGET],
8670
      constants.LDP_DELAY_TARGET: dt_params[constants.DRBD_DELAY_TARGET],
8671
      constants.LDP_MAX_RATE: dt_params[constants.DRBD_MAX_RATE],
8672
      constants.LDP_MIN_RATE: dt_params[constants.DRBD_MIN_RATE],
8673
      }
8674

  
8675
    drbd_params = \
8676
      objects.FillDict(constants.DISK_LD_DEFAULTS[constants.LD_DRBD8],
8677
                       drbd_params)
8678

  
8679
    result.append(drbd_params)
8680

  
8681
    # data LV
8682
    data_params = {
8683
      constants.LDP_STRIPES: dt_params[constants.DRBD_DATA_STRIPES],
8684
      }
8685
    data_params = \
8686
      objects.FillDict(constants.DISK_LD_DEFAULTS[constants.LD_LV],
8687
                       data_params)
8688
    result.append(data_params)
8689

  
8690
    # metadata LV
8691
    meta_params = {
8692
      constants.LDP_STRIPES: dt_params[constants.DRBD_META_STRIPES],
8693
      }
8694
    meta_params = \
8695
      objects.FillDict(constants.DISK_LD_DEFAULTS[constants.LD_LV],
8696
                       meta_params)
8697
    result.append(meta_params)
8698

  
8699
  elif (disk_template == constants.DT_FILE or
8700
        disk_template == constants.DT_SHARED_FILE):
8701
    result.append(constants.DISK_LD_DEFAULTS[constants.LD_FILE])
8702

  
8703
  elif disk_template == constants.DT_PLAIN:
8704
    params = {
8705
      constants.LDP_STRIPES: dt_params[constants.LV_STRIPES],
8706
      }
8707
    params = \
8708
      objects.FillDict(constants.DISK_LD_DEFAULTS[constants.LD_LV],
8709
                       params)
8710
    result.append(params)
8711

  
8712
  elif disk_template == constants.DT_BLOCK:
8713
    result.append(constants.DISK_LD_DEFAULTS[constants.LD_BLOCKDEV])
8714

  
8715
  elif disk_template == constants.DT_RBD:
8716
    params = {
8717
      constants.LDP_POOL: dt_params[constants.RBD_POOL]
8718
      }
8719
    params = \
8720
      objects.FillDict(constants.DISK_LD_DEFAULTS[constants.LD_RBD],
8721
                       params)
8722
    result.append(params)
8723

  
8724
  return result
8725

  
8726

  
8727 8642
def _GenerateDRBD8Branch(lu, primary, secondary, size, vgnames, names,
8728 8643
                         iv_name, p_minor, s_minor, drbd_params, data_params,
8729 8644
                         meta_params):

Also available in: Unified diff