Ramesh N has uploaded a new change for review.

Change subject: engine:fix validation issues in start remove replicated bricks
......................................................................

engine:fix validation issues in start remove replicated bricks

   Fixing the validation issue when user tries to reduce the replica
count by removing one brick from all the replica pairs. Since it is
replicated volume and removing on replicated brick doesn't requrie
data migration

Change-Id: Ib662c2161e96cc1eac1574bea1fc97cdff5feabf
Signed-off-by: Ramesh Nachimuthu <rnach...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/gluster/GlusterBrickValidator.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java
M backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
M 
frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java
M 
frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties
5 files changed, 14 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/43/21243/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/gluster/GlusterBrickValidator.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/gluster/GlusterBrickValidator.java
index c97c0b5..a3e81df 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/gluster/GlusterBrickValidator.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/gluster/GlusterBrickValidator.java
@@ -32,7 +32,9 @@
             return new 
ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_CAN_NOT_REMOVE_ALL_BRICKS_FROM_VOLUME);
         }
         if (volumeEntity.getVolumeType().isReplicatedType()) {
-            if (replicaCount < volumeEntity.getReplicaCount() - 1) {
+            if (replicaCount == volumeEntity.getReplicaCount() - 1 && 
!forceRemove) {
+                return new 
ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_CAN_NOT_REDUCE_REPLICA_COUNT_WITH_DATA_MIGRATION);
+            } else if (replicaCount < volumeEntity.getReplicaCount() - 1) {
                 return new 
ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_CAN_NOT_REDUCE_REPLICA_COUNT_MORE_THAN_ONE);
             } else if (replicaCount > volumeEntity.getReplicaCount()) {
                 return new 
ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_CAN_NOT_INCREASE_REPLICA_COUNT);
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java
index 5524631..d82595e 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java
@@ -761,6 +761,7 @@
     
ACTION_TYPE_FAILED_GLUSTER_VOLUME_REMOVE_BRICKS_NOT_FINISHED(ErrorType.CONFLICT),
     
ACTION_TYPE_FAILED_CAN_NOT_REMOVE_ALL_BRICKS_FROM_VOLUME(ErrorType.CONFLICT),
     
ACTION_TYPE_FAILED_CAN_NOT_REDUCE_REPLICA_COUNT_MORE_THAN_ONE(ErrorType.CONFLICT),
+    
ACTION_TYPE_FAILED_CAN_NOT_REDUCE_REPLICA_COUNT_WITH_DATA_MIGRATION(ErrorType.CONFLICT),
     
ACTION_TYPE_FAILED_CAN_NOT_INCREASE_REPLICA_COUNT_MORE_THAN_ONE(ErrorType.CONFLICT),
     
ACTION_TYPE_FAILED_CAN_NOT_INCREASE_STRIPE_COUNT_MORE_THAN_ONE(ErrorType.CONFLICT),
     ACTION_TYPE_FAILED_CAN_NOT_REDUCE_REPLICA_COUNT(ErrorType.CONFLICT),
diff --git 
a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties 
b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
index 2ce72db..9edcb1d 100644
--- 
a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
+++ 
b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
@@ -311,7 +311,7 @@
 VAR__ACTION__ASSIGN=$action assign
 VAR__ACTION__REBALANCE_START=$action rebalance
 VAR__ACTION__REBALANCE_STOP=$action stop rebalance
-VAR__ACTION__REMOVE_BRICKS_START=$action start removing
+VAR__ACTION__REMOVE_BRICKS_START=$action start removing bricks
 VAR__ACTION__REMOVE_BRICKS_STOP=$action stop remove bricks
 VAR__ACTION__REMOVE_BRICKS_COMMIT=$action commit remove bricks
 VAR__ACTION__START_PROFILE=$action start profiling
@@ -956,6 +956,7 @@
 ACTION_TYPE_FAILED_NOT_A_GLUSTER_VOLUME_BRICK=Cannot ${action} ${type}. 
Replacing brick is not a Gluster volume brick.
 ACTION_TYPE_FAILED_NO_GLUSTER_HOST_TO_PEER_PROBE=Cannot ${action} ${type}. 
There is no available server in the cluster to probe the new server.
 ACTION_TYPE_FAILED_CAN_NOT_REDUCE_REPLICA_COUNT_MORE_THAN_ONE=Cannot ${action} 
${type}. Replica count cannot be reduced by more than one.
+ACTION_TYPE_FAILED_CAN_NOT_REDUCE_REPLICA_COUNT_WITH_DATA_MIGRATION=Cannot 
${action} from ${type}. Data migration is not needed while reducing the replica 
count.
 ACTION_TYPE_FAILED_CAN_NOT_INCREASE_REPLICA_COUNT=Cannot ${action} ${type}. 
Replica count cannot be increased when removing bricks.
 ACTION_TYPE_FAILED_CAN_NOT_REDUCE_REPLICA_COUNT=Cannot ${action} ${type}. 
Replica count cannot be reduced when adding bricks.
 ACTION_TYPE_FAILED_CAN_NOT_INCREASE_REPLICA_COUNT_MORE_THAN_ONE=Cannot 
${action} ${type}. Replica count cannot be increased by more than one.
diff --git 
a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java
 
b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java
index b73e475..161f567 100644
--- 
a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java
+++ 
b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java
@@ -826,6 +826,9 @@
     @DefaultStringValue("$action rebalance")
     String VAR__ACTION__REBALANCE_START();
 
+    @DefaultStringValue("$action start remove brick")
+    String VAR__ACTION__REMOVE_BRICKS_START();
+
     @DefaultStringValue("$action stop rebalance")
     String VAR__ACTION__REBALANCE_STOP();
 
@@ -2525,6 +2528,9 @@
     @DefaultStringValue("Cannot ${action} ${type}. Replica count cannot be 
reduced by more than one.")
     String ACTION_TYPE_FAILED_CAN_NOT_REDUCE_REPLICA_COUNT_MORE_THAN_ONE();
 
+    @DefaultStringValue("Cannot ${action} from ${type}. Data migration is not 
needed while reducing the replica count.")
+    String 
ACTION_TYPE_FAILED_CAN_NOT_REDUCE_REPLICA_COUNT_WITH_DATA_MIGRATION();
+
     @DefaultStringValue("Cannot ${action} ${type}. Replica count cannot be 
increased when removing bricks.")
     String ACTION_TYPE_FAILED_CAN_NOT_INCREASE_REPLICA_COUNT();
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties
 
b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties
index c4d41b8..636f501 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties
+++ 
b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties
@@ -315,7 +315,7 @@
 VAR__ACTION__LOGOFF=$action log off
 VAR__ACTION__REBALANCE_START=$action rebalance
 VAR__ACTION__REBALANCE_STOP=$action stop rebalance
-VAR__ACTION__REMOVE_BRICKS_START=$action start removing
+VAR__ACTION__REMOVE_BRICKS_START=$action start remove bricks
 VAR__ACTION__REMOVE_BRICKS_STOP=$action stop remove bricks
 VAR__ACTION__REMOVE_BRICKS_COMMIT=$action commit remove bricks
 VAR__ACTION__START_PROFILE=$action start profiling
@@ -952,6 +952,7 @@
 ACTION_TYPE_FAILED_BRICK_ID_REQUIRED=Cannot ${action} ${type}. Brick ID is 
required.
 ACTION_TYPE_FAILED_ONE_OR_MORE_BRICKS_ARE_DOWN=Cannot ${action} ${type}. One 
or more bricks are down.
 ACTION_TYPE_FAILED_CAN_NOT_REDUCE_REPLICA_COUNT_MORE_THAN_ONE=Cannot ${action} 
${type}. Replica count cannot be reduced by more than one.
+ACTION_TYPE_FAILED_CAN_NOT_REDUCE_REPLICA_COUNT_WITH_DATA_MIGRATION=Cannot 
${action} from ${type}. Data migration is not needed while reducing the replica 
count.
 ACTION_TYPE_FAILED_CAN_NOT_INCREASE_REPLICA_COUNT=Cannot ${action} ${type}. 
Replica count cannot be increased when removing bricks.
 ACTION_TYPE_FAILED_CAN_NOT_REDUCE_REPLICA_COUNT=Cannot ${action} ${type}. 
Replica count cannot be reduced when adding bricks.
 ACTION_TYPE_FAILED_CAN_NOT_INCREASE_REPLICA_COUNT_MORE_THAN_ONE=Cannot 
${action} ${type}. Replica count cannot be increased by more than one.


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib662c2161e96cc1eac1574bea1fc97cdff5feabf
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Ramesh N <rnach...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to