Revision 153d9724 lib/backend.py
b/lib/backend.py | ||
---|---|---|
768 | 768 |
return result |
769 | 769 |
|
770 | 770 |
|
771 |
def MirrorAddChild(md_cdev, new_cdev):
|
|
772 |
"""Extend an MD raid1 array.
|
|
771 |
def MirrorAddChildren(parent_cdev, new_cdevs):
|
|
772 |
"""Extend a mirrored block device.
|
|
773 | 773 |
|
774 | 774 |
""" |
775 |
md_bdev = _RecursiveFindBD(md_cdev, allow_partial=True)
|
|
776 |
if md_bdev is None:
|
|
777 |
logger.Error("Can't find md device")
|
|
775 |
parent_bdev = _RecursiveFindBD(parent_cdev, allow_partial=True)
|
|
776 |
if parent_bdev is None:
|
|
777 |
logger.Error("Can't find parent device")
|
|
778 | 778 |
return False |
779 |
new_bdev = _RecursiveFindBD(new_cdev)
|
|
780 |
if new_bdev is None:
|
|
781 |
logger.Error("Can't find new device to add") |
|
779 |
new_bdevs = [_RecursiveFindBD(disk) for disk in new_cdevs]
|
|
780 |
if new_bdevs.count(None) > 0:
|
|
781 |
logger.Error("Can't find new device(s) to add")
|
|
782 | 782 |
return False |
783 |
new_bdev.Open() |
|
784 |
md_bdev.AddChild(new_bdev) |
|
783 |
parent_bdev.AddChildren(new_bdevs) |
|
785 | 784 |
return True |
786 | 785 |
|
787 | 786 |
|
788 |
def MirrorRemoveChild(md_cdev, new_cdev):
|
|
789 |
"""Reduce an MD raid1 array.
|
|
787 |
def MirrorRemoveChildren(parent_cdev, new_cdevs):
|
|
788 |
"""Shrink a mirrored block device.
|
|
790 | 789 |
|
791 | 790 |
""" |
792 |
md_bdev = _RecursiveFindBD(md_cdev)
|
|
793 |
if md_bdev is None:
|
|
791 |
parent_bdev = _RecursiveFindBD(parent_cdev)
|
|
792 |
if parent_bdev is None:
|
|
794 | 793 |
return False |
795 |
new_bdev = _RecursiveFindBD(new_cdev)
|
|
796 |
if new_bdev is None:
|
|
794 |
new_bdevs = [_RecursiveFindBD(disk) for disk in new_cdevs]
|
|
795 |
if new_bdevs.count(None) > 0:
|
|
797 | 796 |
return False |
798 |
new_bdev.Open() |
|
799 |
md_bdev.RemoveChild(new_bdev.dev_path) |
|
797 |
parent_bdev.RemoveChildren(new_bdevs) |
|
800 | 798 |
return True |
801 | 799 |
|
802 | 800 |
|
Also available in: Unified diff