Revision 73d6b4a7

b/lib/objects.py
830 830
    self.params = {}
831 831
    # add here config upgrade for this disk
832 832

  
833
    # map of legacy device types (mapping differing LD constants to new
834
    # DT constants)
835
    LEG_DEV_TYPE_MAP = {"lvm": constants.DT_PLAIN, "drbd8": constants.DT_DRBD8}
836
    if self.dev_type in LEG_DEV_TYPE_MAP:
837
      self.dev_type = LEG_DEV_TYPE_MAP[self.dev_type]
838

  
833 839
  @staticmethod
834 840
  def ComputeLDParams(disk_template, disk_params):
835 841
    """Computes Logical Disk parameters from Disk Template parameters.
b/test/py/ganeti.objects_unittest.py
685 685
    self.assertTrue(INVALID_KEY in policy)
686 686

  
687 687

  
688
class TestDisk(unittest.TestCase):
689
  def addChild(self, disk):
690
    """Adds a child of the same device type as the parent."""
691
    disk.children = []
692
    child = objects.Disk()
693
    child.dev_type = disk.dev_type
694
    disk.children.append(child)
695

  
696
  def testUpgradeConfigDevTypeLegacy(self):
697
    for old, new in [("drbd8", constants.DT_DRBD8),
698
                     ("lvm", constants.DT_PLAIN)]:
699
      disk = objects.Disk()
700
      disk.dev_type = old
701
      self.addChild(disk)
702
      disk.UpgradeConfig()
703
      self.assertEqual(new, disk.dev_type)
704
      self.assertEqual(new, disk.children[0].dev_type)
705

  
706
  def testUpgradeConfigDevTypeLegacyUnchanged(self):
707
    dev_types = [constants.DT_FILE, constants.DT_SHARED_FILE,
708
                 constants.DT_BLOCK, constants.DT_EXT,
709
                 constants.DT_RBD]
710
    for dev_type in dev_types:
711
      disk = objects.Disk()
712
      disk.dev_type = dev_type
713
      self.addChild(disk)
714
      disk.UpgradeConfig()
715
      self.assertEqual(dev_type, disk.dev_type)
716
      self.assertEqual(dev_type, disk.children[0].dev_type)
717

  
718

  
688 719
if __name__ == "__main__":
689 720
  testutils.GanetiTestProgram()

Also available in: Unified diff