Change in vdsm[master]: gluster: raise suitable exception based on errno for peerDetach

dnarayan at redhat.com dnarayan at redhat.com
Wed Dec 11 05:50:12 UTC 2013


Hello Bala.FA,

I'd like you to do a code review.  Please visit

    http://gerrit.ovirt.org/22284

to review the following change.

Change subject: gluster: raise suitable exception based on errno for peerDetach
......................................................................

gluster: raise suitable exception based on errno for peerDetach

Raising suitable exception based on the errno given by gluster
cli output for verb peerDetach.

Change-Id: I557a264445806695bb83d77400993ef9c8cfa698
Signed-off-by: ndarshan <dnarayan at redhat.com>
---
M vdsm/gluster/cli.py
M vdsm/gluster/exception.py
2 files changed, 13 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/84/22284/1

diff --git a/vdsm/gluster/cli.py b/vdsm/gluster/cli.py
index 39e152a..74b4590 100644
--- a/vdsm/gluster/cli.py
+++ b/vdsm/gluster/cli.py
@@ -92,12 +92,13 @@
         tree = etree.fromstring('\n'.join(out))
         rv = int(tree.find('opRet').text)
         msg = tree.find('opErrstr').text
+        errNo = int(tree.find('opErrno').text)
     except _etreeExceptions:
         raise ge.GlusterXmlErrorException(err=out)
     if rv == 0:
         return tree
     else:
-        raise ge.GlusterCmdFailedException(rc=rv, err=[msg])
+        raise ge.GlusterCmdFailedException(rc=rv, err=[msg], errNo=errNo)
 
 
 def _getLocalIpAddress():
@@ -832,7 +833,10 @@
         _execGlusterXml(command)
         return True
     except ge.GlusterCmdFailedException as e:
-        raise ge.GlusterHostRemoveFailedException(rc=e.rc, err=e.err)
+        if e.errNo == 2:
+            raise ge.GlusterHostNotPartOfClusterException(rc=e.rc, err=e.err)
+        else:
+            raise ge.GlusterHostRemoveFailedException(rc=e.rc, err=e.err)
 
 
 def _parsePeerStatus(tree, gHostName, gUuid, gStatus):
diff --git a/vdsm/gluster/exception.py b/vdsm/gluster/exception.py
index 93a2225..a7edd8b 100644
--- a/vdsm/gluster/exception.py
+++ b/vdsm/gluster/exception.py
@@ -37,10 +37,11 @@
     code = 4100
     message = "Gluster Exception"
 
-    def __init__(self, rc=0, out=(), err=()):
+    def __init__(self, rc=0, out=(), err=(), errNo=0):
         self.rc = rc
         self.out = out
         self.err = err
+        self.errNo = errNo
 
     def __str__(self):
         o = '\n'.join(self.out)
@@ -389,6 +390,11 @@
     message = "Remove host failed"
 
 
+class GlusterHostNotPartOfClusterException(GlusterHostException):
+    code = 4409
+    message = "Host not part of cluster"
+
+
 class GlusterHostsListFailedException(GlusterHostException):
     code = 4407
     message = "Hosts list failed"


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I557a264445806695bb83d77400993ef9c8cfa698
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Darshan N <dnarayan at redhat.com>
Gerrit-Reviewer: Bala.FA <barumuga at redhat.com>


More information about the vdsm-patches mailing list