예제 #1
0
    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
예제 #2
0
    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
예제 #3
0
파일: linux.py 프로젝트: sherlant/opensvc
 def is_volatile(self):
     mnt = getmount(self.loopfile)
     mount = Mounts().mount("tmpfs", mnt)
     if mount and mount.type == "tmpfs":
         return True
     return False