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); + } }
