From 4fa05cb3a146164fbc6cf56c29f91f1147303d84 Mon Sep 17 00:00:00 2001 From: Prasanna Kumar Kalever Date: Tue, 6 Jul 2021 13:01:08 +0530 Subject: [PATCH] util: add helper functions for resize of encrypted volume such as: ResizeEncryptedVolume() and LuksResize() Signed-off-by: Prasanna Kumar Kalever --- internal/util/crypto.go | 11 +++++++++++ internal/util/cryptsetup.go | 5 +++++ 2 files changed, 16 insertions(+) diff --git a/internal/util/crypto.go b/internal/util/crypto.go index 07780fdb1..c9e64352b 100644 --- a/internal/util/crypto.go +++ b/internal/util/crypto.go @@ -261,6 +261,17 @@ func OpenEncryptedVolume(ctx context.Context, devicePath, mapperFile, passphrase return err } +// ResizeEncryptedVolume resizes encrypted volume so that it can be used by the client. +func ResizeEncryptedVolume(ctx context.Context, mapperFile string) error { + DebugLog(ctx, "Resizing LUKS device %s", mapperFile) + _, stderr, err := LuksResize(mapperFile) + if err != nil { + ErrorLog(ctx, "failed to resize LUKS device %s: %s", mapperFile, stderr) + } + + return err +} + // CloseEncryptedVolume closes encrypted volume so it can be detached. func CloseEncryptedVolume(ctx context.Context, mapperFile string) error { DebugLog(ctx, "Closing LUKS device %s", mapperFile) diff --git a/internal/util/cryptsetup.go b/internal/util/cryptsetup.go index 22bc30e72..dbdb45102 100644 --- a/internal/util/cryptsetup.go +++ b/internal/util/cryptsetup.go @@ -43,6 +43,11 @@ func LuksOpen(devicePath, mapperFile, passphrase string) (stdout, stderr []byte, return execCryptsetupCommand(&passphrase, "luksOpen", devicePath, mapperFile, "-d", "/dev/stdin") } +// LuksResize resizes LUKS encrypted partition. +func LuksResize(mapperFile string) (stdout, stderr []byte, err error) { + return execCryptsetupCommand(nil, "resize", mapperFile) +} + // LuksClose removes existing mapping. func LuksClose(mapperFile string) (stdout, stderr []byte, err error) { return execCryptsetupCommand(nil, "luksClose", mapperFile)