From 849909b00b310fafe9ea6c10c28a029d942c2680 Mon Sep 17 00:00:00 2001 From: Alfredo Deza Date: Mon, 4 Jun 2018 14:08:44 -0400 Subject: [PATCH] ceph-volume api.lvm fallback to 1 part if none are define when creating lvs Signed-off-by: Alfredo Deza (cherry picked from commit 552d987233545f6f33b9220ea4ea98753f96962f) --- src/ceph-volume/ceph_volume/api/lvm.py | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/src/ceph-volume/ceph_volume/api/lvm.py b/src/ceph-volume/ceph_volume/api/lvm.py index be1bb67d3a64d..0c4df928363f1 100644 --- a/src/ceph-volume/ceph_volume/api/lvm.py +++ b/src/ceph-volume/ceph_volume/api/lvm.py @@ -423,7 +423,7 @@ def create_lv(name, group, size=None, tags=None): return lv -def create_lvs(group, parts=None, size=None, name_prefix='ceph-lv'): +def create_lvs(volume_group, parts=None, size=None, name_prefix='ceph-lv'): """ Create multiple Logical Volumes from a Volume Group by calculating the proper extents from ``parts`` or ``size``. A custom prefix can be used @@ -431,25 +431,22 @@ def create_lvs(group, parts=None, size=None, name_prefix='ceph-lv'): LV creation in ceph-volume will require tags, this is expected to be pre-computed by callers who know Ceph metadata like OSD IDs and FSIDs. It - will probably not be the case when mass-creating LVs, so common/default tags will be - set to ``"null"``. + will probably not be the case when mass-creating LVs, so common/default + tags will be set to ``"null"``. - ceph.empty dict is + .. note:: LVs that are not in use can be detected by querying LVM for tags that are + set to ``"null"``. - LVs that are not in use can be detected by querying LVM for tags that are - set to ``"null"`` - - :param group: The volume group (vg) to use for LV creation + :param volume_group: The volume group (vg) to use for LV creation :type group: ``VolumeGroup()`` object :param parts: Number of LVs to create *instead of* ``size``. :type parts: int :param size: Size (in gigabytes) of LVs to create, e.g. "as many 10gb LVs as possible" :type size: int - - .. warning:: Only one of ``parts`` or ``size`` is allowed. """ if parts is None and size is None: - raise RuntimeError("Unable to create lvs without 'parts' or 'size' being defined") + # fallback to just one part (using 100% of the vg) + parts = 1 lvs = [] tags = { "ceph.osd_id": "null", @@ -457,12 +454,12 @@ def create_lvs(group, parts=None, size=None, name_prefix='ceph-lv'): "ceph.cluster_fsid": "null", "ceph.osd_fsid": "null", } - sizing = group.sizing(parts=parts, size=size) + sizing = volume_group.sizing(parts=parts, size=size) for part in range(0, sizing['parts']): size = sizing['sizes'] lv_name = '%s-%s' % (name_prefix, uuid.uuid4()) lvs.append( - create_lv(lv_name, group.name, size="%sg" % size, tags=tags) + create_lv(lv_name, volume_group.name, size="%sg" % size, tags=tags) ) return lvs -- 2.39.5