From: mulhern amulhern@redhat.com
Related: #56
Signed-off-by: mulhern amulhern@redhat.com --- blivet/tasks/lukstasks.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+)
diff --git a/blivet/tasks/lukstasks.py b/blivet/tasks/lukstasks.py index 176aed8..e5bafe6 100644 --- a/blivet/tasks/lukstasks.py +++ b/blivet/tasks/lukstasks.py @@ -19,8 +19,11 @@ # # Red Hat Author(s): Anne Mulhern amulhern@redhat.com
+from gi.repository import BlockDev as blockdev + from .. import util
+from ..devicelibs import crypto from ..errors import LUKSError from ..size import Size
@@ -101,3 +104,27 @@ def doTask(self): if error_msg: raise LUKSError(error_msg) return self._extractSize(out) + +class LUKSResize(task.BasicApplication, dfresize.DFResizeTask): + """ Handle resize of LUKS device. """ + + description = "resize luks device" + + ext = availability.BLOCKDEV_CRYPTO_PLUGIN + + # units for specifying new size + unit = crypto.SECTOR_SIZE + + def __init__(self, a_luks): + """ Initializer. + + :param :class:`~.formats.luks.LUKS` a_luks: a LUKS format object + """ + self.luks = a_luks + + def doTask(self): + """ Resizes the LUKS format. """ + try: + blockdev.crypto.luks_resize(self.luks.mapName, self.luks.targetSize.convertTo(self.unit)) + except blockdev.CryptoError as e: + raise LUKSError(e)