Shubhendu Tripathi has posted comments on this change. Change subject: gluster: Added additional can do action check ......................................................................
Patch Set 4: (9 comments) .................................................... File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/gluster/GlusterBrickValidator.java Line 101: } Line 102: Line 103: public ValidationResult canStopOrCommitRemoveBrick(GlusterVolumeEntity volumeEntity, List<GlusterBrickEntity> paramBricks) { Line 104: GlusterAsyncTask asyncTask = volumeEntity.getAsyncTask(); Line 105: if (asyncTask != null && asyncTask.getType() == GlusterTaskType.REMOVE_BRICK) { will do that Line 106: if (paramBricks.isEmpty()) { Line 107: return new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_BRICKS_REQUIRED); Line 108: } Line 109: Line 111: if (paramBricks.size() != bricksForTask.size()) { Line 112: return new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_GLUSTER_VOLUME_REMOVE_BRICKS_PARAMS_INVALID); Line 113: } Line 114: Line 115: int counter = 0; will do Line 116: for (GlusterBrickEntity paramBrick : paramBricks) { Line 117: for (GlusterBrickEntity brick : bricksForTask) { Line 118: // If parameter brick directory matches with any brick no need to continue further to check Line 119: if (paramBrick.getBrickDirectory().equals(brick.getBrickDirectory()) && paramBrick.getServerId() == brick.getServerId()) { Line 115: int counter = 0; Line 116: for (GlusterBrickEntity paramBrick : paramBricks) { Line 117: for (GlusterBrickEntity brick : bricksForTask) { Line 118: // If parameter brick directory matches with any brick no need to continue further to check Line 119: if (paramBrick.getBrickDirectory().equals(brick.getBrickDirectory()) && paramBrick.getServerId() == brick.getServerId()) { will do that Line 120: break; Line 121: } Line 122: counter++; Line 123: // If the bricks list exhausted, it means the parameter brick does found, throw an error Line 116: for (GlusterBrickEntity paramBrick : paramBricks) { Line 117: for (GlusterBrickEntity brick : bricksForTask) { Line 118: // If parameter brick directory matches with any brick no need to continue further to check Line 119: if (paramBrick.getBrickDirectory().equals(brick.getBrickDirectory()) && paramBrick.getServerId() == brick.getServerId()) { Line 120: break; will do Line 121: } Line 122: counter++; Line 123: // If the bricks list exhausted, it means the parameter brick does found, throw an error Line 124: if (counter == bricksForTask.size()) { Line 123: // If the bricks list exhausted, it means the parameter brick does found, throw an error Line 124: if (counter == bricksForTask.size()) { Line 125: return new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_GLUSTER_VOLUME_REMOVE_BRICKS_PARAMS_INVALID); Line 126: } Line 127: } will do Line 128: } Line 129: } Line 130: Line 131: return ValidationResult.VALID; .................................................... File backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/AbstractRemoveGlusterVolumeBricksCommandTest.java Line 56: brick2.setBrickDirectory("/tmp/test-vol122"); Line 57: brick2.setStatus(GlusterStatus.UP); Line 58: bricks.add(brick2); Line 59: return bricks; Line 60: } brick dir names are different so they are invalid names which are not there in bricks for the task Line 61: Line 62: protected Object getvolumeWithoutRemoveBricksTask(Guid volumeId) { Line 63: GlusterVolumeEntity volume = getVolumeWithRemoveBricksTask(volumeId); Line 64: volume.getAsyncTask().setType(null); Line 58: bricks.add(brick2); Line 59: return bricks; Line 60: } Line 61: Line 62: protected Object getvolumeWithoutRemoveBricksTask(Guid volumeId) { This method is used in stop and commit remove brick command test classes Line 63: GlusterVolumeEntity volume = getVolumeWithRemoveBricksTask(volumeId); Line 64: volume.getAsyncTask().setType(null); Line 65: return volume; Line 66: } Line 97: brick.setStatus(GlusterStatus.UP); Line 98: bricks.add(brick); Line 99: } Line 100: return bricks; Line 101: } this method takes no of bricks to be created and brick dir name is always suffuxed with counter value. In the method getInvalidBricks() the intention is to create bricks with names which are not part of bricks list for the task. the names are created with suffixes "11" and "22". Line 102: Line 103: abstract protected GlusterVolumeEntity getVolumeWithRemoveBricksTask(Guid volumeId); .................................................... File backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/CommitRemoveGlusterVolumeBricksCommandTest.java Line 211: assertFalse(cmd.canDoAction()); Line 212: } Line 213: Line 214: @Test Line 215: public void canDoActionFailsWithInvalidParams() { will do Line 216: List<GlusterBrickEntity> paramBricks1 = getInvalidNoOfBricks(volumeWithRemoveBricksTask); Line 217: cmd = spy(new CommitRemoveGlusterVolumeBricksCommand(new GlusterVolumeRemoveBricksParameters(volumeWithRemoveBricksTask, paramBricks1))); Line 218: prepareMocks(cmd); Line 219: assertFalse(cmd.canDoAction()); -- To view, visit http://gerrit.ovirt.org/22353 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: Id7f5d3b48985552aa5f74178008beb39ee7a06f9 Gerrit-PatchSet: 4 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Shubhendu Tripathi <shtri...@redhat.com> Gerrit-Reviewer: Kanagaraj M <kmayi...@redhat.com> Gerrit-Reviewer: Omer Frenkel <ofren...@redhat.com> Gerrit-Reviewer: Sahina Bose <sab...@redhat.com> Gerrit-Reviewer: Shubhendu Tripathi <shtri...@redhat.com> Gerrit-Reviewer: Yair Zaslavsky <yzasl...@redhat.com> Gerrit-Reviewer: oVirt Jenkins CI Server Gerrit-HasComments: Yes _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches