use of org.apache.geode.test.dunit.rules.Server in project geode by apache.
the class PDXGfshPostProcessorOnRemoteServerTest method testGfshCommand.
@Test
public void testGfshCommand() throws Exception {
Properties locatorProps = new Properties();
locatorProps.setProperty(TestSecurityManager.SECURITY_JSON, "org/apache/geode/management/internal/security/clientServer.json");
locatorProps.setProperty(SECURITY_MANAGER, TestSecurityManager.class.getName());
locatorProps.setProperty(SECURITY_POST_PROCESSOR, PDXPostProcessor.class.getName());
MemberVM<Locator> locatorVM = lsRule.startLocatorVM(0, locatorProps);
Properties serverProps = new Properties();
serverProps.setProperty(TestSecurityManager.SECURITY_JSON, "org/apache/geode/management/internal/security/clientServer.json");
serverProps.setProperty("security-username", "super-user");
serverProps.setProperty("security-password", "1234567");
MemberVM<Server> serverVM = lsRule.startServerVM(1, serverProps, locatorVM.getPort());
serverVM.invoke(() -> {
Cache cache = LocatorServerStartupRule.serverStarter.getCache();
Region region = cache.createRegionFactory(RegionShortcut.REPLICATE).create(REGION_NAME);
for (int i = 0; i < 5; i++) {
SimpleClass obj = new SimpleClass(i, (byte) i);
region.put("key" + i, obj);
}
});
// wait until the region bean is visible
locatorVM.invoke(() -> {
Awaitility.await().pollInterval(500, TimeUnit.MICROSECONDS).atMost(5, TimeUnit.SECONDS).until(() -> {
Cache cache = CacheFactory.getAnyInstance();
Object bean = ManagementService.getManagementService(cache).getDistributedRegionMXBean("/" + REGION_NAME);
return bean != null;
});
});
gfsh.connectAndVerify(locatorVM.getJmxPort(), GfshShellConnectionRule.PortType.jmxManger, CliStrings.CONNECT__USERNAME, "dataUser", CliStrings.CONNECT__PASSWORD, "1234567");
// get command
CommandResult result = gfsh.executeAndVerifyCommand("get --key=key1 --region=AuthRegion");
assertTrue(result.getContent().toString().contains(SimpleClass.class.getName()));
gfsh.executeAndVerifyCommand("query --query=\"select * from /AuthRegion\"");
serverVM.invoke(() -> {
PDXPostProcessor pp = (PDXPostProcessor) SecurityService.getSecurityService().getPostProcessor();
// verify that the post processor is called 6 times. (5 for the query, 1 for the get)
assertEquals(pp.getCount(), 6);
});
}
use of org.apache.geode.test.dunit.rules.Server in project geode by apache.
the class ExportLogsOnServerManagerDUnit method testExportWithPeerLocator.
@Test
public void testExportWithPeerLocator() throws Exception {
MemberVM<Server> server0 = lsRule.startServerAsEmbededLocator(0);
lsRule.startServerVM(1, server0.getMember().getEmbeddedLocatorPort());
gfshConnector.connect(server0.getMember().getEmbeddedLocatorPort(), GfshShellConnectionRule.PortType.locator);
gfshConnector.executeAndVerifyCommand("export logs");
String message = gfshConnector.getGfshOutput();
assertThat(message).contains(server0.getWorkingDir().getAbsolutePath());
String zipPath = getZipPathFromCommandResult(message);
Set<String> expectedZipEntries = Sets.newHashSet("server-0/server-0.log", "server-1/server-1.log");
Set<String> actualZipEnries = new ZipFile(zipPath).stream().map(ZipEntry::getName).collect(Collectors.toSet());
assertThat(actualZipEnries).isEqualTo(expectedZipEntries);
}
use of org.apache.geode.test.dunit.rules.Server in project geode by apache.
the class ClusterConfig method verifyServer.
public void verifyServer(MemberVM<Server> serverVM) {
// verify files exist in filesystem
Set<String> expectedJarNames = this.getJarNames().stream().collect(toSet());
String[] actualJarFiles = serverVM.getWorkingDir().list((dir, filename) -> filename.contains(".jar"));
Set<String> actualJarNames = Stream.of(actualJarFiles).map(jar -> jar.replaceAll("\\.v\\d+\\.jar", ".jar")).collect(toSet());
// We will end up with extra jars on disk if they are deployed and then undeployed
assertThat(expectedJarNames).isSubsetOf(actualJarNames);
// verify config exists in memory
serverVM.invoke(() -> {
Cache cache = GemFireCacheImpl.getInstance();
// TODO: set compare to fail if there are extra regions
for (String region : this.getRegions()) {
assertThat(cache.getRegion(region)).isNotNull();
}
if (StringUtils.isNotBlank(this.getMaxLogFileSize())) {
Properties props = cache.getDistributedSystem().getProperties();
assertThat(props.getProperty(LOG_FILE_SIZE_LIMIT)).isEqualTo(this.getMaxLogFileSize());
}
for (String jar : this.getJarNames()) {
DeployedJar deployedJar = ClassPathLoader.getLatest().getJarDeployer().findDeployedJar(jar);
assertThat(deployedJar).isNotNull();
assertThat(Class.forName(nameOfClassContainedInJar(jar), true, new URLClassLoader(new URL[] { deployedJar.getFileURL() }))).isNotNull();
}
// If we have extra jars on disk left over from undeploy, make sure they aren't used
Set<String> undeployedJarNames = new HashSet<>(actualJarNames);
undeployedJarNames.removeAll(expectedJarNames);
for (String jar : undeployedJarNames) {
System.out.println("Verifying undeployed jar: " + jar);
DeployedJar undeployedJar = ClassPathLoader.getLatest().getJarDeployer().findDeployedJar(jar);
assertThat(undeployedJar).isNull();
}
});
}
Aggregations