Revision 0c77c331 lib/masterd/instance.py

b/lib/masterd/instance.py
1605 1605
  msg = _GetRieDiskInfoMessage(disk_index, host, port, magic)
1606 1606
  hmac_digest = utils.Sha1Hmac(cds, msg, salt=salt)
1607 1607
  return (host, port, magic, hmac_digest, salt)
1608

  
1609

  
1610
def CalculateGroupIPolicy(cluster, group):
1611
  """Calculate instance policy for group.
1612

  
1613
  """
1614
  return cluster.SimpleFillIPolicy(group.ipolicy)
1615

  
1616

  
1617
def ComputeDiskSize(disk_template, disks):
1618
  """Compute disk size requirements according to disk template
1619

  
1620
  """
1621
  # Required free disk space as a function of disk and swap space
1622
  req_size_dict = {
1623
    constants.DT_DISKLESS: None,
1624
    constants.DT_PLAIN: sum(d[constants.IDISK_SIZE] for d in disks),
1625
    # 128 MB are added for drbd metadata for each disk
1626
    constants.DT_DRBD8:
1627
      sum(d[constants.IDISK_SIZE] + constants.DRBD_META_SIZE for d in disks),
1628
    constants.DT_FILE: sum(d[constants.IDISK_SIZE] for d in disks),
1629
    constants.DT_SHARED_FILE: sum(d[constants.IDISK_SIZE] for d in disks),
1630
    constants.DT_BLOCK: 0,
1631
    constants.DT_RBD: sum(d[constants.IDISK_SIZE] for d in disks),
1632
  }
1633

  
1634
  if disk_template not in req_size_dict:
1635
    raise errors.ProgrammerError("Disk template '%s' size requirement"
1636
                                 " is unknown" % disk_template)
1637

  
1638
  return req_size_dict[disk_template]

Also available in: Unified diff