Change in vdsm[master]: gluster: Modified volumeReplaceBrickCommit verb.

dnarayan at redhat.com dnarayan at redhat.com
Wed May 6 09:47:12 UTC 2015


Darshan N has uploaded a new change for review.

Change subject: gluster: Modified volumeReplaceBrickCommit verb.
......................................................................

gluster: Modified volumeReplaceBrickCommit verb.

This patch modifies volumeReplaceBrickCommit verb, this
verb was taking force as optional parameter. But in
glusterfs-3.7 this force option is made manditory in the
command. To accomodate that, removed force as optional
parameter from verb and replace brick is always executed
with force as option. The name of modified verb is
"volumeReplaceBrickCommitForce".

Change-Id: Id2dc16121cdba99c49d56c4e0b8e7a0194d58d14
Signed-off-by: Darshan N <dnarayan at redhat.com>
---
M client/vdsClientGluster.py
M vdsm/gluster/api.py
M vdsm/gluster/apiwrapper.py
M vdsm/gluster/cli.py
M vdsm/gluster/exception.py
M vdsm/rpc/vdsmapi-gluster-schema.json
6 files changed, 45 insertions(+), 24 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/87/40587/1

diff --git a/client/vdsClientGluster.py b/client/vdsClientGluster.py
index c7ab5f6..72fdc02 100644
--- a/client/vdsClientGluster.py
+++ b/client/vdsClientGluster.py
@@ -163,17 +163,15 @@
         status = self.s.glusterHostRemoveByUuid(hostUuid, force)
         return status['status']['code'], status['status']['message']
 
-    def do_glusterVolumeReplaceBrickCommit(self, args):
+    def do_glusterVolumeReplaceBrickCommitForce(self, args):
         params = self._eqSplit(args)
         volumeName = params.get('volumeName', '')
         existingBrick = params.get('existingBrick', '')
         newBrick = params.get('newBrick', '')
-        force = (params.get('force', 'no').upper() == 'YES')
 
-        status = self.s.glusterVolumeReplaceBrickCommit(volumeName,
-                                                        existingBrick,
-                                                        newBrick,
-                                                        force)
+        status = self.s.glusterVolumeReplaceBrickCommitForce(volumeName,
+                                                             existingBrick,
+                                                             newBrick)
         return status['status']['code'], status['status']['message']
 
     def do_glusterVolumeRemoveBrickStart(self, args):
@@ -825,10 +823,10 @@
               'gluster cluster',
               'remove server from gluster cluster'
               )),
-         'glusterVolumeReplaceBrickCommit': (
-             serv.do_glusterVolumeReplaceBrickCommit,
+         'glusterVolumeReplaceBrickCommitForce': (
+             serv.do_glusterVolumeReplaceBrickCommitForce,
              ('volumeName=<volume_name> existingBrick=<existing_brick> '
-              'newBrick=<new_brick> [force={yes|no}]\n\t'
+              'newBrick=<new_brick> \n\t'
               '<volume_name> is existing volume name\n\t'
               '<existing_brick> is existing brick\n\t'
               '<new_brick> is new brick',
diff --git a/vdsm/gluster/api.py b/vdsm/gluster/api.py
index 2835876..33ed194 100644
--- a/vdsm/gluster/api.py
+++ b/vdsm/gluster/api.py
@@ -215,12 +215,11 @@
         return self.svdsmProxy.glusterVolumeRebalanceStatus(volumeName)
 
     @exportAsVerb
-    def volumeReplaceBrickCommit(self, volumeName, existingBrick, newBrick,
-                                 force=False, options=None):
-        self.svdsmProxy.glusterVolumeReplaceBrickCommit(volumeName,
-                                                        existingBrick,
-                                                        newBrick,
-                                                        force)
+    def volumeReplaceBrickCommitForce(self, volumeName, existingBrick,
+                                      newBrick, options=None):
+        self.svdsmProxy.glusterVolumeReplaceBrickCommitForce(volumeName,
+                                                             existingBrick,
+                                                             newBrick)
 
     @exportAsVerb
     def volumeRemoveBrickStart(self, volumeName, brickList,
diff --git a/vdsm/gluster/apiwrapper.py b/vdsm/gluster/apiwrapper.py
index 578fc92..0a1d16f 100644
--- a/vdsm/gluster/apiwrapper.py
+++ b/vdsm/gluster/apiwrapper.py
@@ -164,6 +164,11 @@
         return self._gluster.volumeRemoveBrickForce(volumeName, brickList,
                                                     replicaCount)
 
+    def replaceBrickCommitForce(self, volumeName, existingBrick, newBrick):
+        return self._gluster.volumeReplaceBrickCommitForce(volumeName,
+                                                           existingBrick,
+                                                           newBrick)
+
     def profileInfo(self, volumeName, nfs=False):
         return self._gluster.volumeProfileInfo(volumeName, nfs)
 
diff --git a/vdsm/gluster/cli.py b/vdsm/gluster/cli.py
index db9b3fc..8bcb5cb 100644
--- a/vdsm/gluster/cli.py
+++ b/vdsm/gluster/cli.py
@@ -726,18 +726,16 @@
 
 
 @makePublic
-def volumeReplaceBrickCommit(volumeName, existingBrick, newBrick,
-                             force=False):
+def volumeReplaceBrickCommitForce(volumeName, existingBrick, newBrick):
     command = _getGlusterVolCmd() + ["replace-brick", volumeName,
-                                     existingBrick, newBrick, "commit"]
-    if force:
-        command.append('force')
+                                     existingBrick, newBrick, "commit",
+                                     "force"]
     try:
         _execGlusterXml(command)
         return True
     except ge.GlusterCmdFailedException as e:
-        raise ge.GlusterVolumeReplaceBrickCommitFailedException(rc=e.rc,
-                                                                err=e.err)
+        raise ge.GlusterVolumeReplaceBrickCommitForceFailedException(rc=e.rc,
+                                                                     err=e.err)
 
 
 @makePublic
diff --git a/vdsm/gluster/exception.py b/vdsm/gluster/exception.py
index 73bdbf5..7e95b3a 100644
--- a/vdsm/gluster/exception.py
+++ b/vdsm/gluster/exception.py
@@ -248,9 +248,10 @@
     message = "Volume delete failed"
 
 
-class GlusterVolumeReplaceBrickCommitFailedException(GlusterVolumeException):
+class GlusterVolumeReplaceBrickCommitForceFailedException(
+        GlusterVolumeException):
     code = 4148
-    message = "Volume replace brick commit failed"
+    message = "Volume replace brick commit force failed"
 
 
 class GlusterVolumesListFailedException(GlusterVolumeException):
diff --git a/vdsm/rpc/vdsmapi-gluster-schema.json b/vdsm/rpc/vdsmapi-gluster-schema.json
index bfc9bd4..f4ee442 100644
--- a/vdsm/rpc/vdsmapi-gluster-schema.json
+++ b/vdsm/rpc/vdsmapi-gluster-schema.json
@@ -1084,6 +1084,26 @@
  'returns': 'RebalanceRemoveStatus'}
 
 ##
+# @GlusterVolume.replaceBrickCommitForce:
+#
+# Replace Gluster volume brick
+#
+# @volumeName: Gluster volume name
+#
+# @existingBrick: Existing brick
+#
+# @newBrick: New brick
+#
+# Returns:
+# Success or failure
+#
+# Since: 4.10.3
+##
+{'command': {'class': 'GlusterVolume', 'name': 'replaceBrickCommitForce'},
+ 'data': {'volumeName': 'str', 'existingBrick': 'str', 'newBrick': 'str'},
+ 'returns': 'bool'}
+
+##
 # @GlusterVolume.rebalanceStatus:
 #
 # Get Gluster volume Rebalance status


-- 
To view, visit https://gerrit.ovirt.org/40587
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id2dc16121cdba99c49d56c4e0b8e7a0194d58d14
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Darshan N <dnarayan at redhat.com>


More information about the vdsm-patches mailing list