Author: tedyu
Date: Fri Sep 16 17:59:02 2011
New Revision: 1171697

URL: http://svn.apache.org/viewvc?rev=1171697&view=rev
Log:
HBASE-4373  HBaseAdmin.assign() does not use force flag (Ramkrishna)

Modified:
    hbase/trunk/CHANGES.txt
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
    
hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java
    
hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/ipc/HMasterInterface.java
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
    
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/HBaseFsckRepair.java
    hbase/trunk/src/main/ruby/hbase/admin.rb
    hbase/trunk/src/main/ruby/shell/commands/assign.rb
    
hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java

Modified: hbase/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=1171697&r1=1171696&r2=1171697&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Fri Sep 16 17:59:02 2011
@@ -494,6 +494,7 @@ Release 0.91.0 - Unreleased
    HBASE-4287  If region opening fails, change region in transition into
                a FAILED_OPEN state so that it can be retried quickly. (todd)
    HBASE-4381  Refactor split decisions into a split policy class. (todd)
+   HBASE-4373  HBaseAdmin.assign() does not use force flag (Ramkrishna)
 
   TASKS
    HBASE-3559  Move report of split to master OFF the heartbeat channel

Modified: 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java?rev=1171697&r1=1171696&r2=1171697&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java 
(original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java 
Fri Sep 16 17:59:02 2011
@@ -54,6 +54,7 @@ import org.apache.hadoop.hbase.ZooKeeper
 import org.apache.hadoop.hbase.catalog.CatalogTracker;
 import org.apache.hadoop.hbase.catalog.MetaReader;
 import org.apache.hadoop.hbase.client.MetaScanner.MetaScannerVisitor;
+import org.apache.hadoop.hbase.coprocessor.ObserverContext;
 import org.apache.hadoop.hbase.ipc.HMasterInterface;
 import org.apache.hadoop.hbase.ipc.HRegionInterface;
 import org.apache.hadoop.hbase.regionserver.wal.FailedLogCloseException;
@@ -1303,16 +1304,32 @@ public class HBaseAdmin implements Abort
   }
 
   /**
-   * @param regionName Region name to assign.
-   * @param force True to force assign.
+   * @param regionName
+   *          Region name to assign.
+   * @param force
+   *          True to force assign.
    * @throws MasterNotRunningException
    * @throws ZooKeeperConnectionException
    * @throws IOException
+   * @deprecated The <code>force</code> is unused.Use {@link #assign(byte[])}
    */
