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 <dnara...@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 <dnara...@redhat.com> _______________________________________________ vdsm-patches mailing list vdsm-patches@lists.fedorahosted.org https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches