From 403f2b292cb9e3f4f1cf71c2f0e46d5d014d1dd2 Mon Sep 17 00:00:00 2001 From: Jonathan Leibiusky Date: Mon, 2 Dec 2013 10:01:19 -0500 Subject: [PATCH] Add CLUSTER MEET command --- src/main/java/redis/clients/jedis/Client.java | 4 ++-- src/main/java/redis/clients/jedis/Jedis.java | 6 ++++++ src/main/java/redis/clients/jedis/Protocol.java | 1 + .../jedis/tests/commands/ClusterCommandsTest.java | 13 ++++++++++--- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/main/java/redis/clients/jedis/Client.java b/src/main/java/redis/clients/jedis/Client.java index b726821..c4e131e 100644 --- a/src/main/java/redis/clients/jedis/Client.java +++ b/src/main/java/redis/clients/jedis/Client.java @@ -808,10 +808,10 @@ public class Client extends BinaryClient implements Commands { hincrByFloat(SafeEncoder.encode(key), SafeEncoder.encode(field), increment); } - public void cluster(final String... args) { + public void cluster(final Object... args) { final byte[][] arg = new byte[args.length][]; for (int i = 0; i < arg.length; i++) { - arg[i] = SafeEncoder.encode(args[i]); + arg[i] = SafeEncoder.encode(args[i].toString()); } cluster(arg); } diff --git a/src/main/java/redis/clients/jedis/Jedis.java b/src/main/java/redis/clients/jedis/Jedis.java index d2daca5..ef952a7 100644 --- a/src/main/java/redis/clients/jedis/Jedis.java +++ b/src/main/java/redis/clients/jedis/Jedis.java @@ -3082,4 +3082,10 @@ public class Jedis extends BinaryJedis implements JedisCommands, MultiKeyCommand client.cluster(Protocol.CLUSTER_NODES); return client.getBulkReply(); } + + public String clusterMeet(final String ip, final int port) { + checkIsInMulti(); + client.cluster(Protocol.CLUSTER_MEET, ip, port); + return client.getStatusCodeReply(); + } } diff --git a/src/main/java/redis/clients/jedis/Protocol.java b/src/main/java/redis/clients/jedis/Protocol.java index e4a9126..22479a5 100644 --- a/src/main/java/redis/clients/jedis/Protocol.java +++ b/src/main/java/redis/clients/jedis/Protocol.java @@ -31,6 +31,7 @@ public final class Protocol { public static final String SENTINEL_SLAVES = "slaves"; public static final String CLUSTER_NODES = "nodes"; + public static final String CLUSTER_MEET = "meet"; private Protocol() { // this prevent the class from instantiation diff --git a/src/test/java/redis/clients/jedis/tests/commands/ClusterCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/ClusterCommandsTest.java index 1599b02..0fe04f1 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/ClusterCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/ClusterCommandsTest.java @@ -13,10 +13,11 @@ public class ClusterCommandsTest extends JedisTestBase { private Jedis node1; private Jedis node2; + private HostAndPort nodeInfo1 = HostAndPortUtil.getClusterServers().get(0); + private HostAndPort nodeInfo2 = HostAndPortUtil.getClusterServers().get(1); + @Before public void setUp() throws Exception { - HostAndPort nodeInfo1 = HostAndPortUtil.getClusterServers().get(0); - HostAndPort nodeInfo2 = HostAndPortUtil.getClusterServers().get(1); node1 = new Jedis(nodeInfo1.getHost(), nodeInfo1.getPort()); node1.connect(); @@ -36,6 +37,12 @@ public class ClusterCommandsTest extends JedisTestBase { @Test public void clusterNodes() { String nodes = node1.clusterNodes(); - assertEquals(1, nodes.split("\n").length); + assertTrue(nodes.split("\n").length > 0); + } + + @Test + public void clusterMeet() { + String status = node1.clusterMeet("127.0.0.1", nodeInfo2.getPort()); + assertEquals("OK", status); } } \ No newline at end of file