-  public void assign(final byte [] regionName, final boolean force)
-  throws MasterNotRunningException, ZooKeeperConnectionException, IOException {
+  public void assign(final byte[] regionName, final boolean force)
+      throws MasterNotRunningException, ZooKeeperConnectionException,
+      IOException {
     getMaster().assign(regionName, force);
   }
+  
+  /**
+   * @param regionName
+   *          Region name to assign.
+   * @throws MasterNotRunningException
+   * @throws ZooKeeperConnectionException
+   * @throws IOException
+   */
+  public void assign(final byte[] regionName) throws MasterNotRunningException,
+      ZooKeeperConnectionException, IOException {
+    getMaster().assign(regionName);
+  }
 
   /**
    * Unassign a region from current hosting regionserver.  Region will then be

Modified: 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java?rev=1171697&r1=1171696&r2=1171697&view=diff
==============================================================================
--- 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java
 (original)
+++ 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java
 Fri Sep 16 17:59:02 2011
@@ -112,12 +112,12 @@ public class BaseMasterObserver implemen
 
   @Override
   public void preAssign(ObserverContext<MasterCoprocessorEnvironment> ctx,
-      HRegionInfo regionInfo, boolean force) throws IOException {
+      HRegionInfo regionInfo) throws IOException {
   }
-
+  
   @Override
   public void postAssign(ObserverContext<MasterCoprocessorEnvironment> ctx,
-      HRegionInfo regionInfo, boolean force) throws IOException {
+      HRegionInfo regionInfo) throws IOException {
   }
 
   @Override

Modified: 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java?rev=1171697&r1=1171696&r2=1171697&view=diff
==============================================================================
--- 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
 (original)
+++ 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
 Fri Sep 16 17:59:02 2011
@@ -205,21 +205,18 @@ public interface MasterObserver extends 
    * Called prior to assigning a specific region.
    * @param ctx the environment to interact with the framework and master
    * @param regionInfo the regionInfo of the region
-   * @param force whether to force assignment or not
    */
   void preAssign(final ObserverContext<MasterCoprocessorEnvironment> ctx,
-      final HRegionInfo regionInfo, final boolean force)
-  throws IOException;
-
+      final HRegionInfo regionInfo) throws IOException;
+  
   /**
    * Called after the region assignment has been requested.
    * @param ctx the environment to interact with the framework and master
    * @param regionInfo the regionInfo of the region
-   * @param force whether to force assignment or not
    */
   void postAssign(final ObserverContext<MasterCoprocessorEnvironment> ctx,
-      final HRegionInfo regionInfo, final boolean force) throws IOException;
-
+      final HRegionInfo regionInfo) throws IOException;
+  
   /**
    * Called prior to unassigning a given region.
    * @param ctx the environment to interact with the framework and master

Modified: 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/ipc/HMasterInterface.java
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/ipc/HMasterInterface.java?rev=1171697&r1=1171696&r2=1171697&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/ipc/HMasterInterface.java 
(original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/ipc/HMasterInterface.java 
Fri Sep 16 17:59:02 2011
@@ -24,11 +24,15 @@ import java.util.List;
 
 import org.apache.hadoop.hbase.ClusterStatus;
 import org.apache.hadoop.hbase.HColumnDescriptor;
+import org.apache.hadoop.hbase.HRegionInfo;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.UnknownRegionException;
 import org.apache.hadoop.hbase.util.Pair;
+import org.apache.hadoop.hbase.coprocessor.ObserverContext;
 import org.apache.hadoop.hbase.ipc.VersionedProtocol;
 
+
+
 /**
  * Clients interact with the HMasterInterface to gain access to meta-level
  * HBase functionality, like finding an HRegionServer and creating/destroying
@@ -180,11 +184,21 @@ public interface HMasterInterface extend
    * found.
    * @param force If true, will force the assignment.
    * @throws IOException
+   * @deprecated The <code>force</code> is unused.Use {@link #assign(byte[])}
    */
   public void assign(final byte [] regionName, final boolean force)
   throws IOException;
 
   /**
+   * Assign a region to a server chosen at random.
+   * 
+   * @param regionName
+   *          Region to assign. Will use existing RegionPlan if one found.
+   * @throws IOException
+   */
+  public void assign(final byte[] regionName) throws IOException;
+  
+  /**
    * Unassign a region from current hosting regionserver.  Region will then be
    * assigned to a regionserver chosen at random.  Region could be reassigned
    * back to the same server.  Use {@link #move(byte[], byte[])} if you want

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java?rev=1171697&r1=1171696&r2=1171697&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java 
(original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java Fri 
Sep 16 17:59:02 2011
@@ -1330,23 +1330,31 @@ implements HMasterInterface, HMasterRegi
   public boolean isInitialized() {
     return initialized;
   }
+  
+  @Override
+  @Deprecated
+  public void assign(final byte[] regionName, final boolean force)
+      throws IOException {
+    assign(regionName);
+  }
 
   @Override
-  public void assign(final byte [] regionName, final boolean force)
-  throws IOException {
+  public void assign(final byte [] regionName)throws IOException {
     Pair<HRegionInfo, ServerName> pair =
       MetaReader.getRegion(this.catalogTracker, regionName);
     if (pair == null) throw new 
UnknownRegionException(Bytes.toString(regionName));
     if (cpHost != null) {
-      if (cpHost.preAssign(pair.getFirst(), force)) {
+      if (cpHost.preAssign(pair.getFirst())) {
         return;
       }
     }
     assignRegion(pair.getFirst());
     if (cpHost != null) {
-      cpHost.postAssign(pair.getFirst(), force);
+      cpHost.postAssign(pair.getFirst());
     }
   }
+  
+  
 
   public void assignRegion(HRegionInfo hri) {
     assignmentManager.assign(hri, true);

Modified: 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java?rev=1171697&r1=1171696&r2=1171697&view=diff
==============================================================================
--- 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
 (original)
+++ 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
 Fri Sep 16 17:59:02 2011
@@ -332,14 +332,13 @@ public class MasterCoprocessorHost
     }
   }
 
-  boolean preAssign(final HRegionInfo regionInfo, final boolean force)
-      throws IOException {
+  boolean preAssign(final HRegionInfo regionInfo) throws IOException {
     boolean bypass = false;
     ObserverContext<MasterCoprocessorEnvironment> ctx = null;
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        ((MasterObserver)env.getInstance()).preAssign(ctx, regionInfo, force);
+        ((MasterObserver) env.getInstance()).preAssign(ctx, regionInfo);
         bypass |= ctx.shouldBypass();
         if (ctx.shouldComplete()) {
           break;
@@ -349,12 +348,12 @@ public class MasterCoprocessorHost
     return bypass;
   }
 
-  void postAssign(final HRegionInfo regionInfo, final boolean force) throws 
IOException {
+  void postAssign(final HRegionInfo regionInfo) throws IOException {
     ObserverContext<MasterCoprocessorEnvironment> ctx = null;
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        ((MasterObserver)env.getInstance()).postAssign(ctx, regionInfo, force);
+        ((MasterObserver) env.getInstance()).postAssign(ctx, regionInfo);
         if (ctx.shouldComplete()) {
           break;
         }

Modified: 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/HBaseFsckRepair.java
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/HBaseFsckRepair.java?rev=1171697&r1=1171696&r2=1171697&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/HBaseFsckRepair.java 
(original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/HBaseFsckRepair.java 
Fri Sep 16 17:59:02 2011
@@ -80,7 +80,7 @@ public class HBaseFsckRepair {
 
   private static void forceOfflineInZK(HBaseAdmin admin, final HRegionInfo 
region)
   throws ZooKeeperConnectionException, KeeperException, IOException {
-    admin.assign(region.getRegionName(), true);
+    admin.assign(region.getRegionName());
   }
 
   private static void closeRegionSilentlyAndWait(Configuration conf,
@@ -117,4 +117,4 @@ public class HBaseFsckRepair {
       }
     }
   }
-}
\ No newline at end of file
+}

Modified: hbase/trunk/src/main/ruby/hbase/admin.rb
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/main/ruby/hbase/admin.rb?rev=1171697&r1=1171696&r2=1171697&view=diff
==============================================================================
--- hbase/trunk/src/main/ruby/hbase/admin.rb (original)
+++ hbase/trunk/src/main/ruby/hbase/admin.rb Fri Sep 16 17:59:02 2011
@@ -230,8 +230,8 @@ module Hbase
     
#----------------------------------------------------------------------------------------------
     
#----------------------------------------------------------------------------------------------
     # Assign a region
-    def assign(region_name, force)
-      @admin.assign(region_name.to_java_bytes, 
java.lang.Boolean::valueOf(force))
+    def assign(region_name)
+      @admin.assign(region_name.to_java_bytes)
     end
 
     
#----------------------------------------------------------------------------------------------

Modified: hbase/trunk/src/main/ruby/shell/commands/assign.rb
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/main/ruby/shell/commands/assign.rb?rev=1171697&r1=1171696&r2=1171697&view=diff
==============================================================================
--- hbase/trunk/src/main/ruby/shell/commands/assign.rb (original)
+++ hbase/trunk/src/main/ruby/shell/commands/assign.rb Fri Sep 16 17:59:02 2011
@@ -23,15 +23,15 @@ module Shell
     class Assign < Command
       def help
         return <<-EOF
-Assign a region.  Add 'true' to force assign of a region. Use with caution.
-If region already assigned, this command will just go ahead and reassign
+Assign a region.Use with caution.If region already assigned,
+this command will just go ahead and reassign
 the region anyways. For experts only.
 EOF
       end
 
-      def command(region_name, force = 'false')
+      def command(region_name)
         format_simple_command do
-          admin.assign(region_name, force)
+          admin.assign(region_name)
         end
       end
     end

Modified: 
hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java?rev=1171697&r1=1171696&r2=1171697&view=diff
==============================================================================
--- 
hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java
 (original)
+++ 
hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java
 Fri Sep 16 17:59:02 2011
@@ -333,10 +333,10 @@ public class TestMasterObserver {
     public boolean preMoveCalledOnly() {
       return preMoveCalled && !postMoveCalled;
     }
-
+    
     @Override
     public void preAssign(ObserverContext<MasterCoprocessorEnvironment> env,
-        final HRegionInfo regionInfo, final boolean force) throws IOException {
+        final HRegionInfo regionInfo) throws IOException {
       if (bypass) {
         env.bypass();
       }
@@ -345,10 +345,10 @@ public class TestMasterObserver {
 
     @Override
     public void postAssign(ObserverContext<MasterCoprocessorEnvironment> env,
-        final HRegionInfo regionInfo, final boolean force) throws IOException {
+        final HRegionInfo regionInfo) throws IOException {
       postAssignCalled = true;
     }
-
+    
     public boolean wasAssignCalled() {
       return preAssignCalled && postAssignCalled;
     }


Reply via email to