Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id A93BE200CA7 for ; Tue, 30 May 2017 19:41:58 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id A4A51160BE8; Tue, 30 May 2017 17:41:58 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 1106A160BE6 for ; Tue, 30 May 2017 19:41:54 +0200 (CEST) Received: (qmail 59687 invoked by uid 500); 30 May 2017 17:41:54 -0000 Mailing-List: contact commits-help@geode.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@geode.apache.org Delivered-To: mailing list commits@geode.apache.org Received: (qmail 59325 invoked by uid 99); 30 May 2017 17:41:53 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 30 May 2017 17:41:53 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 97689E968C; Tue, 30 May 2017 17:41:53 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: klund@apache.org To: commits@geode.apache.org Date: Tue, 30 May 2017 17:42:00 -0000 Message-Id: <5d3a72ca0ad942adbdfa02d0afede534@git.apache.org> In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [08/43] geode git commit: GEODE-2977: make group/name option values consistent archived-at: Tue, 30 May 2017 17:41:58 -0000 GEODE-2977: make group/name option values consistent * this closes #536 Project: http://git-wip-us.apache.org/repos/asf/geode/repo Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/c1ab3ffe Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/c1ab3ffe Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/c1ab3ffe Branch: refs/heads/feature/GEODE-2632-17 Commit: c1ab3ffecb0c0a435fab64e94a97c2efc28ab085 Parents: 7b34cfd Author: YehEmily Authored: Tue May 23 12:27:40 2017 -0700 Committer: Jinmei Liao Committed: Thu May 25 15:02:14 2017 -0700 ---------------------------------------------------------------------- .../apache/geode/cache/AttributesFactory.java | 17 +-- .../geode/internal/cache/BucketRegion.java | 22 --- .../apache/geode/internal/lang/StringUtils.java | 2 - .../geode/management/internal/cli/CliUtil.java | 21 --- .../internal/cli/commands/ConfigCommands.java | 12 +- .../CreateAlterDestroyRegionCommands.java | 9 +- .../internal/cli/commands/DeployCommands.java | 20 ++- .../cli/commands/DiskStoreCommands.java | 18 ++- .../cli/commands/DurableClientCommands.java | 56 ++++---- .../internal/cli/commands/FunctionCommands.java | 13 +- .../internal/cli/commands/IndexCommands.java | 56 ++++---- .../cli/commands/MiscellaneousCommands.java | 28 ++-- .../internal/cli/commands/QueueCommands.java | 18 ++- .../internal/cli/commands/RegionCommands.java | 13 +- .../internal/cli/commands/WanCommands.java | 143 ++++++++++++------- .../internal/cli/CliUtilDUnitTest.java | 81 +++++------ 16 files changed, 240 insertions(+), 289 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/geode/blob/c1ab3ffe/geode-core/src/main/java/org/apache/geode/cache/AttributesFactory.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/cache/AttributesFactory.java b/geode-core/src/main/java/org/apache/geode/cache/AttributesFactory.java index 69f1087..0d59279 100644 --- a/geode-core/src/main/java/org/apache/geode/cache/AttributesFactory.java +++ b/geode-core/src/main/java/org/apache/geode/cache/AttributesFactory.java @@ -1496,27 +1496,12 @@ public class AttributesFactory { LocalizedStrings.AttributesFactory_TOTAL_SIZE_OF_PARTITION_REGION_MUST_BE_0 .toLocalizedString()); } - // listeners are supported here as of v5.1 - // if (attrs.getCacheListeners().length > 0) { - // throw new IllegalStateException( - // "Can not add cache listeners to RegionAttributes when PartitionAttributes are set."); - // } - // loaders are supported here as of v5.1 - // if (attrs.getCacheLoader() != null) { - // throw new IllegalStateException( - // "Can not set CacheLoader in RegionAttributes when PartitionAttributes are set."); - // } + if (!PartitionedRegionHelper.ALLOWED_DATA_POLICIES.contains(attrs.getDataPolicy())) { throw new IllegalStateException( LocalizedStrings.AttributesFactory_DATA_POLICIES_OTHER_THAN_0_ARE_NOT_ALLOWED_IN_PARTITIONED_REGIONS .toLocalizedString(PartitionedRegionHelper.ALLOWED_DATA_POLICIES)); } - // if ( attrs.getDataPolicy().isEmpty() && pa.getLocalMaxMemory() != 0) { - // throw new IllegalStateException( - // "A non-zero PartitionAttributes localMaxMemory setting is not compatible" + - // " with an empty DataPolicy. Please use DataPolicy.NORMAL instead."); - // } - // fix bug #52033 by invoking getLocalMaxMemoryForValidation here if (((PartitionAttributesImpl) pa).getLocalMaxMemoryForValidation() < 0) { throw new IllegalStateException( http://git-wip-us.apache.org/repos/asf/geode/blob/c1ab3ffe/geode-core/src/main/java/org/apache/geode/internal/cache/BucketRegion.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/BucketRegion.java b/geode-core/src/main/java/org/apache/geode/internal/cache/BucketRegion.java index 886d678..7bfffb7 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/cache/BucketRegion.java +++ b/geode-core/src/main/java/org/apache/geode/internal/cache/BucketRegion.java @@ -1848,28 +1848,6 @@ public class BucketRegion extends DistributedRegion implements Bucket { // if (!anyWithRouting) { Set failures = this.partitionedRegion.getDistributionManager().putOutgoing(prMsg); - // } else { - // // Send message to each member. We set a FilterRoutingInfo serialization - // // target so that serialization of the PutAllData objects held in the - // // message will only serialize the routing entry for the message recipient - // Iterator rIter = recipients.iterator(); - // failures = new HashSet(); - // while (rIter.hasNext()){ - // InternalDistributedMember member = (InternalDistributedMember)rIter.next(); - // FilterRoutingInfo.setSerializationTarget(member); - // try { - // prMsg.resetRecipients(); - // prMsg.setRecipient(member); - // Set fs = this.partitionedRegion.getDistributionManager().putOutgoing(prMsg); - // if (fs != null && !fs.isEmpty()) { - // failures.addAll(fs); - // } - // } finally { - // FilterRoutingInfo.clearSerializationTarget(); - // } - // } - // } - return failures; } http://git-wip-us.apache.org/repos/asf/geode/blob/c1ab3ffe/geode-core/src/main/java/org/apache/geode/internal/lang/StringUtils.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/internal/lang/StringUtils.java b/geode-core/src/main/java/org/apache/geode/internal/lang/StringUtils.java index 8a44564..298f44f 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/lang/StringUtils.java +++ b/geode-core/src/main/java/org/apache/geode/internal/lang/StringUtils.java @@ -65,8 +65,6 @@ public class StringUtils extends org.apache.commons.lang.StringUtils { return buffer.toString(); } - - /** * Gets the value of the specified Object as a String. If the Object is null then the first * non-null String value from the array of default String value is returned. If the array of http://git-wip-us.apache.org/repos/asf/geode/blob/c1ab3ffe/geode-core/src/main/java/org/apache/geode/management/internal/cli/CliUtil.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/CliUtil.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/CliUtil.java index c63b10b..038e069 100755 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/CliUtil.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/CliUtil.java @@ -281,27 +281,6 @@ public class CliUtil { return sb.toString(); } - public static Set findMembersOrThrow(final String groups, final String members) - throws CommandResultException { - - String[] groupsArray = (groups == null ? new String[] {} : groups.split(",")); - String[] membersArray = (members == null ? new String[] {} : members.split(",")); - - return findMembersOrThrow(groupsArray, membersArray); - } - - public static Set findMembersOrThrow(final String[] groups, - final String[] members) throws CommandResultException { - - Set matchingMembers = findMembers(groups, members); - if (matchingMembers.isEmpty()) { - throw new CommandResultException( - ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE)); - } - - return matchingMembers; - } - /** * Finds all Members (including both servers and locators) which belong to the given arrays of * groups or members. http://git-wip-us.apache.org/repos/asf/geode/blob/c1ab3ffe/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ConfigCommands.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ConfigCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ConfigCommands.java index 6d3f50f..52a0a9d 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ConfigCommands.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/ConfigCommands.java @@ -199,18 +199,16 @@ public class ConfigCommands extends AbstractCommandsSupport { public Result exportConfig( @CliOption(key = {CliStrings.EXPORT_CONFIG__MEMBER}, optionContext = ConverterHint.ALL_MEMBER_IDNAME, - help = CliStrings.EXPORT_CONFIG__MEMBER__HELP) String member, + help = CliStrings.EXPORT_CONFIG__MEMBER__HELP) String[] member, @CliOption(key = {CliStrings.EXPORT_CONFIG__GROUP}, optionContext = ConverterHint.MEMBERGROUP, - help = CliStrings.EXPORT_CONFIG__GROUP__HELP) String group, + help = CliStrings.EXPORT_CONFIG__GROUP__HELP) String[] group, @CliOption(key = {CliStrings.EXPORT_CONFIG__DIR}, help = CliStrings.EXPORT_CONFIG__DIR__HELP) String dir) { InfoResultData infoData = ResultBuilder.createInfoResultData(); - Set targetMembers; - try { - targetMembers = CliUtil.findMembersOrThrow(group, member); - } catch (CommandResultException crex) { - return crex.getResult(); + Set targetMembers = CliUtil.findMembers(group, member); + if (targetMembers.isEmpty()) { + return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); } try { http://git-wip-us.apache.org/repos/asf/geode/blob/c1ab3ffe/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommands.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommands.java index b8ebc49..6e1a74e 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommands.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateAlterDestroyRegionCommands.java @@ -522,11 +522,10 @@ public class CreateAlterDestroyRegionCommands extends AbstractCommandsSupport { new Object[] {evictionMax})); } - Set targetMembers; - try { - targetMembers = CliUtil.findMembersOrThrow(groups, null); - } catch (CommandResultException crex) { - return crex.getResult(); + Set targetMembers = CliUtil.findMembers(groups, null); + + if (targetMembers.isEmpty()) { + return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); } ResultCollector resultCollector = http://git-wip-us.apache.org/repos/asf/geode/blob/c1ab3ffe/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DeployCommands.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DeployCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DeployCommands.java index 4018beb..544a517 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DeployCommands.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DeployCommands.java @@ -163,11 +163,10 @@ public class DeployCommands extends AbstractCommandsSupport { TabularResultData tabularData = ResultBuilder.createTabularResultData(); boolean accumulatedData = false; - Set targetMembers; - try { - targetMembers = CliUtil.findMembersOrThrow(groups, null); - } catch (CommandResultException crex) { - return crex.getResult(); + Set targetMembers = CliUtil.findMembers(groups, null); + + if (targetMembers.isEmpty()) { + return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); } ResultCollector rc = @@ -224,17 +223,16 @@ public class DeployCommands extends AbstractCommandsSupport { @CliMetaData(relatedTopic = {CliStrings.TOPIC_GEODE_CONFIG}) @ResourceOperation(resource = Resource.CLUSTER, operation = Operation.READ) public Result listDeployed(@CliOption(key = {CliStrings.LIST_DEPLOYED__GROUP}, - help = CliStrings.LIST_DEPLOYED__GROUP__HELP) String group) { + help = CliStrings.LIST_DEPLOYED__GROUP__HELP) String[] group) { try { TabularResultData tabularData = ResultBuilder.createTabularResultData(); boolean accumulatedData = false; - Set targetMembers; - try { - targetMembers = CliUtil.findMembersOrThrow(group, null); - } catch (CommandResultException crex) { - return crex.getResult(); + Set targetMembers = CliUtil.findMembers(group, null); + + if (targetMembers.isEmpty()) { + return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); } ResultCollector rc = http://git-wip-us.apache.org/repos/asf/geode/blob/c1ab3ffe/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommands.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommands.java index 4232d91..226cfaf 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommands.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommands.java @@ -353,11 +353,10 @@ public class DiskStoreCommands extends AbstractCommandsSupport { TabularResultData tabularData = ResultBuilder.createTabularResultData(); boolean accumulatedData = false; - Set targetMembers; - try { - targetMembers = CliUtil.findMembersOrThrow(groups, null); - } catch (CommandResultException crex) { - return crex.getResult(); + Set targetMembers = CliUtil.findMembers(groups, null); + + if (targetMembers.isEmpty()) { + return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); } ResultCollector rc = CliUtil.executeFunction(new CreateDiskStoreFunction(), @@ -1410,11 +1409,10 @@ public class DiskStoreCommands extends AbstractCommandsSupport { TabularResultData tabularData = ResultBuilder.createTabularResultData(); boolean accumulatedData = false; - Set targetMembers; - try { - targetMembers = CliUtil.findMembersOrThrow(groups, null); - } catch (CommandResultException crex) { - return crex.getResult(); + Set targetMembers = CliUtil.findMembers(groups, null); + + if (targetMembers.isEmpty()) { + return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); } ResultCollector rc = CliUtil.executeFunction(new DestroyDiskStoreFunction(), http://git-wip-us.apache.org/repos/asf/geode/blob/c1ab3ffe/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DurableClientCommands.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DurableClientCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DurableClientCommands.java index bcbfcf0..9cb87ac 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DurableClientCommands.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/DurableClientCommands.java @@ -73,21 +73,21 @@ public class DurableClientCommands extends AbstractCommandsSupport { @CliOption(key = CliStrings.LIST_DURABLE_CQS__MEMBER, help = CliStrings.LIST_DURABLE_CQS__MEMBER__HELP, - optionContext = ConverterHint.MEMBERIDNAME) final String memberNameOrId, + optionContext = ConverterHint.MEMBERIDNAME) final String[] memberNameOrId, @CliOption(key = CliStrings.LIST_DURABLE_CQS__GROUP, help = CliStrings.LIST_DURABLE_CQS__GROUP__HELP, - optionContext = ConverterHint.MEMBERGROUP) final String group) { + optionContext = ConverterHint.MEMBERGROUP) final String[] group) { Result result = null; try { boolean noResults = true; - Set targetMembers; - try { - targetMembers = CliUtil.findMembersOrThrow(group, memberNameOrId); - } catch (CommandResultException e) { - return e.getResult(); + Set targetMembers = CliUtil.findMembers(group, memberNameOrId); + + if (targetMembers.isEmpty()) { + return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); } + final ResultCollector rc = CliUtil.executeFunction(new ListDurableCqNamesFunction(), durableClientId, targetMembers); final List results = (List) rc.getResult(); @@ -153,19 +153,19 @@ public class DurableClientCommands extends AbstractCommandsSupport { help = CliStrings.COUNT_DURABLE_CQ_EVENTS__DURABLE__CQ__NAME__HELP) final String cqName, @CliOption(key = CliStrings.COUNT_DURABLE_CQ_EVENTS__MEMBER, mandatory = false, help = CliStrings.COUNT_DURABLE_CQ_EVENTS__MEMBER__HELP, - optionContext = ConverterHint.MEMBERIDNAME) final String memberNameOrId, + optionContext = ConverterHint.MEMBERIDNAME) final String[] memberNameOrId, @CliOption(key = CliStrings.COUNT_DURABLE_CQ_EVENTS__GROUP, mandatory = false, help = CliStrings.COUNT_DURABLE_CQ_EVENTS__GROUP__HELP, - optionContext = ConverterHint.MEMBERGROUP) final String group) { + optionContext = ConverterHint.MEMBERGROUP) final String[] group) { Result result = null; try { - Set targetMembers; - try { - targetMembers = CliUtil.findMembersOrThrow(group, memberNameOrId); - } catch (CommandResultException e) { - return e.getResult(); + Set targetMembers = CliUtil.findMembers(group, memberNameOrId); + + if (targetMembers.isEmpty()) { + return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); } + String[] params = new String[2]; params[0] = durableClientId; params[1] = cqName; @@ -200,19 +200,20 @@ public class DurableClientCommands extends AbstractCommandsSupport { help = CliStrings.CLOSE_DURABLE_CLIENTS__CLIENT__ID__HELP) final String durableClientId, @CliOption(key = CliStrings.CLOSE_DURABLE_CLIENTS__MEMBER, mandatory = false, help = CliStrings.CLOSE_DURABLE_CLIENTS__MEMBER__HELP, - optionContext = ConverterHint.MEMBERIDNAME) final String memberNameOrId, + optionContext = ConverterHint.MEMBERIDNAME) final String[] memberNameOrId, @CliOption(key = CliStrings.CLOSE_DURABLE_CLIENTS__GROUP, mandatory = false, help = CliStrings.COUNT_DURABLE_CQ_EVENTS__GROUP__HELP, - optionContext = ConverterHint.MEMBERGROUP) final String group) { + optionContext = ConverterHint.MEMBERGROUP) final String[] group) { Result result = null; try { - Set targetMembers; - try { - targetMembers = CliUtil.findMembersOrThrow(group, memberNameOrId); - } catch (CommandResultException e) { - return e.getResult(); + + Set targetMembers = CliUtil.findMembers(group, memberNameOrId); + + if (targetMembers.isEmpty()) { + return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); } + final ResultCollector rc = CliUtil.executeFunction(new CloseDurableClientFunction(), durableClientId, targetMembers); final List results = (List) rc.getResult(); @@ -240,18 +241,17 @@ public class DurableClientCommands extends AbstractCommandsSupport { @CliOption(key = CliStrings.CLOSE_DURABLE_CQS__MEMBER, mandatory = false, help = CliStrings.CLOSE_DURABLE_CQS__MEMBER__HELP, - optionContext = ConverterHint.MEMBERIDNAME) final String memberNameOrId, + optionContext = ConverterHint.MEMBERIDNAME) final String[] memberNameOrId, @CliOption(key = CliStrings.CLOSE_DURABLE_CQS__GROUP, mandatory = false, help = CliStrings.CLOSE_DURABLE_CQS__GROUP__HELP, - optionContext = ConverterHint.MEMBERGROUP) final String group) { + optionContext = ConverterHint.MEMBERGROUP) final String[] group) { Result result = null; try { - Set targetMembers; - try { - targetMembers = CliUtil.findMembersOrThrow(group, memberNameOrId); - } catch (CommandResultException e) { - return e.getResult(); + Set targetMembers = CliUtil.findMembers(group, memberNameOrId); + + if (targetMembers.isEmpty()) { + return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); } String[] params = new String[2]; http://git-wip-us.apache.org/repos/asf/geode/blob/c1ab3ffe/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/FunctionCommands.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/FunctionCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/FunctionCommands.java index 2007e4a..8ea65ff 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/FunctionCommands.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/FunctionCommands.java @@ -560,19 +560,18 @@ public class FunctionCommands implements CommandMarker { @CliOption(key = CliStrings.LIST_FUNCTION__MATCHES, help = CliStrings.LIST_FUNCTION__MATCHES__HELP) String matches, @CliOption(key = CliStrings.LIST_FUNCTION__GROUP, optionContext = ConverterHint.MEMBERGROUP, - help = CliStrings.LIST_FUNCTION__GROUP__HELP) String groups, + help = CliStrings.LIST_FUNCTION__GROUP__HELP) String[] groups, @CliOption(key = CliStrings.LIST_FUNCTION__MEMBER, optionContext = ConverterHint.MEMBERIDNAME, - help = CliStrings.LIST_FUNCTION__MEMBER__HELP) String members) { + help = CliStrings.LIST_FUNCTION__MEMBER__HELP) String[] members) { TabularResultData tabularData = ResultBuilder.createTabularResultData(); boolean accumulatedData = false; InternalCache cache = getCache(); - Set targetMembers; - try { - targetMembers = CliUtil.findMembersOrThrow(groups, members); - } catch (CommandResultException crex) { - return crex.getResult(); + Set targetMembers = CliUtil.findMembers(groups, members); + + if (targetMembers.isEmpty()) { + return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); } try { http://git-wip-us.apache.org/repos/asf/geode/blob/c1ab3ffe/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/IndexCommands.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/IndexCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/IndexCommands.java index a4ba64c..407424a 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/IndexCommands.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/IndexCommands.java @@ -14,6 +14,7 @@ */ package org.apache.geode.management.internal.cli.commands; +import org.apache.commons.lang.ArrayUtils; import org.apache.geode.SystemFailure; import org.apache.geode.cache.Cache; import org.apache.geode.cache.CacheFactory; @@ -188,7 +189,7 @@ public class IndexCommands extends AbstractCommandsSupport { @CliOption(key = CliStrings.CREATE_INDEX__MEMBER, mandatory = false, optionContext = ConverterHint.MEMBERIDNAME, - help = CliStrings.CREATE_INDEX__MEMBER__HELP) final String memberNameOrID, + help = CliStrings.CREATE_INDEX__MEMBER__HELP) final String[] memberNameOrID, @CliOption(key = CliStrings.CREATE_INDEX__TYPE, mandatory = false, unspecifiedDefaultValue = "range", optionContext = ConverterHint.INDEX_TYPE, @@ -196,7 +197,7 @@ public class IndexCommands extends AbstractCommandsSupport { @CliOption(key = CliStrings.CREATE_INDEX__GROUP, mandatory = false, optionContext = ConverterHint.MEMBERGROUP, - help = CliStrings.CREATE_INDEX__GROUP__HELP) final String group) { + help = CliStrings.CREATE_INDEX__GROUP__HELP) final String[] group) { Result result = null; AtomicReference xmlEntity = new AtomicReference<>(); @@ -237,8 +238,12 @@ public class IndexCommands extends AbstractCommandsSupport { IndexInfo indexInfo = new IndexInfo(indexName, indexedExpression, regionPath, idxType); - final Set targetMembers = - CliUtil.findMembersOrThrow(group, memberNameOrID); + final Set targetMembers = CliUtil.findMembers(group, memberNameOrID); + + if (targetMembers.isEmpty()) { + return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); + } + final ResultCollector rc = CliUtil.executeFunction(createIndexFunction, indexInfo, targetMembers); @@ -309,16 +314,14 @@ public class IndexCommands extends AbstractCommandsSupport { } result = ResultBuilder.buildResult(erd); } - } catch (CommandResultException crex) { - result = crex.getResult(); } catch (Exception e) { result = ResultBuilder.createGemFireErrorResult(e.getMessage()); } if (xmlEntity.get() != null) { - persistClusterConfiguration(result, () -> getSharedConfiguration() - .addXmlEntity(xmlEntity.get(), group != null ? group.split(",") : null)); + persistClusterConfiguration(result, + () -> getSharedConfiguration().addXmlEntity(xmlEntity.get(), group)); } return result; @@ -337,16 +340,16 @@ public class IndexCommands extends AbstractCommandsSupport { @CliOption(key = CliStrings.DESTROY_INDEX__MEMBER, mandatory = false, optionContext = ConverterHint.MEMBERIDNAME, - help = CliStrings.DESTROY_INDEX__MEMBER__HELP) final String memberNameOrID, + help = CliStrings.DESTROY_INDEX__MEMBER__HELP) final String[] memberNameOrID, @CliOption(key = CliStrings.DESTROY_INDEX__GROUP, mandatory = false, optionContext = ConverterHint.MEMBERGROUP, - help = CliStrings.DESTROY_INDEX__GROUP__HELP) final String group) { + help = CliStrings.DESTROY_INDEX__GROUP__HELP) final String[] group) { Result result = null; if (StringUtils.isBlank(indexName) && StringUtils.isBlank(regionPath) - && StringUtils.isBlank(memberNameOrID) && StringUtils.isBlank(group)) { + && ArrayUtils.isEmpty(group) && ArrayUtils.isEmpty(memberNameOrID)) { return ResultBuilder.createUserErrorResult( CliStrings.format(CliStrings.PROVIDE_ATLEAST_ONE_OPTION, CliStrings.DESTROY_INDEX)); } @@ -364,12 +367,10 @@ public class IndexCommands extends AbstractCommandsSupport { } IndexInfo indexInfo = new IndexInfo(indexName, regionName); - Set targetMembers = null; + Set targetMembers = CliUtil.findMembers(group, memberNameOrID); - try { - targetMembers = CliUtil.findMembersOrThrow(group, memberNameOrID); - } catch (CommandResultException e) { - return e.getResult(); + if (targetMembers.isEmpty()) { + return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); } ResultCollector rc = CliUtil.executeFunction(destroyIndexFunction, indexInfo, targetMembers); @@ -456,8 +457,8 @@ public class IndexCommands extends AbstractCommandsSupport { result = ResultBuilder.buildResult(erd); } if (xmlEntity.get() != null) { - persistClusterConfiguration(result, () -> getSharedConfiguration() - .deleteXmlEntity(xmlEntity.get(), group != null ? group.split(",") : null)); + persistClusterConfiguration(result, + () -> getSharedConfiguration().deleteXmlEntity(xmlEntity.get(), group)); } return result; @@ -539,11 +540,11 @@ public class IndexCommands extends AbstractCommandsSupport { @CliOption(key = CliStrings.CREATE_DEFINED_INDEXES__MEMBER, mandatory = false, optionContext = ConverterHint.MEMBERIDNAME, - help = CliStrings.CREATE_DEFINED_INDEXES__MEMBER__HELP) final String memberNameOrID, + help = CliStrings.CREATE_DEFINED_INDEXES__MEMBER__HELP) final String[] memberNameOrID, @CliOption(key = CliStrings.CREATE_DEFINED_INDEXES__GROUP, mandatory = false, optionContext = ConverterHint.MEMBERGROUP, - help = CliStrings.CREATE_DEFINED_INDEXES__GROUP__HELP) final String group) { + help = CliStrings.CREATE_DEFINED_INDEXES__GROUP__HELP) final String[] group) { Result result = null; AtomicReference xmlEntity = new AtomicReference<>(); @@ -555,10 +556,13 @@ public class IndexCommands extends AbstractCommandsSupport { } try { - final Cache cache = CacheFactory.getAnyInstance(); + final Set targetMembers = CliUtil.findMembers(group, memberNameOrID); + + if (targetMembers.isEmpty()) { + return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); + } - final Set targetMembers = - CliUtil.findMembersOrThrow(group, memberNameOrID); + final Cache cache = CacheFactory.getAnyInstance(); final ResultCollector rc = CliUtil.executeFunction(createDefinedIndexesFunction, indexDefinitions, targetMembers); @@ -622,15 +626,13 @@ public class IndexCommands extends AbstractCommandsSupport { } result = ResultBuilder.buildResult(erd); } - } catch (CommandResultException crex) { - result = crex.getResult(); } catch (Exception e) { result = ResultBuilder.createGemFireErrorResult(e.getMessage()); } if (xmlEntity.get() != null) { - persistClusterConfiguration(result, () -> getSharedConfiguration() - .addXmlEntity(xmlEntity.get(), group != null ? group.split(",") : null)); + persistClusterConfiguration(result, + () -> getSharedConfiguration().addXmlEntity(xmlEntity.get(), group)); } return result; } http://git-wip-us.apache.org/repos/asf/geode/blob/c1ab3ffe/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/MiscellaneousCommands.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/MiscellaneousCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/MiscellaneousCommands.java index 0d714f4..a23afd0 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/MiscellaneousCommands.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/MiscellaneousCommands.java @@ -672,11 +672,11 @@ public class MiscellaneousCommands implements CommandMarker { @ResourceOperation(resource = Resource.CLUSTER, operation = Operation.READ) public Result exportStackTrace(@CliOption(key = CliStrings.EXPORT_STACKTRACE__MEMBER, optionContext = ConverterHint.ALL_MEMBER_IDNAME, - help = CliStrings.EXPORT_STACKTRACE__HELP) String memberNameOrId, + help = CliStrings.EXPORT_STACKTRACE__HELP) String[] memberNameOrId, @CliOption(key = CliStrings.EXPORT_STACKTRACE__GROUP, optionContext = ConverterHint.ALL_MEMBER_IDNAME, - help = CliStrings.EXPORT_STACKTRACE__GROUP) String group, + help = CliStrings.EXPORT_STACKTRACE__GROUP) String[] group, @CliOption(key = CliStrings.EXPORT_STACKTRACE__FILE, help = CliStrings.EXPORT_STACKTRACE__FILE__HELP) String fileName, @@ -687,29 +687,27 @@ public class MiscellaneousCommands implements CommandMarker { Result result = null; StringBuffer filePrefix = new StringBuffer("stacktrace"); + + if (fileName == null) { + fileName = filePrefix.append("_").append(System.currentTimeMillis()).toString(); + } + final File outFile = new File(fileName); try { - if (fileName == null) { - fileName = filePrefix.append("_").append(System.currentTimeMillis()).toString(); - } - final File outFile = new File(fileName); if (outFile.exists() && failIfFilePresent) { return ResultBuilder.createShellClientErrorResult(CliStrings.format( CliStrings.EXPORT_STACKTRACE__ERROR__FILE__PRESENT, outFile.getCanonicalPath())); } + InternalCache cache = getCache(); InternalDistributedSystem ads = cache.getInternalDistributedSystem(); InfoResultData resultData = ResultBuilder.createInfoResultData(); Map dumps = new HashMap(); - Set targetMembers = null; - - if ((group == null || group.isEmpty()) - && (memberNameOrId == null || memberNameOrId.isEmpty())) { - targetMembers = CliUtil.getAllMembers(cache); - } else { - targetMembers = CliUtil.findMembersOrThrow(group, memberNameOrId); + Set targetMembers = CliUtil.findMembers(group, memberNameOrId); + if (targetMembers.isEmpty()) { + return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); } ResultCollector rc = @@ -728,9 +726,7 @@ public class MiscellaneousCommands implements CommandMarker { resultData.addLine(CliStrings.EXPORT_STACKTRACE__HOST + ads.getDistributedMember().getHost()); result = ResultBuilder.buildResult(resultData); - } catch (CommandResultException crex) { - return crex.getResult(); - } catch (Exception ex) { + } catch (IOException ex) { result = ResultBuilder .createGemFireErrorResult(CliStrings.EXPORT_STACKTRACE__ERROR + ex.getMessage()); } http://git-wip-us.apache.org/repos/asf/geode/blob/c1ab3ffe/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/QueueCommands.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/QueueCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/QueueCommands.java index 6208adb..f4dee75 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/QueueCommands.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/QueueCommands.java @@ -123,11 +123,10 @@ public class QueueCommands extends AbstractCommandsSupport { TabularResultData tabularData = ResultBuilder.createTabularResultData(); boolean accumulatedData = false; - Set targetMembers; - try { - targetMembers = CliUtil.findMembersOrThrow(groups, null); - } catch (CommandResultException crex) { - return crex.getResult(); + Set targetMembers = CliUtil.findMembers(groups, null); + + if (targetMembers.isEmpty()) { + return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); } AsyncEventQueueFunctionArgs aeqArgs = new AsyncEventQueueFunctionArgs(id, parallel, @@ -188,11 +187,10 @@ public class QueueCommands extends AbstractCommandsSupport { TabularResultData tabularData = ResultBuilder.createTabularResultData(); boolean accumulatedData = false; - Set targetMembers; - try { - targetMembers = CliUtil.findMembersOrThrow((String) null, (String) null); - } catch (CommandResultException crex) { - return crex.getResult(); + Set targetMembers = CliUtil.findMembers(null, null); + + if (targetMembers.isEmpty()) { + return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); } ResultCollector rc = CliUtil.executeFunction(new ListAsyncEventQueuesFunction(), http://git-wip-us.apache.org/repos/asf/geode/blob/c1ab3ffe/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/RegionCommands.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/RegionCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/RegionCommands.java index 561d4b8..6f5b047 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/RegionCommands.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/RegionCommands.java @@ -80,19 +80,18 @@ public class RegionCommands implements CommandMarker { @ResourceOperation(resource = Resource.DATA, operation = Operation.READ) public Result listRegion( @CliOption(key = {CliStrings.LIST_REGION__GROUP}, optionContext = ConverterHint.MEMBERGROUP, - help = CliStrings.LIST_REGION__GROUP__HELP) String group, + help = CliStrings.LIST_REGION__GROUP__HELP) String[] group, @CliOption(key = {CliStrings.LIST_REGION__MEMBER}, optionContext = ConverterHint.MEMBERIDNAME, - help = CliStrings.LIST_REGION__MEMBER__HELP) String memberNameOrId) { + help = CliStrings.LIST_REGION__MEMBER__HELP) String[] memberNameOrId) { Result result = null; try { Set regionInfoSet = new LinkedHashSet(); ResultCollector rc = null; - Set targetMembers; - try { - targetMembers = CliUtil.findMembersOrThrow(group, memberNameOrId); - } catch (CommandResultException crex) { - return crex.getResult(); + Set targetMembers = CliUtil.findMembers(group, memberNameOrId); + + if (targetMembers.isEmpty()) { + return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); } TabularResultData resultData = ResultBuilder.createTabularResultData(); http://git-wip-us.apache.org/repos/asf/geode/blob/c1ab3ffe/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/WanCommands.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/WanCommands.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/WanCommands.java index feeb353..57080ba 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/WanCommands.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/WanCommands.java @@ -78,7 +78,7 @@ public class WanCommands extends AbstractCommandsSupport { @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__MEMBER, optionContext = ConverterHint.MEMBERIDNAME, unspecifiedDefaultValue = CliMetaData.ANNOTATION_NULL_VALUE, - help = CliStrings.CREATE_GATEWAYSENDER__MEMBER__HELP) String onMember, + help = CliStrings.CREATE_GATEWAYSENDER__MEMBER__HELP) String[] onMember, @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__ID, mandatory = true, help = CliStrings.CREATE_GATEWAYSENDER__ID__HELP) String id, @@ -145,7 +145,11 @@ public class WanCommands extends AbstractCommandsSupport { gatewayEventFilters, gatewayTransportFilter); Set membersToCreateGatewaySenderOn = - CliUtil.findMembersOrThrow(onGroups, onMember == null ? null : onMember.split(",")); + CliUtil.findMembers(onGroups, onMember); + + if (membersToCreateGatewaySenderOn.isEmpty()) { + return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); + } ResultCollector resultCollector = CliUtil.executeFunction(GatewaySenderCreateFunction.INSTANCE, gatewaySenderFunctionArgs, @@ -170,8 +174,6 @@ public class WanCommands extends AbstractCommandsSupport { } catch (IllegalArgumentException e) { LogWrapper.getInstance().info(e.getMessage()); result = ResultBuilder.createUserErrorResult(e.getMessage()); - } catch (CommandResultException crex) { - result = handleCommandResultException(crex); } if (xmlEntity.get() != null) { @@ -190,11 +192,11 @@ public class WanCommands extends AbstractCommandsSupport { @CliOption(key = CliStrings.START_GATEWAYSENDER__GROUP, optionContext = ConverterHint.MEMBERGROUP, - help = CliStrings.START_GATEWAYSENDER__GROUP__HELP) String onGroup, + help = CliStrings.START_GATEWAYSENDER__GROUP__HELP) String[] onGroup, @CliOption(key = CliStrings.START_GATEWAYSENDER__MEMBER, optionContext = ConverterHint.MEMBERIDNAME, - help = CliStrings.START_GATEWAYSENDER__MEMBER__HELP) String onMember) { + help = CliStrings.START_GATEWAYSENDER__MEMBER__HELP) String[] onMember) { Result result = null; final String id = senderId.trim(); @@ -205,7 +207,12 @@ public class WanCommands extends AbstractCommandsSupport { (SystemManagementService) ManagementService.getExistingManagementService(cache); TabularResultData resultData = ResultBuilder.createTabularResultData(); - Set dsMembers = CliUtil.findMembersOrThrow(onGroup, onMember); + + Set dsMembers = CliUtil.findMembers(onGroup, onMember); + + if (dsMembers.isEmpty()) { + return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); + } ExecutorService execService = Executors.newCachedThreadPool(new ThreadFactory() { AtomicInteger threadNum = new AtomicInteger(); @@ -293,8 +300,6 @@ public class WanCommands extends AbstractCommandsSupport { } execService.shutdown(); result = ResultBuilder.buildResult(resultData); - } catch (CommandResultException crex) { - result = handleCommandResultException(crex); } catch (Exception e) { LogWrapper.getInstance().warning(CliStrings.GATEWAY_ERROR + CliUtil.stackTraceAsString(e)); result = ResultBuilder.createGemFireErrorResult(CliStrings.GATEWAY_ERROR + e.getMessage()); @@ -312,11 +317,11 @@ public class WanCommands extends AbstractCommandsSupport { @CliOption(key = CliStrings.PAUSE_GATEWAYSENDER__GROUP, optionContext = ConverterHint.MEMBERGROUP, - help = CliStrings.PAUSE_GATEWAYSENDER__GROUP__HELP) String onGroup, + help = CliStrings.PAUSE_GATEWAYSENDER__GROUP__HELP) String[] onGroup, @CliOption(key = CliStrings.PAUSE_GATEWAYSENDER__MEMBER, optionContext = ConverterHint.MEMBERIDNAME, - help = CliStrings.PAUSE_GATEWAYSENDER__MEMBER__HELP) String onMember) { + help = CliStrings.PAUSE_GATEWAYSENDER__MEMBER__HELP) String[] onMember) { Result result = null; if (senderId != null) { @@ -331,9 +336,13 @@ public class WanCommands extends AbstractCommandsSupport { GatewaySenderMXBean bean = null; TabularResultData resultData = ResultBuilder.createTabularResultData(); - Set dsMembers = null; - dsMembers = CliUtil.findMembersOrThrow(onGroup, onMember); + Set dsMembers = CliUtil.findMembers(onGroup, onMember); + + if (dsMembers.isEmpty()) { + return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); + } + for (DistributedMember member : dsMembers) { if (cache.getDistributedSystem().getDistributedMember().getId().equals(member.getId())) { bean = service.getLocalGatewaySenderMXBean(senderId); @@ -365,8 +374,6 @@ public class WanCommands extends AbstractCommandsSupport { } } result = ResultBuilder.buildResult(resultData); - } catch (CommandResultException crex) { - result = handleCommandResultException(crex); } catch (Exception e) { LogWrapper.getInstance().warning(CliStrings.GATEWAY_ERROR + CliUtil.stackTraceAsString(e)); result = ResultBuilder.createGemFireErrorResult(CliStrings.GATEWAY_ERROR + e.getMessage()); @@ -383,10 +390,10 @@ public class WanCommands extends AbstractCommandsSupport { @CliOption(key = CliStrings.RESUME_GATEWAYSENDER__GROUP, optionContext = ConverterHint.MEMBERGROUP, - help = CliStrings.RESUME_GATEWAYSENDER__GROUP__HELP) String onGroup, + help = CliStrings.RESUME_GATEWAYSENDER__GROUP__HELP) String[] onGroup, @CliOption(key = CliStrings.RESUME_GATEWAYSENDER__MEMBER, optionContext = ConverterHint.MEMBERIDNAME, - help = CliStrings.RESUME_GATEWAYSENDER__MEMBER__HELP) String onMember) { + help = CliStrings.RESUME_GATEWAYSENDER__MEMBER__HELP) String[] onMember) { Result result = null; if (senderId != null) { @@ -402,7 +409,12 @@ public class WanCommands extends AbstractCommandsSupport { TabularResultData resultData = ResultBuilder.createTabularResultData(); - Set dsMembers = CliUtil.findMembersOrThrow(onGroup, onMember); + Set dsMembers = CliUtil.findMembers(onGroup, onMember); + + if (dsMembers.isEmpty()) { + return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); + } + for (DistributedMember member : dsMembers) { if (cache.getDistributedSystem().getDistributedMember().getId().equals(member.getId())) { bean = service.getLocalGatewaySenderMXBean(senderId); @@ -434,8 +446,6 @@ public class WanCommands extends AbstractCommandsSupport { } } result = ResultBuilder.buildResult(resultData); - } catch (CommandResultException crex) { - result = handleCommandResultException(crex); } catch (Exception e) { LogWrapper.getInstance().warning(CliStrings.GATEWAY_ERROR + CliUtil.stackTraceAsString(e)); result = ResultBuilder.createGemFireErrorResult(CliStrings.GATEWAY_ERROR + e.getMessage()); @@ -452,11 +462,11 @@ public class WanCommands extends AbstractCommandsSupport { @CliOption(key = CliStrings.STOP_GATEWAYSENDER__GROUP, optionContext = ConverterHint.MEMBERGROUP, - help = CliStrings.STOP_GATEWAYSENDER__GROUP__HELP) String onGroup, + help = CliStrings.STOP_GATEWAYSENDER__GROUP__HELP) String[] onGroup, @CliOption(key = CliStrings.STOP_GATEWAYSENDER__MEMBER, optionContext = ConverterHint.MEMBERIDNAME, - help = CliStrings.STOP_GATEWAYSENDER__MEMBER__HELP) String onMember) { + help = CliStrings.STOP_GATEWAYSENDER__MEMBER__HELP) String[] onMember) { Result result = null; if (senderId != null) @@ -470,7 +480,12 @@ public class WanCommands extends AbstractCommandsSupport { GatewaySenderMXBean bean = null; TabularResultData resultData = ResultBuilder.createTabularResultData(); - Set dsMembers = CliUtil.findMembersOrThrow(onGroup, onMember); + + Set dsMembers = CliUtil.findMembers(onGroup, onMember); + + if (dsMembers.isEmpty()) { + return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); + } for (DistributedMember member : dsMembers) { if (cache.getDistributedSystem().getDistributedMember().getId().equals(member.getId())) { @@ -498,8 +513,6 @@ public class WanCommands extends AbstractCommandsSupport { } } result = ResultBuilder.buildResult(resultData); - } catch (CommandResultException crex) { - result = handleCommandResultException(crex); } catch (Exception e) { LogWrapper.getInstance().warning(CliStrings.GATEWAY_ERROR + CliUtil.stackTraceAsString(e)); result = ResultBuilder.createGemFireErrorResult(CliStrings.GATEWAY_ERROR + e.getMessage()); @@ -518,7 +531,7 @@ public class WanCommands extends AbstractCommandsSupport { @CliOption(key = CliStrings.CREATE_GATEWAYRECEIVER__MEMBER, optionContext = ConverterHint.MEMBERIDNAME, unspecifiedDefaultValue = CliMetaData.ANNOTATION_NULL_VALUE, - help = CliStrings.CREATE_GATEWAYRECEIVER__MEMBER__HELP) String onMember, + help = CliStrings.CREATE_GATEWAYRECEIVER__MEMBER__HELP) String[] onMember, @CliOption(key = CliStrings.CREATE_GATEWAYRECEIVER__MANUALSTART, help = CliStrings.CREATE_GATEWAYRECEIVER__MANUALSTART__HELP) Boolean manualStart, @@ -550,7 +563,11 @@ public class WanCommands extends AbstractCommandsSupport { socketBufferSize, maximumTimeBetweenPings, gatewayTransportFilters); Set membersToCreateGatewayReceiverOn = - CliUtil.findMembersOrThrow(onGroups, onMember == null ? null : onMember.split(",")); + CliUtil.findMembers(onGroups, onMember); + + if (membersToCreateGatewayReceiverOn.isEmpty()) { + return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); + } ResultCollector resultCollector = CliUtil.executeFunction(GatewayReceiverCreateFunction.INSTANCE, @@ -576,8 +593,6 @@ public class WanCommands extends AbstractCommandsSupport { } catch (IllegalArgumentException e) { LogWrapper.getInstance().info(e.getMessage()); result = ResultBuilder.createUserErrorResult(e.getMessage()); - } catch (CommandResultException crex) { - result = handleCommandResultException(crex); } if (xmlEntity.get() != null) { @@ -653,11 +668,11 @@ public class WanCommands extends AbstractCommandsSupport { @ResourceOperation(resource = Resource.DATA, operation = Operation.MANAGE) public Result startGatewayReceiver(@CliOption(key = CliStrings.START_GATEWAYRECEIVER__GROUP, optionContext = ConverterHint.MEMBERGROUP, - help = CliStrings.START_GATEWAYRECEIVER__GROUP__HELP) String onGroup, + help = CliStrings.START_GATEWAYRECEIVER__GROUP__HELP) String[] onGroup, @CliOption(key = CliStrings.START_GATEWAYRECEIVER__MEMBER, optionContext = ConverterHint.MEMBERIDNAME, - help = CliStrings.START_GATEWAYRECEIVER__MEMBER__HELP) String onMember) { + help = CliStrings.START_GATEWAYRECEIVER__MEMBER__HELP) String[] onMember) { Result result = null; try { @@ -668,7 +683,12 @@ public class WanCommands extends AbstractCommandsSupport { GatewayReceiverMXBean receieverBean = null; TabularResultData resultData = ResultBuilder.createTabularResultData(); - Set dsMembers = CliUtil.findMembersOrThrow(onGroup, onMember); + + Set dsMembers = CliUtil.findMembers(onGroup, onMember); + + if (dsMembers.isEmpty()) { + return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); + } for (DistributedMember member : dsMembers) { ObjectName gatewayReceiverObjectName = MBeanJMXAdapter.getGatewayReceiverMBeanName(member); @@ -715,11 +735,11 @@ public class WanCommands extends AbstractCommandsSupport { @CliOption(key = CliStrings.STOP_GATEWAYRECEIVER__GROUP, optionContext = ConverterHint.MEMBERGROUP, - help = CliStrings.STOP_GATEWAYRECEIVER__GROUP__HELP) String onGroup, + help = CliStrings.STOP_GATEWAYRECEIVER__GROUP__HELP) String[] onGroup, @CliOption(key = CliStrings.STOP_GATEWAYRECEIVER__MEMBER, optionContext = ConverterHint.MEMBERIDNAME, - help = CliStrings.STOP_GATEWAYRECEIVER__MEMBER__HELP) String onMember) { + help = CliStrings.STOP_GATEWAYRECEIVER__MEMBER__HELP) String[] onMember) { Result result = null; @@ -731,7 +751,12 @@ public class WanCommands extends AbstractCommandsSupport { GatewayReceiverMXBean receieverBean = null; TabularResultData resultData = ResultBuilder.createTabularResultData(); - Set dsMembers = CliUtil.findMembersOrThrow(onGroup, onMember); + + Set dsMembers = CliUtil.findMembers(onGroup, onMember); + + if (dsMembers.isEmpty()) { + return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); + } for (DistributedMember member : dsMembers) { ObjectName gatewayReceiverObjectName = MBeanJMXAdapter.getGatewayReceiverMBeanName(member); @@ -776,9 +801,9 @@ public class WanCommands extends AbstractCommandsSupport { @ResourceOperation(resource = Resource.CLUSTER, operation = Operation.READ) public Result listGateway( @CliOption(key = CliStrings.LIST_GATEWAY__MEMBER, optionContext = ConverterHint.MEMBERIDNAME, - help = CliStrings.LIST_GATEWAY__MEMBER__HELP) String onMember, + help = CliStrings.LIST_GATEWAY__MEMBER__HELP) String[] onMember, @CliOption(key = CliStrings.LIST_GATEWAY__GROUP, optionContext = ConverterHint.MEMBERGROUP, - help = CliStrings.LIST_GATEWAY__GROUP__HELP) String onGroup) { + help = CliStrings.LIST_GATEWAY__GROUP__HELP) String[] onGroup) { Result result = null; InternalCache cache = getCache(); @@ -786,7 +811,11 @@ public class WanCommands extends AbstractCommandsSupport { SystemManagementService service = (SystemManagementService) ManagementService.getExistingManagementService(cache); - Set dsMembers = CliUtil.findMembersOrThrow(onGroup, onMember); + Set dsMembers = CliUtil.findMembers(onGroup, onMember); + + if (dsMembers.isEmpty()) { + return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); + } Map> gatewaySenderBeans = new TreeMap>(); @@ -838,8 +867,6 @@ public class WanCommands extends AbstractCommandsSupport { crd.setHeader(CliStrings.HEADER_GATEWAYS); accumulateListGatewayResult(crd, gatewaySenderBeans, gatewayReceiverBeans); result = ResultBuilder.buildResult(crd); - } catch (CommandResultException crex) { - result = handleCommandResultException(crex); } catch (Exception e) { LogWrapper.getInstance().warning(CliStrings.GATEWAY_ERROR + CliUtil.stackTraceAsString(e)); result = ResultBuilder.createGemFireErrorResult(CliStrings.GATEWAY_ERROR + e.getMessage()); @@ -856,11 +883,11 @@ public class WanCommands extends AbstractCommandsSupport { @CliOption(key = CliStrings.STATUS_GATEWAYSENDER__GROUP, optionContext = ConverterHint.MEMBERGROUP, - help = CliStrings.STATUS_GATEWAYSENDER__GROUP__HELP) String onGroup, + help = CliStrings.STATUS_GATEWAYSENDER__GROUP__HELP) String[] onGroup, @CliOption(key = CliStrings.STATUS_GATEWAYSENDER__MEMBER, optionContext = ConverterHint.MEMBERIDNAME, - help = CliStrings.STATUS_GATEWAYSENDER__MEMBER__HELP) String onMember) { + help = CliStrings.STATUS_GATEWAYSENDER__MEMBER__HELP) String[] onMember) { Result result = null; if (senderId != null) @@ -881,8 +908,12 @@ public class WanCommands extends AbstractCommandsSupport { crd.addSection(CliStrings.SECTION_GATEWAY_SENDER_NOT_AVAILABLE) .addTable(CliStrings.TABLE_GATEWAY_SENDER); - Set dsMembers = null; - dsMembers = CliUtil.findMembersOrThrow(onGroup, onMember); + Set dsMembers = CliUtil.findMembers(onGroup, onMember); + + if (dsMembers.isEmpty()) { + return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); + } + for (DistributedMember member : dsMembers) { if (cache.getDistributedSystem().getDistributedMember().getId().equals(member.getId())) { bean = service.getLocalGatewaySenderMXBean(senderId); @@ -897,8 +928,6 @@ public class WanCommands extends AbstractCommandsSupport { } } result = ResultBuilder.buildResult(crd); - } catch (CommandResultException crex) { - result = handleCommandResultException(crex); } catch (Exception e) { LogWrapper.getInstance().warning(CliStrings.GATEWAY_ERROR + CliUtil.stackTraceAsString(e)); result = ResultBuilder.createGemFireErrorResult(CliStrings.GATEWAY_ERROR + e.getMessage()); @@ -912,11 +941,11 @@ public class WanCommands extends AbstractCommandsSupport { @ResourceOperation(resource = Resource.CLUSTER, operation = Operation.READ) public Result statusGatewayReceiver(@CliOption(key = CliStrings.STATUS_GATEWAYRECEIVER__GROUP, optionContext = ConverterHint.MEMBERGROUP, - help = CliStrings.STATUS_GATEWAYRECEIVER__GROUP__HELP) String onGroup, + help = CliStrings.STATUS_GATEWAYRECEIVER__GROUP__HELP) String[] onGroup, @CliOption(key = CliStrings.STATUS_GATEWAYRECEIVER__MEMBER, optionContext = ConverterHint.MEMBERIDNAME, - help = CliStrings.STATUS_GATEWAYRECEIVER__MEMBER__HELP) String onMember) { + help = CliStrings.STATUS_GATEWAYRECEIVER__MEMBER__HELP) String[] onMember) { Result result = null; @@ -934,7 +963,11 @@ public class WanCommands extends AbstractCommandsSupport { crd.addSection(CliStrings.SECTION_GATEWAY_RECEIVER_NOT_AVAILABLE) .addTable(CliStrings.TABLE_GATEWAY_RECEIVER); - Set dsMembers = CliUtil.findMembersOrThrow(onGroup, onMember); + Set dsMembers = CliUtil.findMembers(onGroup, onMember); + + if (dsMembers.isEmpty()) { + return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); + } for (DistributedMember member : dsMembers) { ObjectName gatewayReceiverObjectName = MBeanJMXAdapter.getGatewayReceiverMBeanName(member); @@ -949,8 +982,6 @@ public class WanCommands extends AbstractCommandsSupport { buildReceiverStatus(member.getId(), null, notAvailableReceiverData); } result = ResultBuilder.buildResult(crd); - } catch (CommandResultException crex) { - result = handleCommandResultException(crex); } catch (Exception e) { LogWrapper.getInstance().warning(CliStrings.GATEWAY_ERROR + CliUtil.stackTraceAsString(e)); result = ResultBuilder.createGemFireErrorResult(CliStrings.GATEWAY_ERROR + e.getMessage()); @@ -969,7 +1000,7 @@ public class WanCommands extends AbstractCommandsSupport { @CliOption(key = CliStrings.DESTROY_GATEWAYSENDER__MEMBER, optionContext = ConverterHint.MEMBERIDNAME, unspecifiedDefaultValue = CliMetaData.ANNOTATION_NULL_VALUE, - help = CliStrings.DESTROY_GATEWAYSENDER__MEMBER__HELP) String onMember, + help = CliStrings.DESTROY_GATEWAYSENDER__MEMBER__HELP) String[] onMember, @CliOption(key = CliStrings.DESTROY_GATEWAYSENDER__ID, mandatory = true, optionContext = ConverterHint.GATEWAY_SENDER_ID, help = CliStrings.DESTROY_GATEWAYSENDER__ID__HELP) String id) { @@ -979,7 +1010,11 @@ public class WanCommands extends AbstractCommandsSupport { new GatewaySenderDestroyFunctionArgs(id); Set membersToDestroyGatewaySenderOn = - CliUtil.findMembersOrThrow(onGroups, onMember == null ? null : onMember.split(",")); + CliUtil.findMembers(onGroups, onMember); + + if (membersToDestroyGatewaySenderOn.isEmpty()) { + return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE); + } ResultCollector resultCollector = CliUtil.executeFunction(GatewaySenderDestroyFunction.INSTANCE, @@ -1000,8 +1035,6 @@ public class WanCommands extends AbstractCommandsSupport { } catch (IllegalArgumentException e) { LogWrapper.getInstance().info(e.getMessage()); result = ResultBuilder.createUserErrorResult(e.getMessage()); - } catch (CommandResultException crex) { - result = handleCommandResultException(crex); } return result; } http://git-wip-us.apache.org/repos/asf/geode/blob/c1ab3ffe/geode-core/src/test/java/org/apache/geode/management/internal/cli/CliUtilDUnitTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/CliUtilDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/CliUtilDUnitTest.java index d610ca0..489be28 100644 --- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/CliUtilDUnitTest.java +++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/CliUtilDUnitTest.java @@ -261,35 +261,30 @@ public class CliUtilDUnitTest extends JUnit4CacheTestCase { } public void verifyFindAllMatchingMembers() { - try { - Set set = CliUtil.findMembersOrThrow(GROUP1, null); - assertNotNull(set); - assertEquals(2, set.size()); - assertEquals(true, containsMember(set, MEMBER_1_GROUP1)); - assertEquals(true, containsMember(set, MEMBER_2_GROUP1)); - - set = CliUtil.findMembersOrThrow("group1,group2", null); - assertNotNull(set); - assertEquals(4, set.size()); - assertEquals(true, containsMember(set, MEMBER_1_GROUP1)); - assertEquals(true, containsMember(set, MEMBER_2_GROUP1)); - assertEquals(true, containsMember(set, MEMBER_1_GROUP2)); - assertEquals(true, containsMember(set, MEMBER_2_GROUP2)); - - set = CliUtil.findMembersOrThrow(null, MEMBER_1_GROUP1); - assertNotNull(set); - assertEquals(1, set.size()); - assertEquals(true, containsMember(set, MEMBER_1_GROUP1)); - - set = CliUtil.findMembersOrThrow(null, "member1_group1,member2_group2"); - assertNotNull(set); - assertEquals(2, set.size()); - assertEquals(true, containsMember(set, MEMBER_1_GROUP1)); - assertEquals(true, containsMember(set, MEMBER_2_GROUP2)); - - } catch (CommandResultException e) { - Assert.fail("CliUtil failed with exception", e); - } + Set set = CliUtil.findMembers(GROUP1.split(","), null); + assertNotNull(set); + assertEquals(2, set.size()); + assertEquals(true, containsMember(set, MEMBER_1_GROUP1)); + assertEquals(true, containsMember(set, MEMBER_2_GROUP1)); + + set = CliUtil.findMembers(new String[] {"group1", "group2"}, null); + assertNotNull(set); + assertEquals(4, set.size()); + assertEquals(true, containsMember(set, MEMBER_1_GROUP1)); + assertEquals(true, containsMember(set, MEMBER_2_GROUP1)); + assertEquals(true, containsMember(set, MEMBER_1_GROUP2)); + assertEquals(true, containsMember(set, MEMBER_2_GROUP2)); + + set = CliUtil.findMembers(null, MEMBER_1_GROUP1.split(",")); + assertNotNull(set); + assertEquals(1, set.size()); + assertEquals(true, containsMember(set, MEMBER_1_GROUP1)); + + set = CliUtil.findMembers(null, new String[] {"member1_group1", "member2_group2"}); + assertNotNull(set); + assertEquals(2, set.size()); + assertEquals(true, containsMember(set, MEMBER_1_GROUP1)); + assertEquals(true, containsMember(set, MEMBER_2_GROUP2)); } private Object containsMember(Set set, String string) { @@ -311,22 +306,18 @@ public class CliUtilDUnitTest extends JUnit4CacheTestCase { public void verifyExecuteFunction() { DunitFunction function = new DunitFunction("myfunction"); Set set; - try { - @SuppressWarnings("rawtypes") - Region region1 = getCache().getRegion(COMMON_REGION); - region1.clear(); - set = CliUtil.findMembersOrThrow(GROUP1, null); - assertEquals(2, set.size()); - ResultCollector collector = CliUtil.executeFunction(function, "executeOnGroup", set); - collector.getResult(); - assertEquals(2, region1.size()); - assertTrue(region1.containsKey(MEMBER_1_GROUP1)); - assertTrue(region1.containsKey(MEMBER_2_GROUP1)); - assertEquals("executeOnGroup", region1.get(MEMBER_1_GROUP1)); - assertEquals("executeOnGroup", region1.get(MEMBER_2_GROUP1)); - } catch (CommandResultException e) { - Assert.fail("Error during querying members", e); - } + @SuppressWarnings("rawtypes") + Region region1 = getCache().getRegion(COMMON_REGION); + region1.clear(); + set = CliUtil.findMembers(GROUP1.split(","), null); + assertEquals(2, set.size()); + ResultCollector collector = CliUtil.executeFunction(function, "executeOnGroup", set); + collector.getResult(); + assertEquals(2, region1.size()); + assertTrue(region1.containsKey(MEMBER_1_GROUP1)); + assertTrue(region1.containsKey(MEMBER_2_GROUP1)); + assertEquals("executeOnGroup", region1.get(MEMBER_1_GROUP1)); + assertEquals("executeOnGroup", region1.get(MEMBER_2_GROUP1)); } public void getRegionAssociatedMembers() {