Skip to content

Can't traverse lv for vg #6

Description

@firejoke
>>> import lvm2py
>>> d = dict()
>>> lvm = lvm2py.LVM()
>>> for v in lvm.vgscan():
...     d.update({v.name:v})
...
>>> d
{'stack-volumes-lvmdriver-1': <lvm2py.vg.VolumeGroup object at 0x7f3e233e7550>, 'centos': <lvm2py.vg.VolumeGroup object at 0x7f3e233e75d0>}
>>> d['centos'].lvscan()
[<lvm2py.lv.LogicalVolume object at 0x7f3e233e7490>, <lvm2py.lv.LogicalVolume object at 0x7f3e233e7590>, <lvm2py.lv.LogicalVolume object at 0x7f3e233e7650>]
>>> d['centos'].lvscan()
[<lvm2py.lv.LogicalVolume object at 0x7f3e233e74d0>, <lvm2py.lv.LogicalVolume object at 0x7f3e233e76d0>, <lvm2py.lv.LogicalVolume object at 0x7f3e233e7710>]
>>> d['centos'].lvscan()
[<lvm2py.lv.LogicalVolume object at 0x7f3e233e7490>, <lvm2py.lv.LogicalVolume object at 0x7f3e233e7690>, <lvm2py.lv.LogicalVolume object at 0x7f3e233e7610>]

>>> for k in d.keys():
...     d[k].lvscan()
...
[]
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
  File "/usr/lib/python2.7/site-packages/lvm2py/vg.py", line 429, in lvscan
    self.open()
  File "/usr/lib/python2.7/site-packages/lvm2py/vg.py", line 80, in open
    raise HandleError("Failed to initialize VG Handle.")
lvm2py.exception.HandleError: Failed to initialize VG Handle.
>>> d['centos'].lvscan()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/site-packages/lvm2py/vg.py", line 429, in lvscan
    self.open()
  File "/usr/lib/python2.7/site-packages/lvm2py/vg.py", line 80, in open
    raise HandleError("Failed to initialize VG Handle.")
lvm2py.exception.HandleError: Failed to initialize VG Handle.

本来想获取 Volume Group 和 Logical Volume 的对应关系, 但这里出错了

>>> import lvm2py
>>> VG_MAP_LV = dict()
>>> [
...     VG_MAP_LV.update({
...         vg.name: [
...             "%s-%s" % (vg.name, lv.name)
...             for lv in vg.lvscan()
...         ]
...     })
...     for vg in lvm2py.LVM().vgscan()
... ]
Traceback (most recent call last):
  File "<stdin>", line 8, in <module>
  File "/usr/lib/python2.7/site-packages/lvm2py/vg.py", line 429, in lvscan
    self.open()
  File "/usr/lib/python2.7/site-packages/lvm2py/vg.py", line 80, in open
    raise HandleError("Failed to initialize VG Handle.")
lvm2py.exception.HandleError: Failed to initialize VG Handle.
[root@localhost tmp]# lsblk -f
NAME            FSTYPE      LABEL UUID                                   MOUNTPOINT
sda
├─sda1          vfat              9C98-C01B                              /boot/efi
├─sda2          xfs               8d90e8a5-07d6-42e0-8f3b-e93704410d2d   /boot
├─sda3          LVM2_member       szoVYV-JLyI-TuI2-D6ub-4Dhy-h0mw-VdedPU
│ ├─centos-root xfs               fe58a080-5218-489b-aca1-ab60ee7e2221   /
│ ├─centos-swap swap              d2fbac1f-5801-40d9-a170-09f7a498d64d   [SWAP]
│ └─centos-home xfs               e5ab0cfe-91e1-4de1-ab5c-bc31dd6ab93e   /home
└─sda4          LVM2_member       QVWGxl-0Jz6-Y7tG-Vgjm-nKdf-0Rsl-rtROEt
sdb
sdc
[root@localhost tmp]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

[root@localhost tmp]# cat /proc/version
Linux version 3.10.0-862.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) ) #1 SMP Fri Apr 20 16:44:24 UTC 2018

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions