def connect(self): if self._mount.isMounted(): return self.validate() self.log.info("Creating directory %r", self._getLocalPath()) fileUtils.createdir(self._getLocalPath()) try: self._mount.mount(self.options, self._vfsType, cgroup=self.CGROUP) except MountError: t, v, tb = sys.exc_info() try: os.rmdir(self._getLocalPath()) except OSError as e: self.log.warn("Error removing mountpoint directory %r: %s", self._getLocalPath(), e) six.reraise(t, v, tb) else: try: fileSD.validateDirAccess( self.getMountObj().getRecord().fs_file) except se.StorageServerAccessPermissionError: t, v, tb = sys.exc_info() try: self.disconnect() except OSError: self.log.exception("Error disconnecting") six.reraise(t, v, tb)
def _preCreateValidation(cls, sdUUID, domPath, typeSpecificArg, version): # Some trivial resource validation if os.path.abspath(typeSpecificArg) != typeSpecificArg: raise se.StorageDomainIllegalRemotePath(typeSpecificArg) fileSD.validateDirAccess(domPath) sd.validateDomainVersion(version) # Make sure there are no remnants of other domain mdpat = os.path.join(domPath, "*", sd.DOMAIN_META_DATA) if len(glob(mdpat)) > 0: raise se.StorageDomainNotEmpty(typeSpecificArg)
def _preCreateValidation(cls, sdUUID, domPath, typeSpecificArg, version): # Some trivial resource validation if os.path.abspath(typeSpecificArg) != typeSpecificArg: raise se.StorageDomainIllegalRemotePath(typeSpecificArg) fileSD.validateDirAccess(domPath) fileSD.validateFileSystemFeatures(sdUUID, domPath) sd.validateDomainVersion(version) # Make sure there are no remnants of other domain mdpat = os.path.join(domPath, "*", sd.DOMAIN_META_DATA) if len(glob(mdpat)) > 0: raise se.StorageDomainNotEmpty(typeSpecificArg)
def _preCreateValidation(cls, sdUUID, domPath, typeSpecificArg, storageType, version): # Some trivial resource validation # TODO Checking storageType==nfs in the nfs class is not clean if storageType == sd.NFS_DOMAIN and ":" not in typeSpecificArg: raise se.StorageDomainIllegalRemotePath(typeSpecificArg) sd.validateDomainVersion(version) # Make sure the underlying file system is mounted if not mount.isMounted(domPath): raise se.StorageDomainFSNotMounted(domPath) fileSD.validateDirAccess(domPath) # Make sure there are no remnants of other domain mdpat = os.path.join(domPath, "*", sd.DOMAIN_META_DATA) if len(oop.getProcessPool(sdUUID).glob.glob(mdpat)) > 0: raise se.StorageDomainNotEmpty(typeSpecificArg)
def _preCreateValidation(cls, sdUUID, domPath, typeSpecificArg, storageType, version): # Some trivial resource validation # TODO Checking storageType==nfs in the nfs class is not clean if storageType == sd.NFS_DOMAIN and ":" not in typeSpecificArg: raise se.StorageDomainIllegalRemotePath(typeSpecificArg) sd.validateDomainVersion(version) # Make sure the underlying file system is mounted if not mount.isMounted(domPath): raise se.StorageDomainFSNotMounted(domPath) fileSD.validateDirAccess(domPath) fileSD.validateFileSystemFeatures(sdUUID, domPath) # Make sure there are no remnants of other domain mdpat = os.path.join(domPath, "*", sd.DOMAIN_META_DATA) if len(oop.getProcessPool(sdUUID).glob.glob(mdpat)) > 0: raise se.StorageDomainNotEmpty(typeSpecificArg)
def checkTarget(self): if not os.path.isdir(self._path): raise se.StorageServerLocalNotDirError(self._path) fileSD.validateDirAccess(self._path) return True
def checkTarget(self): if not os.path.isdir(self._path): raise se.InvalidParameterException('path', self._path, "not a directory") fileSD.validateDirAccess(self._path) return True