Coverage for manila/privsep/lvm.py: 47%
34 statements
« prev ^ index » next coverage.py v7.11.0, created at 2026-02-18 22:19 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2026-02-18 22:19 +0000
1# Copyright 2021 Red Hat, Inc
2#
3# Licensed under the Apache License, Version 2.0 (the "License"); you may
4# not use this file except in compliance with the License. You may obtain
5# a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12# License for the specific language governing permissions and limitations
13# under the License.
15"""
16Helpers for lvm related routines
17"""
19from oslo_concurrency import processutils
21import manila.privsep
24@manila.privsep.sys_admin_pctxt.entrypoint
25def lvremove(vg_name, lv_name):
26 processutils.execute('lvremove', '-f', f'{vg_name}/{lv_name}')
29@manila.privsep.sys_admin_pctxt.entrypoint
30def lvcreate(lv_size, lv_name, vg_name, mirrors=0, region_size=0):
31 extra_params = []
33 if mirrors:
34 extra_params += ['-m', mirrors, '--nosync']
35 if region_size:
36 extra_params += ['-R', region_size]
38 processutils.execute(
39 'lvcreate', '-Wy', '--yes', '-L', f'{lv_size}G', '-n', lv_name,
40 vg_name, *extra_params)
43@manila.privsep.sys_admin_pctxt.entrypoint
44def lv_snapshot_create(snapshot_size, snap_name, orig_lv_name):
45 size_str = '%sG' % snapshot_size
46 processutils.execute(
47 'lvcreate', '-L', size_str, '--name', snap_name,
48 '--snapshot', orig_lv_name)
51@manila.privsep.sys_admin_pctxt.entrypoint
52def get_vgs(vg_name):
53 out, err = processutils.execute(
54 'vgs', vg_name, '--rows', '--units', 'g',)
55 return out, err
58@manila.privsep.sys_admin_pctxt.entrypoint
59def list_vgs_get_name():
60 out, err = processutils.execute('vgs', '--noheadings', '-o', 'name')
61 return out, err
64@manila.privsep.sys_admin_pctxt.entrypoint
65def lvconvert(vg_name, snapshot_name):
66 processutils.execute(
67 'lvconvert', '--merge', f'{vg_name}/{snapshot_name}')
70@manila.privsep.sys_admin_pctxt.entrypoint
71def lvrename(vg_name, lv_name, new_name):
72 processutils.execute(
73 'lvrename', vg_name, lv_name, new_name)
76@manila.privsep.sys_admin_pctxt.entrypoint
77def lvextend(lv_name, new_size):
78 processutils.execute('lvextend', '-L', '%sG' % new_size, '-r', lv_name)