From: Andrew Schoen Date: Thu, 16 Aug 2018 20:10:30 +0000 (-0500) Subject: ceph-volume: adds sys_info constant to hold system information X-Git-Tag: v14.0.1~499^2~19 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=035f1a4092bba44cce95cabc1e5a12e3938e1150;p=ceph-ci.git ceph-volume: adds sys_info constant to hold system information This is only currently used to hold information about devices from /sys/block in the util.Device class in the sys_api property. Signed-off-by: Andrew Schoen --- diff --git a/src/ceph-volume/ceph_volume/__init__.py b/src/ceph-volume/ceph_volume/__init__.py index 2dde88581b0..640fb1e6fb1 100644 --- a/src/ceph-volume/ceph_volume/__init__.py +++ b/src/ceph-volume/ceph_volume/__init__.py @@ -1,6 +1,10 @@ from collections import namedtuple +sys_info = namedtuple('sys_info', ['devices']) +sys_info.devices = dict() + + class UnloadedConfig(object): """ This class is used as the default value for conf.ceph so that if diff --git a/src/ceph-volume/ceph_volume/util/device.py b/src/ceph-volume/ceph_volume/util/device.py index 1836bc5f4ab..2c85c56b897 100644 --- a/src/ceph-volume/ceph_volume/util/device.py +++ b/src/ceph-volume/ceph_volume/util/device.py @@ -1,4 +1,5 @@ import os +from ceph_volume import sys_info from ceph_volume.api import lvm from ceph_volume.util import disk @@ -12,6 +13,7 @@ class Device(object): self.lv_api = None self.pvs_api = [] self.disk_api = {} + self.sys_api = {} self._exists = None self._is_lvm_member = None self._parse() @@ -30,6 +32,10 @@ class Device(object): if device_type in ['part', 'disk']: self._set_lvm_membership() + if not sys_info.devices: + sys_info.devices = disk.get_devices() + self.sys_api = sys_info.devices.get(self.abspath, {}) + def __repr__(self): prefix = 'Unknown' if self.is_lv: @@ -63,9 +69,7 @@ class Device(object): @property def exists(self): - if self._exists is None: - self._exists = os.path.exists(self.abspath) - return self._exists + return os.path.exists(self.abspath) @property def is_lvm_member(self): @@ -75,9 +79,7 @@ class Device(object): @property def is_mapper(self): - if self._is_mapper is None: - self._is_mapper = self.path.startswith('/dev/mapper') - return self._is_mapper + return self.path.startswith('/dev/mapper') @property def is_lv(self):