This is an automated email from the ASF dual-hosted git repository.
prhomberg pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/develop by this push:
new b2a4da2 GEODE-5185: Correct backwards-compatibility violation in
'create gateway-receiver'. (#1920)
b2a4da2 is described below
commit b2a4da289d52a5298a95b038741c1d2d1e9b3594
Author: Patrick Rhomberg <[email protected]>
AuthorDate: Tue May 15 09:44:39 2018 -0700
GEODE-5185: Correct backwards-compatibility violation in 'create
gateway-receiver'. (#1920)
* This commit also refactors the 'create gateway-receiver' command and
function in accordance with GEODE-4858 and GEODE-5011, concerning persistence
service and ResultModel respectively.
---
.../cli/commands/CreateGatewayReceiverCommand.java | 90 +++++++++++++---------
.../functions/GatewayReceiverCreateFunction.java | 22 +-----
.../cli/functions/GatewayReceiverFunctionArgs.java | 30 +++++---
.../commands/CreateGatewayReceiverCommandTest.java | 67 +++++++++++-----
.../GatewayReceiverCreateFunctionTest.java | 1 -
.../CreateGatewayReceiverCommandDUnitTest.java | 4 +-
6 files changed, 124 insertions(+), 90 deletions(-)
diff --git
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateGatewayReceiverCommand.java
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateGatewayReceiverCommand.java
index 86d7b60..77c884c 100644
---
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateGatewayReceiverCommand.java
+++
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/commands/CreateGatewayReceiverCommand.java
@@ -15,32 +15,32 @@
package org.apache.geode.management.internal.cli.commands;
+import java.util.Arrays;
import java.util.List;
import java.util.Set;
+import java.util.stream.Collectors;
import org.springframework.shell.core.annotation.CliCommand;
import org.springframework.shell.core.annotation.CliOption;
+import org.apache.geode.cache.configuration.CacheConfig;
+import org.apache.geode.cache.configuration.DeclarableType;
import org.apache.geode.cache.wan.GatewayReceiver;
import org.apache.geode.distributed.DistributedMember;
-import
org.apache.geode.distributed.internal.InternalConfigurationPersistenceService;
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.cli.Result.Status;
+import org.apache.geode.management.cli.SingleGfshCommand;
import org.apache.geode.management.internal.cli.AbstractCliAroundInterceptor;
import org.apache.geode.management.internal.cli.GfshParseResult;
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.i18n.CliStrings;
-import org.apache.geode.management.internal.cli.result.CommandResult;
-import org.apache.geode.management.internal.cli.result.ResultBuilder;
-import org.apache.geode.management.internal.configuration.domain.XmlEntity;
+import org.apache.geode.management.internal.cli.result.model.ResultModel;
import org.apache.geode.management.internal.security.ResourceOperation;
import org.apache.geode.security.ResourcePermission;
-public class CreateGatewayReceiverCommand extends InternalGfshCommand {
+public class CreateGatewayReceiverCommand extends SingleGfshCommand {
@CliCommand(value = CliStrings.CREATE_GATEWAYRECEIVER,
help = CliStrings.CREATE_GATEWAYRECEIVER__HELP)
@@ -48,7 +48,7 @@ public class CreateGatewayReceiverCommand extends
InternalGfshCommand {
interceptor =
"org.apache.geode.management.internal.cli.commands.CreateGatewayReceiverCommand$Interceptor")
@ResourceOperation(resource = ResourcePermission.Resource.CLUSTER,
operation = ResourcePermission.Operation.MANAGE, target =
ResourcePermission.Target.GATEWAY)
- public Result createGatewayReceiver(@CliOption(key = {CliStrings.GROUP,
CliStrings.GROUPS},
+ public ResultModel createGatewayReceiver(@CliOption(key = {CliStrings.GROUP,
CliStrings.GROUPS},
optionContext = ConverterHint.MEMBERGROUP,
help = CliStrings.CREATE_GATEWAYRECEIVER__GROUP__HELP) String[] onGroups,
@@ -80,12 +80,15 @@ public class CreateGatewayReceiverCommand extends
InternalGfshCommand {
@CliOption(key = CliStrings.CREATE_GATEWAYRECEIVER__HOSTNAMEFORSENDERS,
help = CliStrings.CREATE_GATEWAYRECEIVER__HOSTNAMEFORSENDERS__HELP)
String hostnameForSenders,
- @CliOption(key = {CliStrings.IFNOTEXISTS}, help =
CliStrings.PUT__PUTIFNOTEXISTS__HELP,
+ @CliOption(key = CliStrings.IFNOTEXISTS, help =
CliStrings.IFNOTEXISTS_HELP,
specifiedDefaultValue = "true", unspecifiedDefaultValue = "false")
Boolean ifNotExists) {
- GatewayReceiverFunctionArgs gatewayReceiverFunctionArgs = new
GatewayReceiverFunctionArgs(
- manualStart, startPort, endPort, bindAddress, socketBufferSize,
maximumTimeBetweenPings,
- gatewayTransportFilters, hostnameForSenders, ifNotExists);
+ CacheConfig.GatewayReceiver configuration =
+ buildConfiguration(manualStart, startPort, endPort, bindAddress,
maximumTimeBetweenPings,
+ socketBufferSize, gatewayTransportFilters, hostnameForSenders);
+
+ GatewayReceiverFunctionArgs gatewayReceiverFunctionArgs =
+ new GatewayReceiverFunctionArgs(configuration, ifNotExists);
Set<DistributedMember> membersToCreateGatewayReceiverOn =
getMembers(onGroups, onMember);
@@ -93,36 +96,51 @@ public class CreateGatewayReceiverCommand extends
InternalGfshCommand {
executeAndGetFunctionResult(GatewayReceiverCreateFunction.INSTANCE,
gatewayReceiverFunctionArgs, membersToCreateGatewayReceiverOn);
- CommandResult result =
ResultBuilder.buildResult(gatewayReceiverCreateResults);
+ ResultModel result =
ResultModel.createMemberStatusResult(gatewayReceiverCreateResults);
+ result.setConfigObject(configuration);
+ return result;
+ }
- XmlEntity xmlEntity = findXmlEntity(gatewayReceiverCreateResults);
- // no xml needs to be updated, simply return
- if (xmlEntity == null) {
- return result;
- }
+ @Override
+ public void updateClusterConfig(String group, CacheConfig config, Object
configObject) {
+ config.setGatewayReceiver((CacheConfig.GatewayReceiver) configObject);
+ }
- boolean allSuccessful = gatewayReceiverCreateResults.stream()
- .map(CliFunctionResult::isSuccessful).reduce(true, (x, y) -> x && y);
- if (!allSuccessful) {
- result.setStatus(Status.ERROR);
- return result;
+ private CacheConfig.GatewayReceiver buildConfiguration(Boolean manualStart,
Integer startPort,
+ Integer endPort, String bindAddress, Integer maximumTimeBetweenPings,
+ Integer socketBufferSize, String[] gatewayTransportFilters, String
hostnameForSenders) {
+ CacheConfig.GatewayReceiver configuration = new
CacheConfig.GatewayReceiver();
+
+ if (gatewayTransportFilters != null) {
+ List<DeclarableType> filters =
+ Arrays.stream(gatewayTransportFilters).map(fullyQualifiedClassName
-> {
+ DeclarableType thisFilter = new DeclarableType();
+ thisFilter.setClassName(fullyQualifiedClassName);
+ return thisFilter;
+ }).collect(Collectors.toList());
+ configuration.getGatewayTransportFilter().addAll(filters);
}
-
- // has xml but unable to persist to cluster config, need to print warning
message and return
- if (onMember != null || getConfigurationPersistenceService() == null) {
- result.setCommandPersisted(false);
- return result;
+ if (startPort != null) {
+ configuration.setStartPort(String.valueOf(startPort));
}
-
- // update cluster config
- ((InternalConfigurationPersistenceService)
getConfigurationPersistenceService())
- .addXmlEntity(xmlEntity, onGroups);
- return result;
+ if (endPort != null) {
+ configuration.setEndPort(String.valueOf(endPort));
+ }
+ configuration.setBindAddress(bindAddress);
+ if (maximumTimeBetweenPings != null) {
+
configuration.setMaximumTimeBetweenPings(String.valueOf(maximumTimeBetweenPings));
+ }
+ if (socketBufferSize != null) {
+ configuration.setSocketBufferSize(String.valueOf(socketBufferSize));
+ }
+ configuration.setHostnameForSenders(hostnameForSenders);
+ configuration.setManualStart(manualStart);
+ return configuration;
}
public static class Interceptor extends AbstractCliAroundInterceptor {
@Override
- public Result preExecution(GfshParseResult parseResult) {
+ public ResultModel preExecution(GfshParseResult parseResult) {
Integer startPort = (Integer) parseResult.getParamValue("start-port");
Integer endPort = (Integer) parseResult.getParamValue("end-port");
@@ -135,10 +153,10 @@ public class CreateGatewayReceiverCommand extends
InternalGfshCommand {
}
if (startPort > endPort) {
- return ResultBuilder.createUserErrorResult("start-port must be smaller
than end-port.");
+ return ResultModel.createError("start-port must be smaller than
end-port.");
}
- return ResultBuilder.createInfoResult("");
+ return ResultModel.createInfo("");
}
}
}
diff --git
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverCreateFunction.java
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverCreateFunction.java
index 286b5a5..0a0a2e9 100644
---
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverCreateFunction.java
+++
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverCreateFunction.java
@@ -14,8 +14,6 @@
*/
package org.apache.geode.management.internal.cli.functions;
-import java.util.HashMap;
-import java.util.Map;
import joptsimple.internal.Strings;
import org.apache.logging.log4j.Logger;
@@ -28,10 +26,8 @@ import org.apache.geode.cache.wan.GatewayReceiverFactory;
import org.apache.geode.cache.wan.GatewayTransportFilter;
import org.apache.geode.internal.ClassPathLoader;
import org.apache.geode.internal.cache.execute.InternalFunction;
-import org.apache.geode.internal.cache.xmlcache.CacheXml;
import org.apache.geode.internal.logging.LogService;
import org.apache.geode.management.internal.cli.i18n.CliStrings;
-import org.apache.geode.management.internal.configuration.domain.XmlEntity;
/**
* The function to a create GatewayReceiver using given configuration
parameters.
@@ -80,8 +76,7 @@ public class GatewayReceiverCreateFunction implements
InternalFunction {
GatewayReceiver createdGatewayReceiver =
createGatewayReceiver(cache, gatewayReceiverCreateArgs);
- XmlEntity xmlEntity = getXmlEntity(gatewayReceiverCreateArgs);
- resultSender.lastResult(new CliFunctionResult(memberNameOrId, xmlEntity,
+ resultSender.lastResult(new CliFunctionResult(memberNameOrId, true,
CliStrings.format(
CliStrings.CREATE_GATEWAYRECEIVER__MSG__GATEWAYRECEIVER_CREATED_ON_0_ONPORT_1,
memberNameOrId,
Integer.toString(createdGatewayReceiver.getPort()))));
@@ -95,21 +90,6 @@ public class GatewayReceiverCreateFunction implements
InternalFunction {
}
- XmlEntity getXmlEntity(GatewayReceiverFunctionArgs
gatewayReceiverCreateArgs) {
- Map<String, String> attributes = new HashMap<>();
- if (gatewayReceiverCreateArgs.getStartPort() != null) {
- attributes.put("start-port",
gatewayReceiverCreateArgs.getStartPort().toString());
- }
- if (gatewayReceiverCreateArgs.getEndPort() != null) {
- attributes.put("end-port",
gatewayReceiverCreateArgs.getEndPort().toString());
- }
- if (gatewayReceiverCreateArgs.getBindAddress() != null) {
- attributes.put("bind-address",
gatewayReceiverCreateArgs.getBindAddress());
- }
- return
XmlEntity.builder().withType(CacheXml.GATEWAY_RECEIVER).withAttributes(attributes)
- .build();
- }
-
/** GatewayReceiver creation happens here. */
GatewayReceiver createGatewayReceiver(Cache cache,
GatewayReceiverFunctionArgs gatewayReceiverCreateArgs)
diff --git
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverFunctionArgs.java
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverFunctionArgs.java
index e3e6bf7..67bdd94 100644
---
a/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverFunctionArgs.java
+++
b/geode-core/src/main/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverFunctionArgs.java
@@ -16,6 +16,9 @@ package org.apache.geode.management.internal.cli.functions;
import java.io.Serializable;
+import org.apache.geode.cache.configuration.CacheConfig.GatewayReceiver;
+import org.apache.geode.cache.configuration.DeclarableType;
+
/**
* This class stores the arguments provided in the create gateway-receiver
command.
*/
@@ -40,17 +43,22 @@ public class GatewayReceiverFunctionArgs implements
Serializable {
private final Boolean ifNotExists;
- public GatewayReceiverFunctionArgs(Boolean manualStart, Integer startPort,
Integer endPort,
- String bindAddress, Integer socketBufferSize, Integer
maximumTimeBetweenPings,
- String[] gatewayTransportFilters, String hostnameForSenders, Boolean
ifNotExists) {
- this.manualStart = manualStart;
- this.startPort = startPort;
- this.endPort = endPort;
- this.bindAddress = bindAddress;
- this.socketBufferSize = socketBufferSize;
- this.maximumTimeBetweenPings = maximumTimeBetweenPings;
- this.gatewayTransportFilters = gatewayTransportFilters;
- this.hostnameForSenders = hostnameForSenders;
+ public GatewayReceiverFunctionArgs(GatewayReceiver configuration, Boolean
ifNotExists) {
+ this.manualStart = configuration.isManualStart();
+ this.startPort =
+ configuration.getStartPort() != null ?
Integer.valueOf(configuration.getStartPort()) : null;
+ this.endPort =
+ configuration.getEndPort() != null ?
Integer.valueOf(configuration.getEndPort()) : null;
+ this.bindAddress = configuration.getBindAddress();
+ this.socketBufferSize = configuration.getSocketBufferSize() != null
+ ? Integer.valueOf(configuration.getSocketBufferSize()) : null;
+ this.maximumTimeBetweenPings = configuration.getMaximumTimeBetweenPings()
!= null
+ ? Integer.valueOf(configuration.getMaximumTimeBetweenPings()) : null;
+ this.gatewayTransportFilters = configuration.getGatewayTransportFilter()
!= null
+ ?
configuration.getGatewayTransportFilter().stream().map(DeclarableType::getClassName)
+ .toArray(String[]::new)
+ : null;
+ this.hostnameForSenders = configuration.getHostnameForSenders();
this.ifNotExists = ifNotExists;
}
diff --git
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CreateGatewayReceiverCommandTest.java
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CreateGatewayReceiverCommandTest.java
index 48a109c..d923ece 100644
---
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CreateGatewayReceiverCommandTest.java
+++
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/CreateGatewayReceiverCommandTest.java
@@ -21,6 +21,7 @@ import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import java.util.ArrayList;
@@ -36,7 +37,7 @@ import
org.apache.geode.distributed.internal.InternalConfigurationPersistenceSer
import org.apache.geode.internal.cache.InternalCache;
import org.apache.geode.management.internal.cli.GfshParseResult;
import org.apache.geode.management.internal.cli.functions.CliFunctionResult;
-import org.apache.geode.management.internal.configuration.domain.XmlEntity;
+import org.apache.geode.management.internal.cli.i18n.CliStrings;
import org.apache.geode.test.junit.categories.UnitTest;
import org.apache.geode.test.junit.rules.GfshParserRule;
@@ -46,19 +47,21 @@ public class CreateGatewayReceiverCommandTest {
@ClassRule
public static GfshParserRule gfsh = new GfshParserRule();
+ private final String NOT_PERSISTED_ON_MEMBER =
+ "Configuration change is not persisted because the command is executed
on specific member";
+ private final String NOT_PERSISTED_CC_NOT_RUNNING =
+ "Cluster configuration service is not running. Configuration change is
not persisted";
private CreateGatewayReceiverCommand command;
private InternalCache cache;
private List<CliFunctionResult> functionResults;
private InternalConfigurationPersistenceService ccService;
private CliFunctionResult result1;
- private XmlEntity xmlEntity;
@Before
public void before() {
command = spy(CreateGatewayReceiverCommand.class);
ccService = mock(InternalConfigurationPersistenceService.class);
- xmlEntity = mock(XmlEntity.class);
cache = mock(InternalCache.class);
doReturn(cache).when(command).getCache();
doReturn(ccService).when(command).getConfigurationPersistenceService();
@@ -71,14 +74,26 @@ public class CreateGatewayReceiverCommandTest {
public void testDefaultValues() {
GfshParseResult parseResult = gfsh.parse("create gateway-receiver");
- assertThat(parseResult.getParamValue("start-port")).isNull();
- assertThat(parseResult.getParamValue("end-port")).isNull();
- assertThat(parseResult.getParamValue("socket-buffer-size")).isNull();
+ assertThat(parseResult.getParamValue(CliStrings.MEMBER)).isNull();
+ assertThat(parseResult.getParamValue(CliStrings.GROUP)).isNull();
+
assertThat(parseResult.getParamValue(CliStrings.CREATE_GATEWAYRECEIVER__MANUALSTART)).isNull();
+
assertThat(parseResult.getParamValue(CliStrings.CREATE_GATEWAYRECEIVER__STARTPORT)).isNull();
+
assertThat(parseResult.getParamValue(CliStrings.CREATE_GATEWAYRECEIVER__ENDPORT)).isNull();
+
assertThat(parseResult.getParamValue(CliStrings.CREATE_GATEWAYRECEIVER__BINDADDRESS)).isNull();
+
assertThat(parseResult.getParamValue(CliStrings.CREATE_GATEWAYRECEIVER__MAXTIMEBETWEENPINGS))
+ .isNull();
+
assertThat(parseResult.getParamValue(CliStrings.CREATE_GATEWAYRECEIVER__SOCKETBUFFERSIZE))
+ .isNull();
+
assertThat(parseResult.getParamValue(CliStrings.CREATE_GATEWAYRECEIVER__GATEWAYTRANSPORTFILTER))
+ .isNull();
+
assertThat(parseResult.getParamValue(CliStrings.CREATE_GATEWAYRECEIVER__HOSTNAMEFORSENDERS))
+ .isNull();
+
assertThat(parseResult.getParamValue(CliStrings.IFNOTEXISTS)).isEqualTo(false);
}
@Test
- public void endMustBeLargerThanStart() {
+ public void endPortMustBeLargerThanStartPort() {
gfsh.executeAndAssertThat(command, "create gateway-receiver
--end-port=1").statusIsError()
.containsOutput("start-port must be smaller than end-port");
@@ -90,38 +105,52 @@ public class CreateGatewayReceiverCommandTest {
}
@Test
- public void whenNoCCService() {
+ public void
gatewayReceiverCanBeCreatedButIsNotPersistedWithoutConfigurationService() {
doReturn(mock(Set.class)).when(command).getMembers(any(), any());
doReturn(null).when(command).getConfigurationPersistenceService();
- result1 = new CliFunctionResult("member", xmlEntity, "result1");
+ result1 = new CliFunctionResult("member", true, "result1");
functionResults.add(result1);
gfsh.executeAndAssertThat(command, "create
gateway-receiver").statusIsSuccess()
- .hasFailToPersistError();
- verify(ccService, never()).deleteXmlEntity(any(), any());
+ .containsOutput(NOT_PERSISTED_CC_NOT_RUNNING);
+ verify(ccService, never()).addXmlEntity(any(), any());
+ verify(ccService, never()).updateCacheConfig(any(), any());
}
@Test
- public void whenCommandOnMember() {
+ public void gatewayReceiverIsCreatedButNotPersistedWithMemberOption() {
doReturn(mock(Set.class)).when(command).getMembers(any(), any());
doReturn(ccService).when(command).getConfigurationPersistenceService();
- result1 = new CliFunctionResult("member", xmlEntity, "result1");
+ result1 = new CliFunctionResult("member", true, "result1");
functionResults.add(result1);
gfsh.executeAndAssertThat(command, "create gateway-receiver
--member=xyz").statusIsSuccess()
- .hasFailToPersistError();
- verify(ccService, never()).deleteXmlEntity(any(), any());
+ .containsOutput(NOT_PERSISTED_ON_MEMBER);
+ verify(ccService, never()).addXmlEntity(any(), any());
+ verify(ccService, never()).updateCacheConfig(any(), any());
}
@Test
- public void whenNoXml() {
+ public void configurationIsNotPersistedWhenCreationOnOnlyMemberFails() {
doReturn(mock(Set.class)).when(command).getMembers(any(), any());
doReturn(ccService).when(command).getConfigurationPersistenceService();
result1 = new CliFunctionResult("member", false, "result1");
functionResults.add(result1);
// does not delete because command failed, so hasNoFailToPersistError
should still be true
- gfsh.executeAndAssertThat(command, "create
gateway-receiver").statusIsError()
- .hasNoFailToPersistError();
- verify(ccService, never()).deleteXmlEntity(any(), any());
+ gfsh.executeAndAssertThat(command, "create
gateway-receiver").statusIsError();
+ verify(ccService, never()).updateCacheConfig(any(), any());
}
+ @Test
+ public void configurationIsPersistedWhenCreationOnAnyMemberFails() {
+ doReturn(mock(Set.class)).when(command).getMembers(any(), any());
+ doReturn(ccService).when(command).getConfigurationPersistenceService();
+ result1 = new CliFunctionResult("member", false, "result1");
+ functionResults.add(result1);
+ CliFunctionResult result2 = new CliFunctionResult("member", true,
"result2");
+ functionResults.add(result2);
+
+ // does not delete because command failed, so hasNoFailToPersistError
should still be true
+ gfsh.executeAndAssertThat(command, "create
gateway-receiver").statusIsSuccess();
+ verify(ccService, times(1)).updateCacheConfig(any(), any());
+ }
}
diff --git
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverCreateFunctionTest.java
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverCreateFunctionTest.java
index 99bfdeb..f134b7b 100644
---
a/geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverCreateFunctionTest.java
+++
b/geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/GatewayReceiverCreateFunctionTest.java
@@ -55,7 +55,6 @@ public class GatewayReceiverCreateFunctionTest {
doCallRealMethod().when(function).execute(context);
doReturn(false).when(function).gatewayReceiverExists(any());
doReturn(receiver).when(function).createGatewayReceiver(cache, args);
- doReturn(null).when(function).getXmlEntity(args);
doReturn(5555).when(receiver).getPort();
}
diff --git
a/geode-wan/src/test/java/org/apache/geode/internal/cache/wan/wancommand/CreateGatewayReceiverCommandDUnitTest.java
b/geode-wan/src/test/java/org/apache/geode/internal/cache/wan/wancommand/CreateGatewayReceiverCommandDUnitTest.java
index 4b1ac2f..33847b8 100644
---
a/geode-wan/src/test/java/org/apache/geode/internal/cache/wan/wancommand/CreateGatewayReceiverCommandDUnitTest.java
+++
b/geode-wan/src/test/java/org/apache/geode/internal/cache/wan/wancommand/CreateGatewayReceiverCommandDUnitTest.java
@@ -96,7 +96,7 @@ public class CreateGatewayReceiverCommandDUnitTest {
}
@Test
- public void commandFailsIfAnyReceiverFailsToCreateWithoutSkipOption() {
+ public void commandSucceedsIfAnyReceiverFailsToCreateEvenWithoutSkipOption()
{
// Create a receiver on one server (but not all) so that the command to
create receivers on all
// will fail on one (but not all). Such a failure should be reported as a
failure to GFSH,
// unless --skip-if-exists is present.
@@ -109,7 +109,7 @@ public class CreateGatewayReceiverCommandDUnitTest {
.tableHasColumnWithExactValuesInAnyOrder("Member", SERVER_1)
.tableHasColumnWithValuesContaining("Status",
"GatewayReceiver created on member \"" + SERVER_1 + "\"");
- gfsh.executeAndAssertThat(createOnBoth).statusIsError()
+ gfsh.executeAndAssertThat(createOnBoth).statusIsSuccess()
.tableHasColumnWithExactValuesInAnyOrder("Member", SERVER_1, SERVER_2)
.tableHasColumnWithValuesContaining("Status",
"ERROR: java.lang.IllegalStateException: "
--
To stop receiving notification emails like this one, please contact
[email protected].