Change in vdsm[master]: Uniform LocalDirectoryConnection.checkTarget() errors.

ewarszaw at redhat.com ewarszaw at redhat.com
Mon Dec 17 09:48:35 UTC 2012


Eduardo has uploaded a new change for review.

Change subject: Uniform LocalDirectoryConnection.checkTarget() errors.
......................................................................

Uniform LocalDirectoryConnection.checkTarget() errors.

Hard to believe: there are uglier things the the True or Exception
pattern.

Change-Id: Icb8d2afd26efbd7ab228ccf20658485f776802de
Signed-off-by: Eduardo <ewarszaw at redhat.com>
---
M vdsm/storage/storageServer.py
M vdsm/storage/storage_exception.py
2 files changed, 13 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/50/10150/1

diff --git a/vdsm/storage/storageServer.py b/vdsm/storage/storageServer.py
index b457d5b..e1c5c09 100644
--- a/vdsm/storage/storageServer.py
+++ b/vdsm/storage/storageServer.py
@@ -445,8 +445,10 @@
                 self._path.replace("_", "__").replace("/", "_"))
 
     def checkTarget(self):
-        return (os.path.isdir(self._path) and
-                fileSD.validateDirAccess(self._path))
+        if not os.path.isdir(self._path):
+            raise se.StorageServerLocalNotDirError(self._path)
+        fileSD.validateDirAccess(self._path)
+        return True
 
     def checkLink(self):
         lnPath = self._getLocalPath()
@@ -459,10 +461,7 @@
         return False
 
     def connect(self):
-        if not self.checkTarget():
-            #TODO: Use proper exception
-            raise Exception("Could not link to directory. Path does not exist "
-                    "or isn't a directory")
+        self.checkTarget()
 
         if self.checkLink():
             return
diff --git a/vdsm/storage/storage_exception.py b/vdsm/storage/storage_exception.py
index 4a80e78..9f3190b 100644
--- a/vdsm/storage/storage_exception.py
+++ b/vdsm/storage/storage_exception.py
@@ -1131,6 +1131,14 @@
         self.value = "path = %s" % targetPath
 
 
+class StorageServerLocalNotDirError(StorageException):
+    code = 469
+    message = "The specified local path is not a directory."
+
+    def __init__(self, targetPath):
+        self.value = "path = %s" % targetPath
+
+
 class MountTypeError(StorageException):
     code = 470
     message = "Mount type error"


--
To view, visit http://gerrit.ovirt.org/10150
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Icb8d2afd26efbd7ab228ccf20658485f776802de
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Eduardo <ewarszaw at redhat.com>


More information about the vdsm-patches mailing list