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.