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