You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by kl...@apache.org on 2017/08/01 21:03:20 UTC
[26/50] [abbrv] geode git commit: GEODE-3271: Separating WanCommands
into multiple command classes
http://git-wip-us.apache.org/repos/asf/geode/blob/e1befef4/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StopGatewaySenderCommand.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StopGatewaySenderCommand.java b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StopGatewaySenderCommand.java
new file mode 100644
index 0000000..5b20f1e
--- /dev/null
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/StopGatewaySenderCommand.java
@@ -0,0 +1,113 @@
+/*
+ * 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.
+ */
+
+package org.apache.geode.management.internal.cli.commands;
+
+import java.util.Set;
+
+import javax.management.ObjectName;
+
+import org.springframework.shell.core.annotation.CliCommand;
+import org.springframework.shell.core.annotation.CliOption;
+
+import org.apache.geode.distributed.DistributedMember;
+import org.apache.geode.internal.cache.InternalCache;
+import org.apache.geode.management.GatewaySenderMXBean;
+import org.apache.geode.management.ManagementService;
+import org.apache.geode.management.cli.CliMetaData;
+import org.apache.geode.management.cli.ConverterHint;
+import org.apache.geode.management.cli.Result;
+import org.apache.geode.management.internal.SystemManagementService;
+import org.apache.geode.management.internal.cli.CliUtil;
+import org.apache.geode.management.internal.cli.LogWrapper;
+import org.apache.geode.management.internal.cli.i18n.CliStrings;
+import org.apache.geode.management.internal.cli.result.ResultBuilder;
+import org.apache.geode.management.internal.cli.result.TabularResultData;
+import org.apache.geode.management.internal.security.ResourceOperation;
+import org.apache.geode.security.ResourcePermission;
+
+public class StopGatewaySenderCommand implements GfshCommand {
+
+ @CliCommand(value = CliStrings.STOP_GATEWAYSENDER, help = CliStrings.STOP_GATEWAYSENDER__HELP)
+ @CliMetaData(relatedTopic = CliStrings.TOPIC_GEODE_WAN)
+ @ResourceOperation(resource = ResourcePermission.Resource.CLUSTER,
+ operation = ResourcePermission.Operation.MANAGE, target = ResourcePermission.Target.GATEWAY)
+ public Result stopGatewaySender(@CliOption(key = CliStrings.STOP_GATEWAYSENDER__ID,
+ mandatory = true, optionContext = ConverterHint.GATEWAY_SENDER_ID,
+ help = CliStrings.STOP_GATEWAYSENDER__ID__HELP) String senderId,
+
+ @CliOption(key = {CliStrings.GROUP, CliStrings.GROUPS},
+ optionContext = ConverterHint.MEMBERGROUP,
+ help = CliStrings.STOP_GATEWAYSENDER__GROUP__HELP) String[] onGroup,
+
+ @CliOption(key = {CliStrings.MEMBER, CliStrings.MEMBERS},
+ optionContext = ConverterHint.MEMBERIDNAME,
+ help = CliStrings.STOP_GATEWAYSENDER__MEMBER__HELP) String[] onMember) {
+
+ Result result;
+ if (senderId != null) {
+ senderId = senderId.trim();
+ }
+
+ try {
+ InternalCache cache = getCache();
+ SystemManagementService service =
+ (SystemManagementService) ManagementService.getExistingManagementService(cache);
+
+ GatewaySenderMXBean bean;
+
+ TabularResultData resultData = ResultBuilder.createTabularResultData();
+
+ Set<DistributedMember> 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);
+ } else {
+ ObjectName objectName = service.getGatewaySenderMBeanName(member, senderId);
+ bean = service.getMBeanProxy(objectName, GatewaySenderMXBean.class);
+ }
+ if (bean != null) {
+ if (bean.isRunning()) {
+ bean.stop();
+ GatewayCommandsUtils.accumulateStartResult(resultData, member.getId(),
+ CliStrings.GATEWAY_OK, CliStrings.format(
+ CliStrings.GATEWAY_SENDER_0_IS_STOPPED_ON_MEMBER_1, senderId, member.getId()));
+
+ } else {
+ GatewayCommandsUtils.accumulateStartResult(resultData, member.getId(),
+ CliStrings.GATEWAY_ERROR,
+ CliStrings.format(CliStrings.GATEWAY_SENDER_0_IS_NOT_RUNNING_ON_MEMBER_1, senderId,
+ member.getId()));
+ }
+ } else {
+ GatewayCommandsUtils.accumulateStartResult(resultData, member.getId(),
+ CliStrings.GATEWAY_ERROR,
+ CliStrings.format(CliStrings.GATEWAY_SENDER_0_IS_NOT_AVAILABLE_ON_MEMBER_1, senderId,
+ member.getId()));
+ }
+ }
+ result = ResultBuilder.buildResult(resultData);
+ } catch (Exception e) {
+ LogWrapper.getInstance().warning(CliStrings.GATEWAY_ERROR + CliUtil.stackTraceAsString(e));
+ result = ResultBuilder.createGemFireErrorResult(CliStrings.GATEWAY_ERROR + e.getMessage());
+ }
+ return result;
+ }
+}
http://git-wip-us.apache.org/repos/asf/geode/blob/e1befef4/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
deleted file mode 100644
index c6fb709..0000000
--- a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/WanCommands.java
+++ /dev/null
@@ -1,1137 +0,0 @@
-/*
- * 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.
- */
-package org.apache.geode.management.internal.cli.commands;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeMap;
-import java.util.concurrent.Callable;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
-import java.util.concurrent.ThreadFactory;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.AtomicReference;
-
-import javax.management.ObjectName;
-
-import org.springframework.shell.core.annotation.CliCommand;
-import org.springframework.shell.core.annotation.CliOption;
-
-import org.apache.geode.cache.execute.ResultCollector;
-import org.apache.geode.distributed.DistributedMember;
-import org.apache.geode.internal.cache.InternalCache;
-import org.apache.geode.management.DistributedSystemMXBean;
-import org.apache.geode.management.GatewayReceiverMXBean;
-import org.apache.geode.management.GatewaySenderMXBean;
-import org.apache.geode.management.ManagementService;
-import org.apache.geode.management.cli.CliMetaData;
-import org.apache.geode.management.cli.ConverterHint;
-import org.apache.geode.management.cli.Result;
-import org.apache.geode.management.internal.MBeanJMXAdapter;
-import org.apache.geode.management.internal.SystemManagementService;
-import org.apache.geode.management.internal.cli.CliUtil;
-import org.apache.geode.management.internal.cli.LogWrapper;
-import org.apache.geode.management.internal.cli.functions.CliFunctionResult;
-import org.apache.geode.management.internal.cli.functions.GatewayReceiverCreateFunction;
-import org.apache.geode.management.internal.cli.functions.GatewayReceiverFunctionArgs;
-import org.apache.geode.management.internal.cli.functions.GatewaySenderCreateFunction;
-import org.apache.geode.management.internal.cli.functions.GatewaySenderDestroyFunction;
-import org.apache.geode.management.internal.cli.functions.GatewaySenderDestroyFunctionArgs;
-import org.apache.geode.management.internal.cli.functions.GatewaySenderFunctionArgs;
-import org.apache.geode.management.internal.cli.i18n.CliStrings;
-import org.apache.geode.management.internal.cli.result.CommandResultException;
-import org.apache.geode.management.internal.cli.result.CompositeResultData;
-import org.apache.geode.management.internal.cli.result.ResultBuilder;
-import org.apache.geode.management.internal.cli.result.TabularResultData;
-import org.apache.geode.management.internal.configuration.domain.XmlEntity;
-import org.apache.geode.management.internal.security.ResourceOperation;
-import org.apache.geode.security.ResourcePermission.Operation;
-import org.apache.geode.security.ResourcePermission.Resource;
-import org.apache.geode.security.ResourcePermission.Target;
-
-public class WanCommands implements GfshCommand {
-
- @CliCommand(value = CliStrings.CREATE_GATEWAYSENDER, help = CliStrings.CREATE_GATEWAYSENDER__HELP)
- @CliMetaData(relatedTopic = CliStrings.TOPIC_GEODE_WAN)
- @ResourceOperation(resource = Resource.CLUSTER, operation = Operation.MANAGE,
- target = Target.GATEWAY)
- public Result createGatewaySender(@CliOption(key = {CliStrings.GROUP, CliStrings.GROUPS},
- optionContext = ConverterHint.MEMBERGROUP,
- help = CliStrings.CREATE_GATEWAYSENDER__GROUP__HELP) String[] onGroups,
-
- @CliOption(key = {CliStrings.MEMBER, CliStrings.MEMBERS},
- optionContext = ConverterHint.MEMBERIDNAME,
- help = CliStrings.CREATE_GATEWAYSENDER__MEMBER__HELP) String[] onMember,
-
- @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__ID, mandatory = true,
- help = CliStrings.CREATE_GATEWAYSENDER__ID__HELP) String id,
-
- @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__REMOTEDISTRIBUTEDSYSTEMID, mandatory = true,
- help = CliStrings.CREATE_GATEWAYSENDER__REMOTEDISTRIBUTEDSYSTEMID__HELP) Integer remoteDistributedSystemId,
-
- @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__PARALLEL,
- help = CliStrings.CREATE_GATEWAYSENDER__PARALLEL__HELP) Boolean parallel,
-
- @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__MANUALSTART,
- help = CliStrings.CREATE_GATEWAYSENDER__MANUALSTART__HELP) Boolean manualStart,
-
- @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__SOCKETBUFFERSIZE,
- help = CliStrings.CREATE_GATEWAYSENDER__SOCKETBUFFERSIZE__HELP) Integer socketBufferSize,
-
- @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__SOCKETREADTIMEOUT,
- help = CliStrings.CREATE_GATEWAYSENDER__SOCKETREADTIMEOUT__HELP) Integer socketReadTimeout,
-
- @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__ENABLEBATCHCONFLATION,
- help = CliStrings.CREATE_GATEWAYSENDER__ENABLEBATCHCONFLATION__HELP) Boolean enableBatchConflation,
-
- @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__BATCHSIZE,
- help = CliStrings.CREATE_GATEWAYSENDER__BATCHSIZE__HELP) Integer batchSize,
-
- @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__BATCHTIMEINTERVAL,
- help = CliStrings.CREATE_GATEWAYSENDER__BATCHTIMEINTERVAL__HELP) Integer batchTimeInterval,
-
- @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__ENABLEPERSISTENCE,
- help = CliStrings.CREATE_GATEWAYSENDER__ENABLEPERSISTENCE__HELP) Boolean enablePersistence,
-
- @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__DISKSTORENAME,
- help = CliStrings.CREATE_GATEWAYSENDER__DISKSTORENAME__HELP) String diskStoreName,
-
- @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__DISKSYNCHRONOUS,
- help = CliStrings.CREATE_GATEWAYSENDER__DISKSYNCHRONOUS__HELP) Boolean diskSynchronous,
-
- @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__MAXQUEUEMEMORY,
- help = CliStrings.CREATE_GATEWAYSENDER__MAXQUEUEMEMORY__HELP) Integer maxQueueMemory,
-
- @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__ALERTTHRESHOLD,
- help = CliStrings.CREATE_GATEWAYSENDER__ALERTTHRESHOLD__HELP) Integer alertThreshold,
-
- @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__DISPATCHERTHREADS,
- help = CliStrings.CREATE_GATEWAYSENDER__DISPATCHERTHREADS__HELP) Integer dispatcherThreads,
-
- @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__ORDERPOLICY,
- help = CliStrings.CREATE_GATEWAYSENDER__ORDERPOLICY__HELP) String orderPolicy,
-
- @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__GATEWAYEVENTFILTER,
- help = CliStrings.CREATE_GATEWAYSENDER__GATEWAYEVENTFILTER__HELP) String[] gatewayEventFilters,
-
- @CliOption(key = CliStrings.CREATE_GATEWAYSENDER__GATEWAYTRANSPORTFILTER,
- help = CliStrings.CREATE_GATEWAYSENDER__GATEWAYTRANSPORTFILTER__HELP) String[] gatewayTransportFilter) {
-
- Result result;
-
- AtomicReference<XmlEntity> xmlEntity = new AtomicReference<>();
- try {
- GatewaySenderFunctionArgs gatewaySenderFunctionArgs = new GatewaySenderFunctionArgs(id,
- remoteDistributedSystemId, parallel, manualStart, socketBufferSize, socketReadTimeout,
- enableBatchConflation, batchSize, batchTimeInterval, enablePersistence, diskStoreName,
- diskSynchronous, maxQueueMemory, alertThreshold, dispatcherThreads, orderPolicy,
- gatewayEventFilters, gatewayTransportFilter);
-
- Set<DistributedMember> membersToCreateGatewaySenderOn =
- CliUtil.findMembers(onGroups, onMember);
-
- if (membersToCreateGatewaySenderOn.isEmpty()) {
- return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE);
- }
-
- ResultCollector<?, ?> resultCollector =
- CliUtil.executeFunction(GatewaySenderCreateFunction.INSTANCE, gatewaySenderFunctionArgs,
- membersToCreateGatewaySenderOn);
- @SuppressWarnings("unchecked")
- List<CliFunctionResult> gatewaySenderCreateResults =
- (List<CliFunctionResult>) resultCollector.getResult();
-
- TabularResultData tabularResultData = ResultBuilder.createTabularResultData();
- final String errorPrefix = "ERROR: ";
- for (CliFunctionResult gatewaySenderCreateResult : gatewaySenderCreateResults) {
- boolean success = gatewaySenderCreateResult.isSuccessful();
- tabularResultData.accumulate("Member", gatewaySenderCreateResult.getMemberIdOrName());
- tabularResultData.accumulate("Status",
- (success ? "" : errorPrefix) + gatewaySenderCreateResult.getMessage());
-
- if (success && xmlEntity.get() == null) {
- xmlEntity.set(gatewaySenderCreateResult.getXmlEntity());
- }
- }
- result = ResultBuilder.buildResult(tabularResultData);
- } catch (IllegalArgumentException e) {
- LogWrapper.getInstance().info(e.getMessage());
- result = ResultBuilder.createUserErrorResult(e.getMessage());
- }
-
- if (xmlEntity.get() != null) {
- persistClusterConfiguration(result,
- () -> getSharedConfiguration().addXmlEntity(xmlEntity.get(), onGroups));
- }
- return result;
- }
-
- @CliCommand(value = CliStrings.START_GATEWAYSENDER, help = CliStrings.START_GATEWAYSENDER__HELP)
- @CliMetaData(relatedTopic = CliStrings.TOPIC_GEODE_WAN)
- @ResourceOperation(resource = Resource.CLUSTER, operation = Operation.MANAGE,
- target = Target.GATEWAY)
- public Result startGatewaySender(@CliOption(key = CliStrings.START_GATEWAYSENDER__ID,
- mandatory = true, optionContext = ConverterHint.GATEWAY_SENDER_ID,
- help = CliStrings.START_GATEWAYSENDER__ID__HELP) String senderId,
-
- @CliOption(key = {CliStrings.GROUP, CliStrings.GROUPS},
- optionContext = ConverterHint.MEMBERGROUP,
- help = CliStrings.START_GATEWAYSENDER__GROUP__HELP) String[] onGroup,
-
- @CliOption(key = {CliStrings.MEMBER, CliStrings.MEMBERS},
- optionContext = ConverterHint.MEMBERIDNAME,
- help = CliStrings.START_GATEWAYSENDER__MEMBER__HELP) String[] onMember) {
-
- Result result;
- final String id = senderId.trim();
-
- try {
- final InternalCache cache = getCache();
- final SystemManagementService service =
- (SystemManagementService) ManagementService.getExistingManagementService(cache);
-
- TabularResultData resultData = ResultBuilder.createTabularResultData();
-
- Set<DistributedMember> 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();
-
- public Thread newThread(final Runnable r) {
- Thread result =
- new Thread(r, "Start Sender Command Thread " + threadNum.incrementAndGet());
- result.setDaemon(true);
- return result;
- }
- });
-
- List<Callable<List>> callables = new ArrayList<>();
-
- for (final DistributedMember member : dsMembers) {
-
- callables.add(() -> {
-
- GatewaySenderMXBean bean;
- ArrayList<String> statusList = new ArrayList<>();
- if (cache.getDistributedSystem().getDistributedMember().getId().equals(member.getId())) {
- bean = service.getLocalGatewaySenderMXBean(id);
- } else {
- ObjectName objectName = service.getGatewaySenderMBeanName(member, id);
- bean = service.getMBeanProxy(objectName, GatewaySenderMXBean.class);
- }
- if (bean != null) {
- if (bean.isRunning()) {
- statusList.add(member.getId());
- statusList.add(CliStrings.GATEWAY_ERROR);
- statusList.add(CliStrings.format(
- CliStrings.GATEWAY_SENDER_0_IS_ALREADY_STARTED_ON_MEMBER_1, id, member.getId()));
- } else {
- bean.start();
- statusList.add(member.getId());
- statusList.add(CliStrings.GATEWAY_OK);
- statusList.add(CliStrings.format(CliStrings.GATEWAY_SENDER_0_IS_STARTED_ON_MEMBER_1,
- id, member.getId()));
- }
- } else {
- statusList.add(member.getId());
- statusList.add(CliStrings.GATEWAY_ERROR);
- statusList.add(CliStrings.format(
- CliStrings.GATEWAY_SENDER_0_IS_NOT_AVAILABLE_ON_MEMBER_1, id, member.getId()));
- }
- return statusList;
-
- });
- }
-
- Iterator<DistributedMember> memberIterator = dsMembers.iterator();
- List<Future<List>> futures = null;
-
- try {
- futures = execService.invokeAll(callables);
- } catch (InterruptedException ite) {
- accumulateStartResult(resultData, null, CliStrings.GATEWAY_ERROR, CliStrings.format(
- CliStrings.GATEWAY_SENDER_0_COULD_NOT_BE_INVOKED_DUE_TO_1, id, ite.getMessage()));
- }
-
- for (Future<List> future : futures) {
- DistributedMember member = memberIterator.next();
- List<String> memberStatus;
- try {
- memberStatus = future.get();
- accumulateStartResult(resultData, memberStatus.get(0), memberStatus.get(1),
- memberStatus.get(2));
- } catch (InterruptedException | ExecutionException ite) {
- accumulateStartResult(resultData, member.getId(), CliStrings.GATEWAY_ERROR,
- CliStrings.format(CliStrings.GATEWAY_SENDER_0_COULD_NOT_BE_STARTED_ON_MEMBER_DUE_TO_1,
- id, ite.getMessage()));
- }
- }
- execService.shutdown();
- result = ResultBuilder.buildResult(resultData);
- } catch (Exception e) {
- LogWrapper.getInstance().warning(CliStrings.GATEWAY_ERROR + CliUtil.stackTraceAsString(e));
- result = ResultBuilder.createGemFireErrorResult(CliStrings.GATEWAY_ERROR + e.getMessage());
- }
-
- return result;
- }
-
- @CliCommand(value = CliStrings.PAUSE_GATEWAYSENDER, help = CliStrings.PAUSE_GATEWAYSENDER__HELP)
- @CliMetaData(relatedTopic = CliStrings.TOPIC_GEODE_WAN)
- @ResourceOperation(resource = Resource.CLUSTER, operation = Operation.MANAGE,
- target = Target.GATEWAY)
- public Result pauseGatewaySender(@CliOption(key = CliStrings.PAUSE_GATEWAYSENDER__ID,
- mandatory = true, optionContext = ConverterHint.GATEWAY_SENDER_ID,
- help = CliStrings.PAUSE_GATEWAYSENDER__ID__HELP) String senderId,
-
- @CliOption(key = {CliStrings.GROUP, CliStrings.GROUPS},
- optionContext = ConverterHint.MEMBERGROUP,
- help = CliStrings.PAUSE_GATEWAYSENDER__GROUP__HELP) String[] onGroup,
-
- @CliOption(key = {CliStrings.MEMBER, CliStrings.MEMBERS},
- optionContext = ConverterHint.MEMBERIDNAME,
- help = CliStrings.PAUSE_GATEWAYSENDER__MEMBER__HELP) String[] onMember) {
-
- Result result;
- if (senderId != null) {
- senderId = senderId.trim();
- }
-
- try {
- InternalCache cache = getCache();
- SystemManagementService service =
- (SystemManagementService) ManagementService.getExistingManagementService(cache);
-
- GatewaySenderMXBean bean;
-
- TabularResultData resultData = ResultBuilder.createTabularResultData();
-
- Set<DistributedMember> 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);
- } else {
- ObjectName objectName = service.getGatewaySenderMBeanName(member, senderId);
- bean = service.getMBeanProxy(objectName, GatewaySenderMXBean.class);
- }
- if (bean != null) {
- if (bean.isRunning()) {
- if (bean.isPaused()) {
- accumulateStartResult(resultData, member.getId(), CliStrings.GATEWAY_ERROR,
- CliStrings.format(CliStrings.GATEWAY_SENDER_0_IS_ALREADY_PAUSED_ON_MEMBER_1,
- senderId, member.getId()));
- } else {
- bean.pause();
- accumulateStartResult(resultData, member.getId(), CliStrings.GATEWAY_OK,
- CliStrings.format(CliStrings.GATEWAY_SENDER_0_IS_PAUSED_ON_MEMBER_1, senderId,
- member.getId()));
- }
- } else {
- accumulateStartResult(resultData, member.getId(), CliStrings.GATEWAY_ERROR,
- CliStrings.format(CliStrings.GATEWAY_SENDER_0_IS_NOT_RUNNING_ON_MEMBER_1, senderId,
- member.getId()));
- }
- } else {
- accumulateStartResult(resultData, member.getId(), CliStrings.GATEWAY_ERROR,
- CliStrings.format(CliStrings.GATEWAY_SENDER_0_IS_NOT_AVAILABLE_ON_MEMBER_1, senderId,
- member.getId()));
- }
- }
- result = ResultBuilder.buildResult(resultData);
- } catch (Exception e) {
- LogWrapper.getInstance().warning(CliStrings.GATEWAY_ERROR + CliUtil.stackTraceAsString(e));
- result = ResultBuilder.createGemFireErrorResult(CliStrings.GATEWAY_ERROR + e.getMessage());
- }
- return result;
- }
-
- @CliCommand(value = CliStrings.RESUME_GATEWAYSENDER, help = CliStrings.RESUME_GATEWAYSENDER__HELP)
- @CliMetaData(relatedTopic = CliStrings.TOPIC_GEODE_WAN)
- @ResourceOperation(resource = Resource.CLUSTER, operation = Operation.MANAGE,
- target = Target.GATEWAY)
- public Result resumeGatewaySender(@CliOption(key = CliStrings.RESUME_GATEWAYSENDER__ID,
- mandatory = true, optionContext = ConverterHint.GATEWAY_SENDER_ID,
- help = CliStrings.RESUME_GATEWAYSENDER__ID__HELP) String senderId,
-
- @CliOption(key = {CliStrings.GROUP, CliStrings.GROUPS},
- optionContext = ConverterHint.MEMBERGROUP,
- help = CliStrings.RESUME_GATEWAYSENDER__GROUP__HELP) String[] onGroup,
- @CliOption(key = {CliStrings.MEMBER, CliStrings.MEMBERS},
- optionContext = ConverterHint.MEMBERIDNAME,
- help = CliStrings.RESUME_GATEWAYSENDER__MEMBER__HELP) String[] onMember) {
-
- Result result;
- if (senderId != null) {
- senderId = senderId.trim();
- }
-
- try {
- InternalCache cache = getCache();
- SystemManagementService service =
- (SystemManagementService) ManagementService.getExistingManagementService(cache);
-
- GatewaySenderMXBean bean;
-
- TabularResultData resultData = ResultBuilder.createTabularResultData();
-
- Set<DistributedMember> 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);
- } else {
- ObjectName objectName = service.getGatewaySenderMBeanName(member, senderId);
- bean = service.getMBeanProxy(objectName, GatewaySenderMXBean.class);
- }
- if (bean != null) {
- if (bean.isRunning()) {
- if (bean.isPaused()) {
- bean.resume();
- accumulateStartResult(resultData, member.getId(), CliStrings.GATEWAY_OK,
- CliStrings.format(CliStrings.GATEWAY_SENDER_0_IS_RESUMED_ON_MEMBER_1, senderId,
- member.getId()));
- } else {
- accumulateStartResult(resultData, member.getId(), CliStrings.GATEWAY_ERROR,
- CliStrings.format(CliStrings.GATEWAY_SENDER_0_IS_NOT_PAUSED_ON_MEMBER_1, senderId,
- member.getId()));
- }
- } else {
- accumulateStartResult(resultData, member.getId(), CliStrings.GATEWAY_ERROR,
- CliStrings.format(CliStrings.GATEWAY_SENDER_0_IS_NOT_RUNNING_ON_MEMBER_1, senderId,
- member.getId()));
- }
- } else {
- accumulateStartResult(resultData, member.getId(), CliStrings.GATEWAY_ERROR,
- CliStrings.format(CliStrings.GATEWAY_SENDER_0_IS_NOT_AVAILABLE_ON_MEMBER_1, senderId,
- member.getId()));
- }
- }
- result = ResultBuilder.buildResult(resultData);
- } catch (Exception e) {
- LogWrapper.getInstance().warning(CliStrings.GATEWAY_ERROR + CliUtil.stackTraceAsString(e));
- result = ResultBuilder.createGemFireErrorResult(CliStrings.GATEWAY_ERROR + e.getMessage());
- }
- return result;
- }
-
- @CliCommand(value = CliStrings.STOP_GATEWAYSENDER, help = CliStrings.STOP_GATEWAYSENDER__HELP)
- @CliMetaData(relatedTopic = CliStrings.TOPIC_GEODE_WAN)
- @ResourceOperation(resource = Resource.CLUSTER, operation = Operation.MANAGE,
- target = Target.GATEWAY)
- public Result stopGatewaySender(@CliOption(key = CliStrings.STOP_GATEWAYSENDER__ID,
- mandatory = true, optionContext = ConverterHint.GATEWAY_SENDER_ID,
- help = CliStrings.STOP_GATEWAYSENDER__ID__HELP) String senderId,
-
- @CliOption(key = {CliStrings.GROUP, CliStrings.GROUPS},
- optionContext = ConverterHint.MEMBERGROUP,
- help = CliStrings.STOP_GATEWAYSENDER__GROUP__HELP) String[] onGroup,
-
- @CliOption(key = {CliStrings.MEMBER, CliStrings.MEMBERS},
- optionContext = ConverterHint.MEMBERIDNAME,
- help = CliStrings.STOP_GATEWAYSENDER__MEMBER__HELP) String[] onMember) {
-
- Result result;
- if (senderId != null)
- senderId = senderId.trim();
-
- try {
- InternalCache cache = getCache();
- SystemManagementService service =
- (SystemManagementService) ManagementService.getExistingManagementService(cache);
-
- GatewaySenderMXBean bean;
-
- TabularResultData resultData = ResultBuilder.createTabularResultData();
-
- Set<DistributedMember> 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);
- } else {
- ObjectName objectName = service.getGatewaySenderMBeanName(member, senderId);
- bean = service.getMBeanProxy(objectName, GatewaySenderMXBean.class);
- }
- if (bean != null) {
- if (bean.isRunning()) {
- bean.stop();
- accumulateStartResult(resultData, member.getId(), CliStrings.GATEWAY_OK,
- CliStrings.format(CliStrings.GATEWAY_SENDER_0_IS_STOPPED_ON_MEMBER_1, senderId,
- member.getId()));
-
- } else {
- accumulateStartResult(resultData, member.getId(), CliStrings.GATEWAY_ERROR,
- CliStrings.format(CliStrings.GATEWAY_SENDER_0_IS_NOT_RUNNING_ON_MEMBER_1, senderId,
- member.getId()));
- }
- } else {
- accumulateStartResult(resultData, member.getId(), CliStrings.GATEWAY_ERROR,
- CliStrings.format(CliStrings.GATEWAY_SENDER_0_IS_NOT_AVAILABLE_ON_MEMBER_1, senderId,
- member.getId()));
- }
- }
- result = ResultBuilder.buildResult(resultData);
- } catch (Exception e) {
- LogWrapper.getInstance().warning(CliStrings.GATEWAY_ERROR + CliUtil.stackTraceAsString(e));
- result = ResultBuilder.createGemFireErrorResult(CliStrings.GATEWAY_ERROR + e.getMessage());
- }
- return result;
- }
-
- @CliCommand(value = CliStrings.CREATE_GATEWAYRECEIVER,
- help = CliStrings.CREATE_GATEWAYRECEIVER__HELP)
- @CliMetaData(relatedTopic = CliStrings.TOPIC_GEODE_WAN)
- @ResourceOperation(resource = Resource.CLUSTER, operation = Operation.MANAGE,
- target = Target.GATEWAY)
- public Result createGatewayReceiver(@CliOption(key = {CliStrings.GROUP, CliStrings.GROUPS},
- optionContext = ConverterHint.MEMBERGROUP,
- help = CliStrings.CREATE_GATEWAYRECEIVER__GROUP__HELP) String[] onGroups,
-
- @CliOption(key = {CliStrings.MEMBER, CliStrings.MEMBERS},
- optionContext = ConverterHint.MEMBERIDNAME,
- help = CliStrings.CREATE_GATEWAYRECEIVER__MEMBER__HELP) String[] onMember,
-
- @CliOption(key = CliStrings.CREATE_GATEWAYRECEIVER__MANUALSTART,
- help = CliStrings.CREATE_GATEWAYRECEIVER__MANUALSTART__HELP) Boolean manualStart,
-
- @CliOption(key = CliStrings.CREATE_GATEWAYRECEIVER__STARTPORT,
- help = CliStrings.CREATE_GATEWAYRECEIVER__STARTPORT__HELP) Integer startPort,
-
- @CliOption(key = CliStrings.CREATE_GATEWAYRECEIVER__ENDPORT,
- help = CliStrings.CREATE_GATEWAYRECEIVER__ENDPORT__HELP) Integer endPort,
-
- @CliOption(key = CliStrings.CREATE_GATEWAYRECEIVER__BINDADDRESS,
- help = CliStrings.CREATE_GATEWAYRECEIVER__BINDADDRESS__HELP) String bindAddress,
-
- @CliOption(key = CliStrings.CREATE_GATEWAYRECEIVER__MAXTIMEBETWEENPINGS,
- help = CliStrings.CREATE_GATEWAYRECEIVER__MAXTIMEBETWEENPINGS__HELP) Integer maximumTimeBetweenPings,
-
- @CliOption(key = CliStrings.CREATE_GATEWAYRECEIVER__SOCKETBUFFERSIZE,
- help = CliStrings.CREATE_GATEWAYRECEIVER__SOCKETBUFFERSIZE__HELP) Integer socketBufferSize,
-
- @CliOption(key = CliStrings.CREATE_GATEWAYRECEIVER__GATEWAYTRANSPORTFILTER,
- help = CliStrings.CREATE_GATEWAYRECEIVER__GATEWAYTRANSPORTFILTER__HELP) String[] gatewayTransportFilters) {
-
- Result result;
-
- AtomicReference<XmlEntity> xmlEntity = new AtomicReference<>();
- try {
- GatewayReceiverFunctionArgs gatewayReceiverFunctionArgs =
- new GatewayReceiverFunctionArgs(manualStart, startPort, endPort, bindAddress,
- socketBufferSize, maximumTimeBetweenPings, gatewayTransportFilters);
-
- Set<DistributedMember> membersToCreateGatewayReceiverOn =
- CliUtil.findMembers(onGroups, onMember);
-
- if (membersToCreateGatewayReceiverOn.isEmpty()) {
- return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE);
- }
-
- ResultCollector<?, ?> resultCollector =
- CliUtil.executeFunction(GatewayReceiverCreateFunction.INSTANCE,
- gatewayReceiverFunctionArgs, membersToCreateGatewayReceiverOn);
- @SuppressWarnings("unchecked")
- List<CliFunctionResult> gatewayReceiverCreateResults =
- (List<CliFunctionResult>) resultCollector.getResult();
-
- TabularResultData tabularResultData = ResultBuilder.createTabularResultData();
- final String errorPrefix = "ERROR: ";
-
- for (CliFunctionResult gatewayReceiverCreateResult : gatewayReceiverCreateResults) {
- boolean success = gatewayReceiverCreateResult.isSuccessful();
- tabularResultData.accumulate("Member", gatewayReceiverCreateResult.getMemberIdOrName());
- tabularResultData.accumulate("Status",
- (success ? "" : errorPrefix) + gatewayReceiverCreateResult.getMessage());
-
- if (success && xmlEntity.get() == null) {
- xmlEntity.set(gatewayReceiverCreateResult.getXmlEntity());
- }
- }
- result = ResultBuilder.buildResult(tabularResultData);
- } catch (IllegalArgumentException e) {
- LogWrapper.getInstance().info(e.getMessage());
- result = ResultBuilder.createUserErrorResult(e.getMessage());
- }
-
- if (xmlEntity.get() != null) {
- persistClusterConfiguration(result,
- () -> getSharedConfiguration().addXmlEntity(xmlEntity.get(), onGroups));
- }
-
- return result;
- }
-
- @CliCommand(value = CliStrings.LOAD_BALANCE_GATEWAYSENDER,
- help = CliStrings.LOAD_BALANCE_GATEWAYSENDER__HELP)
- @CliMetaData(relatedTopic = CliStrings.TOPIC_GEODE_WAN)
- @ResourceOperation(resource = Resource.CLUSTER, operation = Operation.MANAGE,
- target = Target.GATEWAY)
- public Result loadBalanceGatewaySender(@CliOption(key = CliStrings.LOAD_BALANCE_GATEWAYSENDER__ID,
- mandatory = true, optionContext = ConverterHint.GATEWAY_SENDER_ID,
- help = CliStrings.LOAD_BALANCE_GATEWAYSENDER__ID__HELP) String senderId) {
-
- Result result;
- if (senderId != null) {
- senderId = senderId.trim();
- }
-
- try {
- InternalCache cache = getCache();
- SystemManagementService service =
- (SystemManagementService) ManagementService.getExistingManagementService(cache);
- TabularResultData resultData = ResultBuilder.createTabularResultData();
- Set<DistributedMember> dsMembers = CliUtil.getAllNormalMembers(cache);
-
- if (dsMembers.isEmpty()) {
- result = ResultBuilder.createInfoResult(CliStrings.GATEWAY_MSG_MEMBERS_NOT_FOUND);
- } else {
- boolean gatewaySenderExists = false;
- for (DistributedMember member : dsMembers) {
- GatewaySenderMXBean bean;
- if (cache.getDistributedSystem().getDistributedMember().getId().equals(member.getId())) {
- bean = service.getLocalGatewaySenderMXBean(senderId);
- } else {
- ObjectName objectName = service.getGatewaySenderMBeanName(member, senderId);
- bean = service.getMBeanProxy(objectName, GatewaySenderMXBean.class);
- }
- if (bean != null) {
- gatewaySenderExists = true;
- bean.rebalance();
- accumulateStartResult(resultData, member.getId(), CliStrings.GATEWAY_OK,
- CliStrings.format(CliStrings.GATEWAY_SENDER_0_IS_REBALANCED_ON_MEMBER_1, senderId,
- member.getId()));
- } else {
- accumulateStartResult(resultData, member.getId(), CliStrings.GATEWAY_ERROR,
- CliStrings.format(CliStrings.GATEWAY_SENDER_0_IS_NOT_AVAILABLE_ON_MEMBER_1,
- senderId, member.getId()));
- }
- }
- if (gatewaySenderExists) {
- result = ResultBuilder.buildResult(resultData);
- } else {
- result = ResultBuilder.createInfoResult(CliStrings.format(
- CliStrings.GATEWAY_SENDER_0_IS_NOT_FOUND_ON_ANY_MEMBER, new Object[] {senderId}));
- }
- }
- } catch (Exception e) {
- LogWrapper.getInstance().warning(CliStrings.GATEWAY_ERROR + CliUtil.stackTraceAsString(e));
- result = ResultBuilder.createGemFireErrorResult(CliStrings.GATEWAY_ERROR + e.getMessage());
- }
-
- return result;
- }
-
- @CliCommand(value = CliStrings.START_GATEWAYRECEIVER,
- help = CliStrings.START_GATEWAYRECEIVER__HELP)
- @CliMetaData(relatedTopic = CliStrings.TOPIC_GEODE_WAN)
- @ResourceOperation(resource = Resource.CLUSTER, operation = Operation.MANAGE,
- target = Target.GATEWAY)
- public Result startGatewayReceiver(@CliOption(key = {CliStrings.GROUP, CliStrings.GROUPS},
- optionContext = ConverterHint.MEMBERGROUP,
- help = CliStrings.START_GATEWAYRECEIVER__GROUP__HELP) String[] onGroup,
-
- @CliOption(key = {CliStrings.MEMBER, CliStrings.MEMBERS},
- optionContext = ConverterHint.MEMBERIDNAME,
- help = CliStrings.START_GATEWAYRECEIVER__MEMBER__HELP) String[] onMember) {
- Result result;
-
- try {
- InternalCache cache = getCache();
- SystemManagementService service =
- (SystemManagementService) ManagementService.getExistingManagementService(cache);
-
- GatewayReceiverMXBean receiverBean;
-
- TabularResultData resultData = ResultBuilder.createTabularResultData();
-
- Set<DistributedMember> 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);
-
- if (gatewayReceiverObjectName != null) {
- receiverBean =
- service.getMBeanProxy(gatewayReceiverObjectName, GatewayReceiverMXBean.class);
- if (receiverBean != null) {
- if (receiverBean.isRunning()) {
- accumulateStartResult(resultData, member.getId(), CliStrings.GATEWAY_ERROR,
- CliStrings.format(CliStrings.GATEWAY_RECEIVER_IS_ALREADY_STARTED_ON_MEMBER_0,
- new Object[] {member.getId()}));
- } else {
- receiverBean.start();
- accumulateStartResult(resultData, member.getId(), CliStrings.GATEWAY_OK,
- CliStrings.format(CliStrings.GATEWAY_RECEIVER_IS_STARTED_ON_MEMBER_0,
- new Object[] {member.getId()}));
- }
- } else {
- accumulateStartResult(resultData, member.getId(), CliStrings.GATEWAY_ERROR,
- CliStrings.format(CliStrings.GATEWAY_RECEIVER_IS_NOT_AVAILABLE_ON_MEMBER_0,
- new Object[] {member.getId()}));
- }
- } else {
- accumulateStartResult(resultData, member.getId(), CliStrings.GATEWAY_ERROR,
- CliStrings.format(CliStrings.GATEWAY_RECEIVER_IS_NOT_AVAILABLE_ON_MEMBER_0,
- new Object[] {member.getId()}));
- }
- }
- 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());
- }
- return result;
- }
-
- @CliCommand(value = CliStrings.STOP_GATEWAYRECEIVER, help = CliStrings.STOP_GATEWAYRECEIVER__HELP)
- @CliMetaData(relatedTopic = CliStrings.TOPIC_GEODE_WAN)
- @ResourceOperation(resource = Resource.CLUSTER, operation = Operation.MANAGE,
- target = Target.GATEWAY)
- public Result stopGatewayReceiver(
-
- @CliOption(key = {CliStrings.GROUP, CliStrings.GROUPS},
- optionContext = ConverterHint.MEMBERGROUP,
- help = CliStrings.STOP_GATEWAYRECEIVER__GROUP__HELP) String[] onGroup,
-
- @CliOption(key = {CliStrings.MEMBER, CliStrings.MEMBERS},
- optionContext = ConverterHint.MEMBERIDNAME,
- help = CliStrings.STOP_GATEWAYRECEIVER__MEMBER__HELP) String[] onMember) {
-
- Result result;
-
- try {
- InternalCache cache = getCache();
- SystemManagementService service =
- (SystemManagementService) ManagementService.getExistingManagementService(cache);
-
- GatewayReceiverMXBean receiverBean;
-
- TabularResultData resultData = ResultBuilder.createTabularResultData();
-
- Set<DistributedMember> 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);
-
- if (gatewayReceiverObjectName != null) {
- receiverBean =
- service.getMBeanProxy(gatewayReceiverObjectName, GatewayReceiverMXBean.class);
- if (receiverBean != null) {
- if (receiverBean.isRunning()) {
- receiverBean.stop();
- accumulateStartResult(resultData, member.getId(), CliStrings.GATEWAY_OK,
- CliStrings.format(CliStrings.GATEWAY_RECEIVER_IS_STOPPED_ON_MEMBER_0,
- new Object[] {member.getId()}));
- } else {
- accumulateStartResult(resultData, member.getId(), CliStrings.GATEWAY_ERROR,
- CliStrings.format(CliStrings.GATEWAY_RECEIVER_IS_NOT_RUNNING_ON_MEMBER_0,
- new Object[] {member.getId()}));
- }
- } else {
- accumulateStartResult(resultData, member.getId(), CliStrings.GATEWAY_ERROR,
- CliStrings.format(CliStrings.GATEWAY_RECEIVER_IS_NOT_AVAILABLE_ON_MEMBER_0,
- new Object[] {member.getId()}));
- }
- } else {
- accumulateStartResult(resultData, member.getId(), CliStrings.GATEWAY_ERROR,
- CliStrings.format(CliStrings.GATEWAY_RECEIVER_IS_NOT_AVAILABLE_ON_MEMBER_0,
- new Object[] {member.getId()}));
- }
- }
- 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());
- }
- return result;
- }
-
- @CliCommand(value = CliStrings.LIST_GATEWAY, help = CliStrings.LIST_GATEWAY__HELP)
- @CliMetaData(relatedTopic = CliStrings.TOPIC_GEODE_WAN)
- @ResourceOperation(resource = Resource.CLUSTER, operation = Operation.READ)
- public Result listGateway(
- @CliOption(key = {CliStrings.MEMBER, CliStrings.MEMBERS},
- optionContext = ConverterHint.MEMBERIDNAME,
- help = CliStrings.LIST_GATEWAY__MEMBER__HELP) String[] onMember,
- @CliOption(key = {CliStrings.GROUP, CliStrings.GROUPS},
- optionContext = ConverterHint.MEMBERGROUP,
- help = CliStrings.LIST_GATEWAY__GROUP__HELP) String[] onGroup) {
-
- Result result;
- InternalCache cache = getCache();
- try {
- SystemManagementService service =
- (SystemManagementService) ManagementService.getExistingManagementService(cache);
-
- Set<DistributedMember> dsMembers = CliUtil.findMembers(onGroup, onMember);
-
- if (dsMembers.isEmpty()) {
- return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE);
- }
-
- Map<String, Map<String, GatewaySenderMXBean>> gatewaySenderBeans = new TreeMap<>();
- Map<String, GatewayReceiverMXBean> gatewayReceiverBeans = new TreeMap<>();
-
- DistributedSystemMXBean dsMXBean = service.getDistributedSystemMXBean();
- for (DistributedMember member : dsMembers) {
- String memberName = member.getName();
- String memberNameOrId =
- (memberName != null && !memberName.isEmpty()) ? memberName : member.getId();
- ObjectName gatewaySenderObjectNames[] =
- dsMXBean.listGatewaySenderObjectNames(memberNameOrId);
- // gateway senders : a member can have multiple gateway sendersdefined
- // on it
- if (gatewaySenderObjectNames != null) {
- for (ObjectName name : gatewaySenderObjectNames) {
- GatewaySenderMXBean senderBean = service.getMBeanProxy(name, GatewaySenderMXBean.class);
- if (senderBean != null) {
- if (gatewaySenderBeans.containsKey(senderBean.getSenderId())) {
- Map<String, GatewaySenderMXBean> memberToBeanMap =
- gatewaySenderBeans.get(senderBean.getSenderId());
- memberToBeanMap.put(member.getId(), senderBean);
- } else {
- Map<String, GatewaySenderMXBean> memberToBeanMap = new TreeMap<>();
- memberToBeanMap.put(member.getId(), senderBean);
- gatewaySenderBeans.put(senderBean.getSenderId(), memberToBeanMap);
- }
- }
- }
- }
- // gateway receivers : a member can have only one gateway receiver
- ObjectName gatewayReceiverObjectName = MBeanJMXAdapter.getGatewayReceiverMBeanName(member);
- if (gatewayReceiverObjectName != null) {
- GatewayReceiverMXBean receiverBean;
- receiverBean =
- service.getMBeanProxy(gatewayReceiverObjectName, GatewayReceiverMXBean.class);
- if (receiverBean != null) {
- gatewayReceiverBeans.put(member.getId(), receiverBean);
- }
- }
- }
- if (gatewaySenderBeans.isEmpty() && gatewayReceiverBeans.isEmpty()) {
- return ResultBuilder
- .createUserErrorResult(CliStrings.GATEWAYS_ARE_NOT_AVAILABLE_IN_CLUSTER);
- }
- CompositeResultData crd = ResultBuilder.createCompositeResultData();
- crd.setHeader(CliStrings.HEADER_GATEWAYS);
- accumulateListGatewayResult(crd, gatewaySenderBeans, gatewayReceiverBeans);
- result = ResultBuilder.buildResult(crd);
- } catch (Exception e) {
- LogWrapper.getInstance().warning(CliStrings.GATEWAY_ERROR + CliUtil.stackTraceAsString(e));
- result = ResultBuilder.createGemFireErrorResult(CliStrings.GATEWAY_ERROR + e.getMessage());
- }
- return result;
- }
-
- @CliCommand(value = CliStrings.STATUS_GATEWAYSENDER, help = CliStrings.STATUS_GATEWAYSENDER__HELP)
- @CliMetaData(relatedTopic = CliStrings.TOPIC_GEODE_WAN)
- @ResourceOperation(resource = Resource.CLUSTER, operation = Operation.READ)
- public Result statusGatewaySender(@CliOption(key = CliStrings.STATUS_GATEWAYSENDER__ID,
- mandatory = true, optionContext = ConverterHint.GATEWAY_SENDER_ID,
- help = CliStrings.STATUS_GATEWAYSENDER__ID__HELP) String senderId,
-
- @CliOption(key = {CliStrings.GROUP, CliStrings.GROUPS},
- optionContext = ConverterHint.MEMBERGROUP,
- help = CliStrings.STATUS_GATEWAYSENDER__GROUP__HELP) String[] onGroup,
-
- @CliOption(key = {CliStrings.MEMBER, CliStrings.MEMBERS},
- optionContext = ConverterHint.MEMBERIDNAME,
- help = CliStrings.STATUS_GATEWAYSENDER__MEMBER__HELP) String[] onMember) {
-
- Result result;
- if (senderId != null)
- senderId = senderId.trim();
- try {
- InternalCache cache = getCache();
- SystemManagementService service =
- (SystemManagementService) ManagementService.getExistingManagementService(cache);
-
- GatewaySenderMXBean bean;
-
- CompositeResultData crd = ResultBuilder.createCompositeResultData();
- TabularResultData availableSenderData =
- crd.addSection(CliStrings.SECTION_GATEWAY_SENDER_AVAILABLE)
- .addTable(CliStrings.TABLE_GATEWAY_SENDER);
-
- TabularResultData notAvailableSenderData =
- crd.addSection(CliStrings.SECTION_GATEWAY_SENDER_NOT_AVAILABLE)
- .addTable(CliStrings.TABLE_GATEWAY_SENDER);
-
- Set<DistributedMember> 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);
- } else {
- ObjectName objectName = service.getGatewaySenderMBeanName(member, senderId);
- bean = service.getMBeanProxy(objectName, GatewaySenderMXBean.class);
- }
- if (bean != null) {
- buildSenderStatus(member.getId(), bean, availableSenderData);
- } else {
- buildSenderStatus(member.getId(), bean, notAvailableSenderData);
- }
- }
- result = ResultBuilder.buildResult(crd);
- } catch (Exception e) {
- LogWrapper.getInstance().warning(CliStrings.GATEWAY_ERROR + CliUtil.stackTraceAsString(e));
- result = ResultBuilder.createGemFireErrorResult(CliStrings.GATEWAY_ERROR + e.getMessage());
- }
- return result;
- }
-
- @CliCommand(value = CliStrings.STATUS_GATEWAYRECEIVER,
- help = CliStrings.STATUS_GATEWAYRECEIVER__HELP)
- @CliMetaData(relatedTopic = CliStrings.TOPIC_GEODE_WAN)
- @ResourceOperation(resource = Resource.CLUSTER, operation = Operation.READ)
- public Result statusGatewayReceiver(@CliOption(key = {CliStrings.GROUP, CliStrings.GROUPS},
- optionContext = ConverterHint.MEMBERGROUP,
- help = CliStrings.STATUS_GATEWAYRECEIVER__GROUP__HELP) String[] onGroup,
-
- @CliOption(key = {CliStrings.MEMBER, CliStrings.MEMBERS},
- optionContext = ConverterHint.MEMBERIDNAME,
- help = CliStrings.STATUS_GATEWAYRECEIVER__MEMBER__HELP) String[] onMember) {
-
- Result result;
-
- try {
- InternalCache cache = getCache();
- SystemManagementService service =
- (SystemManagementService) ManagementService.getExistingManagementService(cache);
-
- CompositeResultData crd = ResultBuilder.createCompositeResultData();
- TabularResultData availableReceiverData =
- crd.addSection(CliStrings.SECTION_GATEWAY_RECEIVER_AVAILABLE)
- .addTable(CliStrings.TABLE_GATEWAY_RECEIVER);
-
- TabularResultData notAvailableReceiverData =
- crd.addSection(CliStrings.SECTION_GATEWAY_RECEIVER_NOT_AVAILABLE)
- .addTable(CliStrings.TABLE_GATEWAY_RECEIVER);
-
- Set<DistributedMember> 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);
- if (gatewayReceiverObjectName != null) {
- GatewayReceiverMXBean receiverBean =
- service.getMBeanProxy(gatewayReceiverObjectName, GatewayReceiverMXBean.class);
- if (receiverBean != null) {
- buildReceiverStatus(member.getId(), receiverBean, availableReceiverData);
- continue;
- }
- }
- buildReceiverStatus(member.getId(), null, notAvailableReceiverData);
- }
- result = ResultBuilder.buildResult(crd);
- } catch (Exception e) {
- LogWrapper.getInstance().warning(CliStrings.GATEWAY_ERROR + CliUtil.stackTraceAsString(e));
- result = ResultBuilder.createGemFireErrorResult(CliStrings.GATEWAY_ERROR + e.getMessage());
- }
- return result;
- }
-
- @CliCommand(value = CliStrings.DESTROY_GATEWAYSENDER,
- help = CliStrings.DESTROY_GATEWAYSENDER__HELP)
- @CliMetaData(relatedTopic = CliStrings.TOPIC_GEODE_WAN)
- @ResourceOperation(resource = Resource.CLUSTER, operation = Operation.MANAGE,
- target = Target.GATEWAY)
- public Result destroyGatewaySender(
- @CliOption(key = {CliStrings.GROUP, CliStrings.GROUPS},
- optionContext = ConverterHint.MEMBERGROUP,
- help = CliStrings.DESTROY_GATEWAYSENDER__GROUP__HELP) String[] onGroups,
- @CliOption(key = {CliStrings.MEMBER, CliStrings.MEMBERS},
- optionContext = ConverterHint.MEMBERIDNAME,
- 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) {
- Result result;
- try {
- GatewaySenderDestroyFunctionArgs gatewaySenderDestroyFunctionArgs =
- new GatewaySenderDestroyFunctionArgs(id);
-
- Set<DistributedMember> membersToDestroyGatewaySenderOn =
- CliUtil.findMembers(onGroups, onMember);
-
- if (membersToDestroyGatewaySenderOn.isEmpty()) {
- return ResultBuilder.createUserErrorResult(CliStrings.NO_MEMBERS_FOUND_MESSAGE);
- }
-
- ResultCollector<?, ?> resultCollector =
- CliUtil.executeFunction(GatewaySenderDestroyFunction.INSTANCE,
- gatewaySenderDestroyFunctionArgs, membersToDestroyGatewaySenderOn);
- @SuppressWarnings("unchecked")
- List<CliFunctionResult> gatewaySenderDestroyResults =
- (List<CliFunctionResult>) resultCollector.getResult();
-
- TabularResultData tabularResultData = ResultBuilder.createTabularResultData();
- final String errorPrefix = "ERROR: ";
- for (CliFunctionResult gatewaySenderDestroyResult : gatewaySenderDestroyResults) {
- boolean success = gatewaySenderDestroyResult.isSuccessful();
- tabularResultData.accumulate("Member", gatewaySenderDestroyResult.getMemberIdOrName());
- tabularResultData.accumulate("Status",
- (success ? "" : errorPrefix) + gatewaySenderDestroyResult.getMessage());
- }
- result = ResultBuilder.buildResult(tabularResultData);
- } catch (IllegalArgumentException e) {
- LogWrapper.getInstance().info(e.getMessage());
- result = ResultBuilder.createUserErrorResult(e.getMessage());
- }
- return result;
- }
-
- private TabularResultData buildReceiverStatus(String memberId, GatewayReceiverMXBean bean,
- TabularResultData resultData) {
- resultData.accumulate(CliStrings.RESULT_HOST_MEMBER, memberId);
- if (bean != null) {
- resultData.accumulate(CliStrings.RESULT_PORT, bean.getPort());
- resultData.accumulate(CliStrings.RESULT_STATUS,
- bean.isRunning() ? CliStrings.GATEWAY_RUNNING : CliStrings.GATEWAY_NOT_RUNNING);
- } else {
- resultData.accumulate(CliStrings.GATEWAY_ERROR,
- CliStrings.GATEWAY_RECEIVER_IS_NOT_AVAILABLE_OR_STOPPED);
- }
- return resultData;
- }
-
- private TabularResultData buildSenderStatus(String memberId, GatewaySenderMXBean bean,
- TabularResultData resultData) {
- resultData.accumulate(CliStrings.RESULT_HOST_MEMBER, memberId);
- if (bean != null) {
- resultData.accumulate(CliStrings.RESULT_TYPE,
- bean.isParallel() ? CliStrings.SENDER_PARALLEL : CliStrings.SENDER_SERIAL);
- if (!bean.isParallel()) {
- resultData.accumulate(CliStrings.RESULT_POLICY,
- bean.isPrimary() ? CliStrings.SENDER_PRIMARY : CliStrings.SENDER_SECONADRY);
- }
- if (bean.isRunning()) {
- if (bean.isPaused()) {
- resultData.accumulate(CliStrings.RESULT_STATUS, CliStrings.SENDER_PAUSED);
- } else {
- resultData.accumulate(CliStrings.RESULT_STATUS, CliStrings.GATEWAY_RUNNING);
- }
- } else {
- resultData.accumulate(CliStrings.RESULT_STATUS, CliStrings.GATEWAY_NOT_RUNNING);
- }
- } else {
- resultData.accumulate(CliStrings.GATEWAY_ERROR, CliStrings.GATEWAY_SENDER_IS_NOT_AVAILABLE);
- }
-
- return resultData;
- }
-
- private void accumulateListGatewayResult(CompositeResultData crd,
- Map<String, Map<String, GatewaySenderMXBean>> gatewaySenderBeans,
- Map<String, GatewayReceiverMXBean> gatewayReceiverBeans) {
-
- if (!gatewaySenderBeans.isEmpty()) {
- TabularResultData gatewaySenderData = crd.addSection(CliStrings.SECTION_GATEWAY_SENDER)
- .addTable(CliStrings.TABLE_GATEWAY_SENDER).setHeader(CliStrings.HEADER_GATEWAY_SENDER);
- for (Map.Entry<String, Map<String, GatewaySenderMXBean>> entry : gatewaySenderBeans
- .entrySet()) {
- for (Map.Entry<String, GatewaySenderMXBean> memberToBean : entry.getValue().entrySet()) {
- gatewaySenderData.accumulate(CliStrings.RESULT_GATEWAY_SENDER_ID, entry.getKey());
- gatewaySenderData.accumulate(CliStrings.RESULT_HOST_MEMBER, memberToBean.getKey());
- gatewaySenderData.accumulate(CliStrings.RESULT_REMOTE_CLUSTER,
- memberToBean.getValue().getRemoteDSId());
- gatewaySenderData.accumulate(CliStrings.RESULT_TYPE, memberToBean.getValue().isParallel()
- ? CliStrings.SENDER_PARALLEL : CliStrings.SENDER_SERIAL);
- gatewaySenderData.accumulate(CliStrings.RESULT_STATUS, memberToBean.getValue().isRunning()
- ? CliStrings.GATEWAY_RUNNING : CliStrings.GATEWAY_NOT_RUNNING);
- gatewaySenderData.accumulate(CliStrings.RESULT_QUEUED_EVENTS,
- memberToBean.getValue().getEventQueueSize());
- gatewaySenderData.accumulate(CliStrings.RESULT_RECEIVER,
- memberToBean.getValue().getGatewayReceiver());
- }
- }
- }
-
- if (!gatewayReceiverBeans.isEmpty()) {
- TabularResultData gatewayReceiverData = crd.addSection(CliStrings.SECTION_GATEWAY_RECEIVER)
- .addTable(CliStrings.TABLE_GATEWAY_RECEIVER)
- .setHeader(CliStrings.HEADER_GATEWAY_RECEIVER);
- for (Map.Entry<String, GatewayReceiverMXBean> entry : gatewayReceiverBeans.entrySet()) {
- gatewayReceiverData.accumulate(CliStrings.RESULT_HOST_MEMBER, entry.getKey());
- gatewayReceiverData.accumulate(CliStrings.RESULT_PORT, entry.getValue().getPort());
- gatewayReceiverData.accumulate(CliStrings.RESULT_SENDERS_COUNT,
- entry.getValue().getClientConnectionCount());
- gatewayReceiverData.accumulate(CliStrings.RESULT_SENDER_CONNECTED,
- entry.getValue().getConnectedGatewaySenders());
- }
- }
- }
-
- private void accumulateStartResult(TabularResultData resultData, String member, String Status,
- String message) {
- if (member != null) {
- resultData.accumulate("Member", member);
- }
- resultData.accumulate("Result", Status);
- resultData.accumulate("Message", message);
- }
-
-
- private Result handleCommandResultException(CommandResultException crex) {
- Result result;
- if (crex.getResult() != null) {
- result = crex.getResult();
- } else {
- LogWrapper.getInstance().warning(CliStrings.GATEWAY_ERROR + CliUtil.stackTraceAsString(crex));
- result = ResultBuilder.createGemFireErrorResult(CliStrings.GATEWAY_ERROR + crex.getMessage());
- }
- return result;
- }
-}
http://git-wip-us.apache.org/repos/asf/geode/blob/e1befef4/geode-core/src/main/java/org/apache/geode/management/internal/web/controllers/WanCommandsController.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/web/controllers/WanCommandsController.java b/geode-core/src/main/java/org/apache/geode/management/internal/web/controllers/WanCommandsController.java
index 6a01c3e..36b4d2e 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/web/controllers/WanCommandsController.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/web/controllers/WanCommandsController.java
@@ -15,9 +15,6 @@
package org.apache.geode.management.internal.web.controllers;
-import org.apache.geode.internal.lang.StringUtils;
-import org.apache.geode.management.internal.cli.i18n.CliStrings;
-import org.apache.geode.management.internal.cli.util.CommandStringBuilder;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -25,11 +22,28 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
+import org.apache.geode.internal.lang.StringUtils;
+import org.apache.geode.management.internal.cli.i18n.CliStrings;
+import org.apache.geode.management.internal.cli.util.CommandStringBuilder;
+
/**
* The WanCommandsController class implements the GemFire Management REST API web service endpoints
* for the Gfsh WAN Commands.
- *
- * @see org.apache.geode.management.internal.cli.commands.WanCommands
+ *
+ * @see org.apache.geode.management.internal.cli.commands.CreateGatewayReceiverCommand
+ * @see org.apache.geode.management.internal.cli.commands.CreateGatewaySenderCommand
+ * @see org.apache.geode.management.internal.cli.commands.DestroyGatewaySenderCommand
+ * @see org.apache.geode.management.internal.cli.commands.GatewayCommandsUtils
+ * @see org.apache.geode.management.internal.cli.commands.ListGatewayCommand
+ * @see org.apache.geode.management.internal.cli.commands.LoadBalanceGatewaySenderCommand
+ * @see org.apache.geode.management.internal.cli.commands.PauseGatewaySenderCommand
+ * @see org.apache.geode.management.internal.cli.commands.ResumeGatewaySenderCommand
+ * @see org.apache.geode.management.internal.cli.commands.StartGatewayReceiverCommand
+ * @see org.apache.geode.management.internal.cli.commands.StartGatewaySenderCommand
+ * @see org.apache.geode.management.internal.cli.commands.StatusGatewayReceiverCommand
+ * @see org.apache.geode.management.internal.cli.commands.StatusGatewaySenderCommand
+ * @see org.apache.geode.management.internal.cli.commands.StopGatewayReceiverCommand
+ * @see org.apache.geode.management.internal.cli.commands.StopGatewaySenderCommand
* @see org.apache.geode.management.internal.web.controllers.AbstractCommandsController
* @see org.springframework.stereotype.Controller
* @see org.springframework.web.bind.annotation.RequestMapping