From bd4ab1d36f4e4193b7dd5db03ed5a8f69e8725df Mon Sep 17 00:00:00 2001 From: Christian Kellner Date: Wed, 3 Nov 2021 09:31:22 +0000 Subject: [PATCH] stages/lvm2.create: fix 'size' and add 'extents' The `size` option was using `-l`, which in fact was `--extents`. Fix that to use `--size` and add a new option `extents` that will in fact call translate to `--extents` and this replace the current use of the `size` option. Adapt the `fedora-ostree-image` test manifest to use `extents`. --- stages/org.osbuild.lvm2.create | 23 ++++++++++++++++--- test/data/manifests/fedora-ostree-image.json | 2 +- .../manifests/fedora-ostree-image.mpp.json | 2 +- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/stages/org.osbuild.lvm2.create b/stages/org.osbuild.lvm2.create index d705acfb..ca9f01cf 100755 --- a/stages/org.osbuild.lvm2.create +++ b/stages/org.osbuild.lvm2.create @@ -41,16 +41,29 @@ SCHEMA_2 = r""" "items": { "description": "Logical volume", "type": "object", - "required": ["name", "size"], + "required": ["name"], + "oneOf": [ + { + "required": ["size"] + }, { + "required": ["extents"] + } + ], "properties": { "name": { "description": "The logical volume name", "type": "string", "pattern": "[a-zA-Z09+_.][a-zA-Z0-9+_.-]*" }, + "extents": { + "description": "The logical extents of the volume", + "type": "string", + "pattern": "[1-9][0-9]*(%(VG|PVS|FREE|ORIGIN))?" + }, "size": { "description": "The size of the logical volume", - "type": "string" + "type": "string", + "pattern": "[1-9][0-9]*[bBsSkKmMgGtTpPeE]?" } } } @@ -80,10 +93,14 @@ def main(devices, options): for volume in volumes: name = volume["name"] size = volume.get("size") + extents = volume.get("extents") cmd = ["lvcreate", "-an"] + if extents: + cmd += ["--extents", extents] + if size: - cmd += ["-l", size] + cmd += ["--size", size] cmd += ["-n", name, vg_name] diff --git a/test/data/manifests/fedora-ostree-image.json b/test/data/manifests/fedora-ostree-image.json index 87ff3dc0..0cc5d74b 100644 --- a/test/data/manifests/fedora-ostree-image.json +++ b/test/data/manifests/fedora-ostree-image.json @@ -1090,7 +1090,7 @@ "volumes": [ { "name": "root", - "size": "100%FREE" + "extents": "100%FREE" } ] } diff --git a/test/data/manifests/fedora-ostree-image.mpp.json b/test/data/manifests/fedora-ostree-image.mpp.json index 7a2b8904..02e934df 100644 --- a/test/data/manifests/fedora-ostree-image.mpp.json +++ b/test/data/manifests/fedora-ostree-image.mpp.json @@ -488,7 +488,7 @@ "volumes": [ { "name": "root", - "size": "100%FREE" + "extents": "100%FREE" } ] }