def realdev(self): try: mode = os.stat(self.device)[ST_MODE] except: self.log.debug("can not stat %s" % self.device) return None if S_ISBLK(mode): dev = self.device else: mnt = getmount(self.device) if self.mounts is None: self.mounts = Mounts() m = self.mounts.has_param("mnt", mnt) if m is None: self.log.debug( "can't find dev %(dev)s mounted in %(mnt)s in mnttab" % dict(mnt=mnt, dev=self.device)) return None dev = m.dev return dev
def realdev(self): if self.fs_type in ("none", "tmpfs", "bind"): return if self.device is None: return if self.device.startswith("LABEL=") or self.device.startswith("UUID="): try: _dev = utilities.devices.linux.label_to_dev( self.device, self.svc.node.devtree) except ex.Error as exc: self.status_log(str(exc)) _dev = None if _dev: return _dev return self.device try: mode = os.stat(self.device)[ST_MODE] except: self.log.debug("can not stat %s", self.device) return if os.path.exists(self.device) and S_ISBLK(mode): dev = self.device else: mnt = getmount(self.device) if self.mounts is None: self.mounts = Mounts() mount = self.mounts.has_param("mnt", mnt) if mount is None: self.log.debug("can't find dev %s mounted in %s in mnttab", mnt, self.device) return None dev = mount.dev if dev in ("tmpfs", "shm", "shmfs", "none"): # bind mounts for ex. return return dev
def is_volatile(self): mnt = getmount(self.loopfile) mount = Mounts().mount("tmpfs", mnt) if mount and mount.type == "tmpfs": return True return False