From 6388c40fcd95fbb2625c228508f8a712446ffbc3 Mon Sep 17 00:00:00 2001 From: Alfredo Deza Date: Wed, 23 May 2018 09:23:40 -0400 Subject: [PATCH] ceph-volume api.lvm default to null tags on lvs created Signed-off-by: Alfredo Deza (cherry picked from commit 490e73eff1b5b7cc98db5d3df292759e1773c0ab) --- src/ceph-volume/ceph_volume/api/lvm.py | 27 +++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/ceph-volume/ceph_volume/api/lvm.py b/src/ceph-volume/ceph_volume/api/lvm.py index cb3b16030ce8b..a277a4ee59e89 100644 --- a/src/ceph-volume/ceph_volume/api/lvm.py +++ b/src/ceph-volume/ceph_volume/api/lvm.py @@ -487,16 +487,41 @@ def create_lvs(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 (defaults to ``ceph-lv``), these names are always suffixed with a uuid. + + 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"``. + + ceph.empty dict is + + 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 + :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") lvs = [] + tags = { + "ceph.osd_id": "null", + "ceph.type": "null", + "ceph.cluster_fsid": "null", + "ceph.osd_fsid": "null", + } sizing = 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={}) + create_lv(lv_name, group.name, size="%sg" % size, tags=tags) ) return lvs -- 2.39.5