You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by mr...@apache.org on 2016/09/02 00:51:36 UTC

[17/35] usergrid git commit: Make sure root shard cannot be set to compacted=false in ShardManager tool.

Make sure root shard cannot be set to compacted=false in ShardManager tool.


Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/4b01bc88
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/4b01bc88
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/4b01bc88

Branch: refs/heads/master
Commit: 4b01bc88960db9008a553871a9f9a526baf09e45
Parents: 09bcce5
Author: Michael Russo <mr...@apigee.com>
Authored: Mon Aug 29 17:11:01 2016 -0700
Committer: Michael Russo <mr...@apigee.com>
Committed: Mon Aug 29 17:11:01 2016 -0700

----------------------------------------------------------------------
 .../org/apache/usergrid/tools/ShardManager.java | 36 +++++++++++++++++---
 1 file changed, 32 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/4b01bc88/stack/tools/src/main/java/org/apache/usergrid/tools/ShardManager.java
----------------------------------------------------------------------
diff --git a/stack/tools/src/main/java/org/apache/usergrid/tools/ShardManager.java b/stack/tools/src/main/java/org/apache/usergrid/tools/ShardManager.java
index ecf447c..96320c9 100644
--- a/stack/tools/src/main/java/org/apache/usergrid/tools/ShardManager.java
+++ b/stack/tools/src/main/java/org/apache/usergrid/tools/ShardManager.java
@@ -57,6 +57,8 @@ public class ShardManager extends ToolBase {
 
     private static final String SHARD_TYPE_ARG = "shardType";
 
+    private static final String SHARD_INDEX_ARG = "shardIndex";
+
 
     @Override
     @SuppressWarnings("static-access")
@@ -84,11 +86,17 @@ public class ShardManager extends ToolBase {
         options.addOption(repairOption);
 
         Option shardTypeOption =
-            OptionBuilder.withArgName(SHARD_TYPE_ARG).hasArg().isRequired(true).withDescription("either collection or connection")
+            OptionBuilder.withArgName(SHARD_TYPE_ARG).hasArg().isRequired(false).withDescription("either collection or connection")
                 .create(SHARD_TYPE_ARG);
 
         options.addOption(shardTypeOption);
 
+        Option shardIndexOption =
+            OptionBuilder.withArgName(SHARD_INDEX_ARG).hasArg().isRequired(false).withDescription("the shardIndex")
+                .create(SHARD_INDEX_ARG);
+
+        options.addOption(shardIndexOption);
+
         return options;
     }
 
@@ -115,10 +123,13 @@ public class ShardManager extends ToolBase {
 
         String shardType = line.getOptionValue(SHARD_TYPE_ARG);
 
+        String shardIndex = line.getOptionValue(SHARD_INDEX_ARG);
+
         boolean repair = false;
         if( isNotEmpty(repairTask) && (
             repairTask.equalsIgnoreCase("removeAllShardEnds") || repairTask.equalsIgnoreCase("removeLastShardEnd") ||
-            repairTask.equalsIgnoreCase("resetAllCompactionStatus"))) {
+            repairTask.equalsIgnoreCase("resetAllCompactionStatus") || repairTask.equalsIgnoreCase("setCompacted") ||
+                repairTask.equalsIgnoreCase("clearCompacted"))) {
 
             repair = true;
         }
@@ -156,13 +167,30 @@ public class ShardManager extends ToolBase {
         while (shards.hasNext()) {
             Shard shard = shards.next();
 
+
             logger.info("Seeking over shard: {}", shard);
 
             if(repair) {
 
                 logger.info("Repair enabled with task: {}", repairTask);
 
-                if( repairTask.equalsIgnoreCase("removeLastShardEnd") && firstShard){
+                if ( repairTask.equalsIgnoreCase("setCompacted") && isNotEmpty(shardIndex)  && Long.valueOf(shardIndex).equals(shard.getShardIndex())){
+
+                    logger.info("Setting compacted=true for shard: {}", shard);
+
+                    shard.setCompacted(true);
+                    edgeShardSerialization.writeShardMeta(applicationScope, shard, directedEdgeMeta).execute();
+
+
+                }else if ( repairTask.equalsIgnoreCase("clearCompacted") && isNotEmpty(shardIndex)  && Long.valueOf(shardIndex).equals(shard.getShardIndex())){
+
+                    logger.info("Setting compacted=false for shard: {}", shard);
+
+                    shard.setCompacted(false);
+                    edgeShardSerialization.writeShardMeta(applicationScope, shard, directedEdgeMeta).execute();
+
+
+                } else if( repairTask.equalsIgnoreCase("removeLastShardEnd") && firstShard){
 
                     logger.info("Removing shard end from shard: {}", shard);
 
@@ -176,7 +204,7 @@ public class ShardManager extends ToolBase {
                     shard.setShardEnd(Optional.absent());
                     edgeShardSerialization.writeShardMeta(applicationScope, shard, directedEdgeMeta).execute();
 
-                } else if ( repairTask.equalsIgnoreCase("resetAllCompactionStatus")){
+                } else if ( repairTask.equalsIgnoreCase("resetAllCompactionStatus") && shard.getShardIndex() != 0){
 
                     logger.info("Setting compacted=false for shard: {}", shard);