]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph-volume: adds sys_info constant to hold system information
authorAndrew Schoen <aschoen@redhat.com>
Thu, 16 Aug 2018 20:10:30 +0000 (15:10 -0500)
committerAlfredo Deza <adeza@redhat.com>
Fri, 24 Aug 2018 14:18:04 +0000 (10:18 -0400)
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 <aschoen@redhat.com>
src/ceph-volume/ceph_volume/__init__.py
src/ceph-volume/ceph_volume/util/device.py

index 2dde88581b08b885af806a4591fc937953d9152e..640fb1e6fb1512bcf239c4c41dc2c2851335946e 100644 (file)
@@ -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
index 1836bc5f4ab40e6ce0be7685d21622d21cb49e17..2c85c56b897d6c4f20f497723677c57533499980 100644 (file)
@@ -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):