Repository: hbase
Updated Branches:
  refs/heads/branch-1 4c7f0f243 -> 97d1ba401


HBASE-17317 [branch-1] The updatePeerConfig method in ReplicationPeersZKImpl 
didn't update the table-cfs map


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/97d1ba40
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/97d1ba40
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/97d1ba40

Branch: refs/heads/branch-1
Commit: 97d1ba401503d5ec504087b6cd3e93995fa21b7b
Parents: 4c7f0f2
Author: Guanghao Zhang <[email protected]>
Authored: Tue Dec 20 18:51:26 2016 +0800
Committer: Guanghao Zhang <[email protected]>
Committed: Tue Dec 20 18:51:26 2016 +0800

----------------------------------------------------------------------
 .../replication/ReplicationPeersZKImpl.java     |  1 +
 .../replication/TestReplicationAdmin.java       | 38 ++++++++++++++++++++
 2 files changed, 39 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/97d1ba40/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeersZKImpl.java
----------------------------------------------------------------------
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeersZKImpl.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeersZKImpl.java
index 9e3c92e..b242ca7 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeersZKImpl.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeersZKImpl.java
@@ -375,6 +375,7 @@ public class ReplicationPeersZKImpl extends 
ReplicationStateZKBase implements Re
     // or data that weren't explicitly changed
     existingConfig.getConfiguration().putAll(newConfig.getConfiguration());
     existingConfig.getPeerData().putAll(newConfig.getPeerData());
+    existingConfig.setTableCFsMap(newConfig.getTableCFsMap());
     existingConfig.setBandwidth(newConfig.getBandwidth());
     try {
       ZKUtil.setData(this.zookeeper, getPeerNode(id),

http://git-wip-us.apache.org/repos/asf/hbase/blob/97d1ba40/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java
index cf7b236..83b08c1 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java
@@ -380,4 +380,42 @@ public class TestReplicationAdmin {
     assertEquals(2097152, admin.getPeerConfig(ID_ONE).getBandwidth());
     admin.removePeer(ID_ONE);
   }
+
+  @Test
+  public void testUpdatePeerConfig() throws Exception {
+    TableName tab1 = TableName.valueOf("t1");
+    TableName tab2 = TableName.valueOf("t2");
+    Map<TableName, List<String>> tableCFs = new HashMap<>();
+
+    ReplicationPeerConfig config = new ReplicationPeerConfig();
+    config.setClusterKey(KEY_ONE);
+    config.getConfiguration().put("key1", "value1");
+    tableCFs.put(tab1, new ArrayList<String>());
+    config.setTableCFsMap(tableCFs);
+    admin.addPeer(ID_ONE, config, null);
+    admin.peerAdded(ID_ONE);
+
+    config = admin.getPeerConfig(ID_ONE);
+    assertEquals("value1", config.getConfiguration().get("key1"));
+    assertNull(config.getConfiguration().get("key2"));
+    assertTrue(config.getTableCFsMap().containsKey(tab1));
+    assertFalse(config.getTableCFsMap().containsKey(tab2));
+
+    // Update replication peer config
+    config = new ReplicationPeerConfig();
+    config.setClusterKey(KEY_ONE);
+    config.getConfiguration().put("key2", "value2");
+    tableCFs.clear();
+    tableCFs.put(tab2, new ArrayList<String>());
+    config.setTableCFsMap(tableCFs);
+    admin.updatePeerConfig(ID_ONE, config);
+
+    config = admin.getPeerConfig(ID_ONE);
+    assertEquals("value1", config.getConfiguration().get("key1"));
+    assertEquals("value2", config.getConfiguration().get("key2"));
+    assertFalse(config.getTableCFsMap().containsKey(tab1));
+    assertTrue(config.getTableCFsMap().containsKey(tab2));
+
+    admin.removePeer(ID_ONE);
+  }
 }

Reply via email to