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

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. 

14 

15""" 

16Helpers for lvm related routines 

17""" 

18 

19from oslo_concurrency import processutils 

20 

21import manila.privsep 

22 

23 

24@manila.privsep.sys_admin_pctxt.entrypoint 

25def lvremove(vg_name, lv_name): 

26 processutils.execute('lvremove', '-f', f'{vg_name}/{lv_name}') 

27 

28 

29@manila.privsep.sys_admin_pctxt.entrypoint 

30def lvcreate(lv_size, lv_name, vg_name, mirrors=0, region_size=0): 

31 extra_params = [] 

32 

33 if mirrors: 

34 extra_params += ['-m', mirrors, '--nosync'] 

35 if region_size: 

36 extra_params += ['-R', region_size] 

37 

38 processutils.execute( 

39 'lvcreate', '-Wy', '--yes', '-L', f'{lv_size}G', '-n', lv_name, 

40 vg_name, *extra_params) 

41 

42 

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) 

49 

50 

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 

56 

57 

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 

62 

63 

64@manila.privsep.sys_admin_pctxt.entrypoint 

65def lvconvert(vg_name, snapshot_name): 

66 processutils.execute( 

67 'lvconvert', '--merge', f'{vg_name}/{snapshot_name}') 

68 

69 

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) 

74 

75 

76@manila.privsep.sys_admin_pctxt.entrypoint 

77def lvextend(lv_name, new_size): 

78 processutils.execute('lvextend', '-L', '%sG' % new_size, '-r', lv_name)