You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by sa...@apache.org on 2018/04/12 21:56:54 UTC
[geode] branch develop updated: GEODE-4962: Fix typo and output
format from 'list gateways' gfsh command (#1778)
This is an automated email from the ASF dual-hosted git repository.
sai_boorlagadda pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/develop by this push:
new 3468fb5 GEODE-4962: Fix typo and output format from 'list gateways' gfsh command (#1778)
3468fb5 is described below
commit 3468fb5e5041bfd2a9aaa44de14873ba76b508f5
Author: Sai Boorlagadda <sa...@gmail.com>
AuthorDate: Thu Apr 12 14:56:47 2018 -0700
GEODE-4962: Fix typo and output format from 'list gateways' gfsh command (#1778)
---
.../internal/cli/commands/ListGatewayCommand.java | 7 +-
.../management/internal/cli/i18n/CliStrings.java | 2 +-
.../cli/commands/ListGatewayCommandTest.java | 106 +++++++++++++++++++++
3 files changed, 112 insertions(+), 3 deletions(-)
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListGatewayCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListGatewayCommand.java
index 1e5bd23..8346e58 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListGatewayCommand.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ListGatewayCommand.java
@@ -15,6 +15,9 @@
package org.apache.geode.management.internal.cli.commands;
+import static java.util.stream.Collectors.joining;
+
+import java.util.Arrays;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
@@ -112,7 +115,7 @@ public class ListGatewayCommand extends InternalGfshCommand {
return result;
}
- private void accumulateListGatewayResult(CompositeResultData crd,
+ protected void accumulateListGatewayResult(CompositeResultData crd,
Map<String, Map<String, GatewaySenderMXBean>> gatewaySenderBeans,
Map<String, GatewayReceiverMXBean> gatewayReceiverBeans) {
if (!gatewaySenderBeans.isEmpty()) {
@@ -147,7 +150,7 @@ public class ListGatewayCommand extends InternalGfshCommand {
gatewayReceiverData.accumulate(CliStrings.RESULT_SENDERS_COUNT,
entry.getValue().getClientConnectionCount());
gatewayReceiverData.accumulate(CliStrings.RESULT_SENDER_CONNECTED,
- entry.getValue().getConnectedGatewaySenders());
+ Arrays.stream(entry.getValue().getConnectedGatewaySenders()).collect(joining(", ")));
}
}
}
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/i18n/CliStrings.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/i18n/CliStrings.java
index 29195f5..0ed0e8e 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/i18n/CliStrings.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/i18n/CliStrings.java
@@ -2892,7 +2892,7 @@ public class CliStrings {
public static final String HEADER_GATEWAY_RECEIVER = "GatewayReceiver";
public static final String RESULT_PORT = "Port";
public static final String RESULT_SENDERS_COUNT = "Sender Count";
- public static final String RESULT_SENDER_CONNECTED = "Sender's Connected";
+ public static final String RESULT_SENDER_CONNECTED = "Senders Connected";
public static final String SECTION_GATEWAY_SENDER_AVAILABLE = "Available GatewaySender Section";
public static final String SECTION_GATEWAY_SENDER_NOT_AVAILABLE =
"Not Available GatewaySender Section";
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ListGatewayCommandTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ListGatewayCommandTest.java
new file mode 100644
index 0000000..0d6ec8f
--- /dev/null
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ListGatewayCommandTest.java
@@ -0,0 +1,106 @@
+package org.apache.geode.management.internal.cli.commands;
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
+ * agreements. See the NOTICE file distributed with this work for additional information regarding
+ * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License. You may obtain a
+ * copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+import static java.util.stream.Collectors.toSet;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.powermock.api.mockito.PowerMockito.doReturn;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.stream.Stream;
+
+import org.json.JSONObject;
+import org.junit.Before;
+import org.junit.ClassRule;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+import org.apache.geode.distributed.DistributedMember;
+import org.apache.geode.management.DistributedSystemMXBean;
+import org.apache.geode.management.GatewayReceiverMXBean;
+import org.apache.geode.management.internal.SystemManagementService;
+import org.apache.geode.management.internal.cli.i18n.CliStrings;
+import org.apache.geode.management.internal.cli.result.CompositeResultData;
+import org.apache.geode.management.internal.cli.result.ResultBuilder;
+import org.apache.geode.test.junit.categories.UnitTest;
+import org.apache.geode.test.junit.rules.GfshParserRule;
+
+@Category(UnitTest.class)
+public class ListGatewayCommandTest {
+
+ @ClassRule
+ public static GfshParserRule gfsh = new GfshParserRule();
+
+ private ListGatewayCommand command;
+ private static String COMMAND = "list gateways";
+ private DistributedMember member;
+ private SystemManagementService service;
+ private DistributedSystemMXBean mxBean;
+ private GatewayReceiverMXBean receiverMXBean;
+ private Map<String, GatewayReceiverMXBean> receiverBeans = new HashMap<>();;
+
+ @Before
+ public void setup() {
+ command = spy(ListGatewayCommand.class);
+ member = mock(DistributedMember.class);
+ service = mock(SystemManagementService.class);
+ mxBean = mock(DistributedSystemMXBean.class);
+
+ doReturn(Stream.of(member).collect(toSet())).when(command).findMembers(any(), any());
+ doReturn(service).when(command).getManagementService();
+
+ receiverMXBean = mock(GatewayReceiverMXBean.class);
+ doReturn(5407).when(receiverMXBean).getPort();
+ doReturn(7).when(receiverMXBean).getClientConnectionCount();
+ receiverBeans.put("10.118.19.46(server-ln-1:31527)<v1>:1026", receiverMXBean);
+ }
+
+ @Test
+ public void listGatewaysDisplaysGatewaySendersAndReceivers() {
+ CompositeResultData crd = ResultBuilder.createCompositeResultData();
+ crd.setHeader(CliStrings.HEADER_GATEWAYS);
+
+ doReturn(new String[] {"10.118.19.31(server-ny-2:33256)<v2>:1029",
+ "10.118.19.31(server-ny-1:33206)<v1>:1028"}).when(receiverMXBean)
+ .getConnectedGatewaySenders();
+
+ command.accumulateListGatewayResult(crd, Collections.EMPTY_MAP, receiverBeans);
+ JSONObject tableContent = (JSONObject) crd.retrieveSectionByIndex(0).getSectionGfJsonObject()
+ .get("__tables__-GatewayReceiver Table");
+
+ assertThat(tableContent.get("content").toString()).contains(
+ "[\"10.118.19.31(server-ny-2:33256)<v2>:1029, 10.118.19.31(server-ny-1:33206)<v1>:1028\"]");
+ }
+
+ @Test
+ public void listGatewaysDisplaysGatewayReceiversWhenEmpty() {
+ CompositeResultData crd = ResultBuilder.createCompositeResultData();
+ crd.setHeader(CliStrings.HEADER_GATEWAYS);
+
+ doReturn(new String[0]).when(receiverMXBean).getConnectedGatewaySenders();
+
+ command.accumulateListGatewayResult(crd, Collections.EMPTY_MAP, receiverBeans);
+ JSONObject tableContent = (JSONObject) crd.retrieveSectionByIndex(0).getSectionGfJsonObject()
+ .get("__tables__-GatewayReceiver Table");
+
+ assertThat(tableContent.get("content").toString()).contains("[\"\"]");
+ }
+
+}
--
To stop receiving notification emails like this one, please contact
sai_boorlagadda@apache.org.