Skip to content

Commit 9df711f

Browse files
authored
Fixed ItCoherenceTests.testCoherenceServerRollingRestart test class failing intermittently (#3592)
* Fixed ItCoherenceTests.testCoherenceServerRollingRestart test class failing intermittently
1 parent 8c81db1 commit 9df711f

File tree

2 files changed

+43
-4
lines changed

2 files changed

+43
-4
lines changed

integration-tests/src/test/java/oracle/weblogic/kubernetes/ItCoherenceTests.java

+14-4
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import oracle.weblogic.kubernetes.annotations.Namespaces;
2828
import oracle.weblogic.kubernetes.logging.LoggingFacade;
2929
import oracle.weblogic.kubernetes.utils.ExecResult;
30-
import oracle.weblogic.kubernetes.utils.FileUtils;
3130
import org.junit.jupiter.api.BeforeAll;
3231
import org.junit.jupiter.api.DisplayName;
3332
import org.junit.jupiter.api.Tag;
@@ -46,6 +45,9 @@
4645
import static oracle.weblogic.kubernetes.assertions.TestAssertions.verifyRollingRestartOccurred;
4746
import static oracle.weblogic.kubernetes.utils.CommonTestUtils.checkServiceExists;
4847
import static oracle.weblogic.kubernetes.utils.CommonTestUtils.getNextFreePort;
48+
import static oracle.weblogic.kubernetes.utils.FileUtils.copyFolderToPod;
49+
import static oracle.weblogic.kubernetes.utils.FileUtils.deleteDirectories;
50+
import static oracle.weblogic.kubernetes.utils.FileUtils.makeDirectories;
4951
import static oracle.weblogic.kubernetes.utils.ImageUtils.createImageAndVerify;
5052
import static oracle.weblogic.kubernetes.utils.ImageUtils.createTestRepoSecret;
5153
import static oracle.weblogic.kubernetes.utils.ImageUtils.dockerLoginAndPushImageToRegistry;
@@ -192,15 +194,23 @@ private void copyCohProxyClientAppToPods() {
192194
for (int i = 1; i < replicaCount; i++) {
193195
String serverName = managedServerPrefix + i;
194196
assertDoesNotThrow(
195-
() -> FileUtils.makeDirectories(domainNamespace, serverName,
197+
() -> deleteDirectories(domainNamespace, serverName,
198+
null, true, dirsToMake),
199+
String.format("Failed to delete dir %s in pod %s in namespace %s ",
200+
dirsToMake.toString(), serverName, domainNamespace));
201+
logger.info("Deleted dir {0} in Pod {1} in namespace {2} ",
202+
dirsToMake.toString(), serverName, domainNamespace);
203+
204+
assertDoesNotThrow(
205+
() -> makeDirectories(domainNamespace, serverName,
196206
null, true, dirsToMake),
197207
String.format("Failed to create dir %s in pod %s in namespace %s ",
198208
dirsToMake.toString(), serverName, domainNamespace));
199-
logger.info("Failed to create dir {0} in Pod {1} in namespace {2} ",
209+
logger.info("Created dir {0} in Pod {1} in namespace {2} ",
200210
dirsToMake.toString(), serverName, domainNamespace);
201211

202212
assertDoesNotThrow(
203-
() -> FileUtils.copyFolderToPod(domainNamespace, serverName,
213+
() -> copyFolderToPod(domainNamespace, serverName,
204214
containerName, Paths.get(APP_LOC_ON_HOST), Paths.get(APP_LOC_IN_POD)),
205215
String.format("Failed to copy file %s to pod %s in namespace %s and located at %s ",
206216
APP_LOC_ON_HOST, serverName, domainNamespace, APP_LOC_IN_POD));

integration-tests/src/test/java/oracle/weblogic/kubernetes/utils/FileUtils.java

+29
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,35 @@ public static void makeDirectories(String namespace,
302302
});
303303
}
304304

305+
/**
306+
* Delete directories in a pod in the specified namespace.
307+
* @param namespace The Kubernetes namespace that the pod is in
308+
* @param pod The name of the Kubernetes pod where the command is expected to run
309+
* @param container The container in the Pod where the command is to be run. If no
310+
* container name is provided than the first container in the Pod is used.
311+
* @param redirectToStdout copy process output to stdout
312+
* @param directoryToDelete directories to be deleted
313+
*/
314+
public static void deleteDirectories(String namespace,
315+
String pod,
316+
String container,
317+
boolean redirectToStdout,
318+
List<String> directoryToDelete) {
319+
//Delete directories.
320+
directoryToDelete.forEach(newDir -> {
321+
String deleteCmd = "rm -rf " + newDir;
322+
getLogger().info("dir to delete {0} ", deleteCmd);
323+
324+
try {
325+
ExecResult execResult = execCommand(namespace,
326+
pod, container, redirectToStdout,"/bin/sh", "-c", deleteCmd);
327+
getLogger().info("Directory created " + execResult.stdout());
328+
} catch (Exception ex) {
329+
throw new RuntimeException(ex);
330+
}
331+
});
332+
}
333+
305334
/**
306335
* Copy file from source directory to destination directory.
307336
*

0 commit comments

Comments
 (0)