summaryrefslogtreecommitdiff
path: root/src/Propellor
diff options
context:
space:
mode:
authorNicolas Schodet2017-09-01 23:32:36 +0200
committerNicolas Schodet2017-09-01 23:33:24 +0200
commit2ecd58717ff1ab145b3ec6abea0513b283990734 (patch)
tree940c34610ff756cdfb80f7def5f9e6c41a5ead5a /src/Propellor
parent1b5c0b6c95283f73f13da36e578e96721d61da38 (diff)
Lvm: split size parsing and roundinglvm
Diffstat (limited to 'src/Propellor')
-rw-r--r--src/Propellor/Property/Lvm.hs18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/Propellor/Property/Lvm.hs b/src/Propellor/Property/Lvm.hs
index e48b206a..360595c7 100644
--- a/src/Propellor/Property/Lvm.hs
+++ b/src/Propellor/Property/Lvm.hs
@@ -55,13 +55,14 @@ lvFormatted YesReallyFormatLogicalVolume lv sz fs =
$ "can not get extent size, does volume group "
++ vgname ++ " exists?"
Just extentSize -> do
- case parseSize extentSize of
+ case parseSize of
Nothing -> errorMessage
$ "can not parse volume group size"
Just size -> do
state <- liftIO $ lvState lv
+ let rsize = roundSize extentSize size
ensureProperty w
- $ setupprop size state
+ $ setupprop rsize state
cleanup :: Property UnixLike
cleanup = property' ("removed logical volume " ++ (vglv lv)) $ \w -> do
@@ -70,11 +71,14 @@ lvFormatted YesReallyFormatLogicalVolume lv sz fs =
then removedprop
else doNothing
- -- Parse size and round to next extent size multiple.
- parseSize :: Integer -> Maybe Integer
- parseSize extentSize = do
- s <- readSize dataUnits sz
- return $ (s + extentSize - 1) `div` extentSize * extentSize
+ -- Parse size.
+ parseSize :: Maybe Integer
+ parseSize = readSize dataUnits sz
+
+ -- Round size to next extent size multiple.
+ roundSize :: Integer -> Integer -> Integer
+ roundSize extentSize s =
+ (s + extentSize - 1) `div` extentSize * extentSize
-- Dispatch to the right props.
setupprop :: Integer -> (Maybe LvState) -> Property DebianLike