From 5119c79e13d18cfc98c6fb0c11c304b8dfcaadca Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ren=C3=A9=20Nussbaumer?= Date: Fri, 7 Jan 2011 14:11:37 +0100 Subject: [PATCH] Add backend method for pause/resume sync of devices MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: René Nussbaumer Reviewed-by: Iustin Pop Reviewed-by: Michael Hanselmann --- lib/backend.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/lib/backend.py b/lib/backend.py index 6b45a40..a5311ac 100644 --- a/lib/backend.py +++ b/lib/backend.py @@ -1353,6 +1353,41 @@ def BlockdevWipe(disk, offset, size): _WipeDevice(rdev.dev_path, offset, size) +def BlockdevPauseResumeSync(disks, pause): + """Pause or resume the sync of the block device. + + @type disk: list of L{objects.Disk} + @param disk: the disks object we want to pause/resume + @type pause: bool + @param pause: Wheater to pause or resume + + """ + success = [] + for disk in disks: + try: + rdev = _RecursiveFindBD(disk) + except errors.BlockDeviceError: + rdev = None + + if not rdev: + success.append((False, ("Cannot change sync for device %s:" + " device not found" % disk.iv_name))) + continue + + result = rdev.PauseResumeSync(pause) + + if result: + success.append((result, None)) + else: + if pause: + msg = "Pause" + else: + msg = "Resume" + success.append((result, "%s for device %s failed" % (msg, disk.iv_name))) + + return success + + def BlockdevRemove(disk): """Remove a block device. -- 1.7.10.4