Skip to content

Commit dcb7af0

Browse files
GEODE-3613: Dumping container logs files in session replication tests
The session replication tests were generating logs files that were getting deleted. In order to debug issues with the session state tests we need to information in the log files to show up in the test output.
1 parent 3b6ba91 commit dcb7af0

File tree

3 files changed

+32
-4
lines changed

3 files changed

+32
-4
lines changed

geode-assembly/src/test/java/org/apache/geode/session/tests/CargoTestBase.java

+1
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ public void setup() throws IOException {
6868
*/
6969
@After
7070
public void stop() throws IOException {
71+
manager.dumpLogs();
7172
manager.stopAllActiveContainers();
7273
manager.cleanUp();
7374
}

geode-assembly/src/test/java/org/apache/geode/session/tests/ContainerManager.java

+6
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,12 @@ public void stopAllActiveContainers() {
122122
stopContainers(getActiveContainerIndexes());
123123
}
124124

125+
public void dumpLogs() throws IOException {
126+
for (ServerContainer container : getActiveContainers()) {
127+
container.dumpLogs();
128+
}
129+
}
130+
125131
/**
126132
* Set the name of the current test
127133
*

geode-assembly/src/test/java/org/apache/geode/session/tests/ServerContainer.java

+25-4
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.codehaus.cargo.container.configuration.ConfigurationType;
2828
import org.codehaus.cargo.container.configuration.LocalConfiguration;
2929
import org.codehaus.cargo.container.deployable.WAR;
30+
import org.codehaus.cargo.container.jetty.JettyPropertySet;
3031
import org.codehaus.cargo.container.property.GeneralPropertySet;
3132
import org.codehaus.cargo.container.property.LoggingLevel;
3233
import org.codehaus.cargo.container.property.ServletPropertySet;
@@ -47,6 +48,7 @@
4748
* Subclasses provide setup and configuration of specific containers.
4849
*/
4950
public abstract class ServerContainer {
51+
private final File containerConfigHome;
5052
private InstalledLocalContainer container;
5153
private ContainerInstall install;
5254

@@ -66,7 +68,7 @@ public abstract class ServerContainer {
6668

6769
public final String DEFAULT_CONF_DIR;
6870

69-
public static final String DEFAULT_LOGGING_LEVEL = LoggingLevel.HIGH.getLevel();
71+
public static final String DEFAULT_LOGGING_LEVEL = LoggingLevel.LOW.getLevel();
7072
public static final String DEFAULT_LOG_DIR = "cargo_logs/";
7173
public static final String DEFAULT_CONFIG_DIR = "/tmp/cargo_configs/";
7274

@@ -99,8 +101,8 @@ public ServerContainer(ContainerInstall install, File containerConfigHome,
99101

100102
DEFAULT_CONF_DIR = install.getHome() + "/conf/";
101103
// Use the default configuration home path if not passed a config home
102-
if (containerConfigHome == null)
103-
containerConfigHome = new File(DEFAULT_CONFIG_DIR + description);
104+
this.containerConfigHome = containerConfigHome == null
105+
? new File(DEFAULT_CONFIG_DIR + description) : containerConfigHome;
104106

105107
// Init the property lists
106108
cacheProperties = new HashMap<>();
@@ -111,7 +113,7 @@ public ServerContainer(ContainerInstall install, File containerConfigHome,
111113
// Create the Cargo Container instance wrapping our physical container
112114
LocalConfiguration configuration = (LocalConfiguration) new DefaultConfigurationFactory()
113115
.createConfiguration(install.getInstallId(), ContainerType.INSTALLED,
114-
ConfigurationType.STANDALONE, containerConfigHome.getAbsolutePath());
116+
ConfigurationType.STANDALONE, this.containerConfigHome.getAbsolutePath());
115117
// Set configuration/container logging level
116118
configuration.setProperty(GeneralPropertySet.LOGGING, loggingLevel);
117119
// Removes secureRandom generation so that container startup is much faster
@@ -210,6 +212,25 @@ public void stop() {
210212
container.stop();
211213
}
212214

215+
public void dumpLogs() throws IOException {
216+
for (File file : logDir.listFiles()) {
217+
dumpToStdOut(file);
218+
}
219+
220+
for (File file : new File(containerConfigHome, "logs").listFiles()) {
221+
dumpToStdOut(file);
222+
}
223+
}
224+
225+
private void dumpToStdOut(final File file) throws IOException {
226+
System.out.println("-------------------------------------------");
227+
System.out.println(file.getAbsolutePath());
228+
System.out.println("-------------------------------------------");
229+
FileUtils.copyFile(file, System.out);
230+
System.out.println("-------------------------------------------");
231+
System.out.println("");
232+
}
233+
213234
/**
214235
* Copies the container configuration (found through {@link #getConfiguration()}) to the logging
215236
* directory specified by {@link #logDir}

0 commit comments

Comments
 (0)