diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml index 76131490f6d..290e86e9228 100644 --- a/integration-tests/pom.xml +++ b/integration-tests/pom.xml @@ -289,6 +289,15 @@ + + resilience + + false + + **/ItResilience + + + kind-sequential diff --git a/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItResilience.java b/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItResilience.java new file mode 100644 index 00000000000..b20f6b0e736 --- /dev/null +++ b/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItResilience.java @@ -0,0 +1,179 @@ +// Copyright (c) 2021, Oracle and/or its affiliates. +// Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. + +package oracle.weblogic.kubernetes; + +import java.util.List; + +import oracle.weblogic.kubernetes.actions.impl.primitive.Slammer; +import oracle.weblogic.kubernetes.actions.impl.primitive.SlammerParams; +import oracle.weblogic.kubernetes.annotations.IntegrationTest; +import oracle.weblogic.kubernetes.annotations.Namespaces; +import oracle.weblogic.kubernetes.logging.LoggingFacade; +import oracle.weblogic.kubernetes.utils.SlammerUtils; +import org.awaitility.core.ConditionFactory; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import static java.util.concurrent.TimeUnit.MINUTES; +import static java.util.concurrent.TimeUnit.SECONDS; +import static oracle.weblogic.kubernetes.TestConstants.ADMIN_SERVER_NAME_BASE; +import static oracle.weblogic.kubernetes.TestConstants.MANAGED_SERVER_NAME_BASE; +import static oracle.weblogic.kubernetes.TestConstants.MII_BASIC_IMAGE_NAME; +import static oracle.weblogic.kubernetes.TestConstants.MII_BASIC_IMAGE_TAG; +import static oracle.weblogic.kubernetes.actions.TestActions.scaleCluster; +import static oracle.weblogic.kubernetes.utils.CommonMiiTestUtils.createMiiDomainAndVerify; +import static oracle.weblogic.kubernetes.utils.CommonTestUtils.checkPodReadyAndServiceExists; +import static oracle.weblogic.kubernetes.utils.OperatorUtils.installAndVerifyOperator; +import static oracle.weblogic.kubernetes.utils.ThreadSafeLogger.getLogger; +import static org.awaitility.Awaitility.with; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + + +// Test resilience using slammer +@DisplayName("Test resilience using slammer") +@IntegrationTest +class ItResilience { + private static String opNamespace = null; + private static String domainNamespace = null; + private static String domainUid = "domain1"; + private static ConditionFactory withStandardRetryPolicy = null; + + private static String adminServerPodName = String.format("%s-%s", domainUid, ADMIN_SERVER_NAME_BASE); + private static String managedServerPrefix = String.format("%s-%s", domainUid, MANAGED_SERVER_NAME_BASE); + private static int replicaCount = 2; + private static LoggingFacade logger = null; + private static String ingressHost = null; //only used for OKD + + /** + * Perform initialization for all the tests in this class. + * Set up the necessary namespaces, install the operator in the first namespace, and + * create a domain in the second namespace using the pre-created basic MII image. + * + * @param namespaces list of namespaces created by the IntegrationTestWatcher by the + * JUnit engine parameter resolution mechanism + */ + @BeforeAll + public static void initAll(@Namespaces(2) List namespaces) { + logger = getLogger(); + // create standard, reusable retry/backoff policy + withStandardRetryPolicy = with().pollDelay(2, SECONDS) + .and().with().pollInterval(10, SECONDS) + .atMost(6, MINUTES).await(); + + //install slammer + Slammer.installSlammer(); + + //check if slammer is up + assertTrue(Slammer.list("network"), "Can't reach slammer"); + // get namespaces + assertNotNull(namespaces.get(0), "Namespace namespaces.get(0) is null"); + opNamespace = namespaces.get(0); + + assertNotNull(namespaces.get(1), "Namespace namespaces.get(1) is null"); + domainNamespace = namespaces.get(1); + + // install the operator + logger.info("Install an operator in namespace {0}, managing namespace {1}", + opNamespace, domainNamespace); + installAndVerifyOperator(opNamespace, domainNamespace); + + // create a domain resource + logger.info("Create model-in-image domain {0} in namespace {1}, and wait until it comes up", + domainUid, domainNamespace); + createMiiDomainAndVerify( + domainNamespace, + domainUid, + MII_BASIC_IMAGE_NAME + ":" + MII_BASIC_IMAGE_TAG, + adminServerPodName, + managedServerPrefix, + replicaCount); + } + + /** + * verify the cluster is scaled up. + */ + @Test + @DisplayName("increase replica count for the domain, and verify cluster is scaled up") + void testNetworkDelayVerifyScaling() { + + try { + //check if slammer is up + assertTrue(Slammer.list("network"), "Can't reach slammer"); + + // check new server is started and existing servers are running + logger.info("Check admin service and pod {0} is created in namespace {1}", + adminServerPodName, domainNamespace); + checkPodReadyAndServiceExists(adminServerPodName, domainUid, domainNamespace); + + // check managed server services and pods are ready + for (int i = 1; i <= replicaCount; i++) { + logger.info("Wait for managed server pod {0} to be ready in namespace {1}", + managedServerPrefix + i, domainNamespace); + checkPodReadyAndServiceExists(managedServerPrefix + i, domainUid, domainNamespace); + } + + Thread t2 = new ScalingUpThread(5); + SlammerParams params = new SlammerParams().delay("9"); + Thread t1 = new SlammerThread(params); + t1.start(); + t2.start(); + + assertDoesNotThrow(() -> t2.join(100 * 1000), "failed to join thread"); + assertDoesNotThrow(() -> t1.join(100 * 1000), "failed to join thread"); + // check managed server services and pods are ready + for (int i = 1; i <= 5; i++) { + logger.info("Wait for managed server pod {0} to be ready in namespace {1}", + managedServerPrefix + i, domainNamespace); + checkPodReadyAndServiceExists(managedServerPrefix + i, domainUid, domainNamespace); + } + } finally { + SlammerUtils.deleteNetworkLatencyDelay(); + } + } + + private void runScaleOperation(int replicaCount) { + // scale up the domain by increasing replica count + boolean scalingSuccess = assertDoesNotThrow(() -> + scaleCluster(domainUid, domainNamespace, "cluster-1", replicaCount), + String.format("Scaling the cluster cluster-1 of domain %s in namespace %s failed", domainUid, domainNamespace)); + assertTrue(scalingSuccess, + String.format("Cluster scaling failed for domain %s in namespace %s", domainUid, domainNamespace)); + } + + class ScalingUpThread extends Thread { + int replicaCount; + + ScalingUpThread(int replicaCount) { + this.replicaCount = replicaCount; + } + + public void run() { + logger.info("Started Scaling thread"); + runScaleOperation(replicaCount); + logger.info("Finished Scaling thread"); + } + } + + class SlammerThread extends Thread { + SlammerParams params; + + SlammerThread(SlammerParams params) { + this.params = params; + + } + + public void run() { + logger.info("Started Slammer thread"); + logger.info("Adding Network delay for " + params.getDelay()); + Slammer.list("network"); + assertTrue(SlammerUtils.addNetworkLatencyDelay(params.getDelay()), "addNetworkLatencyDelay failed"); + Slammer.list("network"); + logger.info("Finished Slammer thread"); + } + } + +} diff --git a/integration-tests/src/test/java/oracle/weblogic/kubernetes/actions/impl/primitive/Slammer.java b/integration-tests/src/test/java/oracle/weblogic/kubernetes/actions/impl/primitive/Slammer.java new file mode 100644 index 00000000000..6adbcf3c215 --- /dev/null +++ b/integration-tests/src/test/java/oracle/weblogic/kubernetes/actions/impl/primitive/Slammer.java @@ -0,0 +1,219 @@ +// Copyright (c) 2021, Oracle and/or its affiliates. +// Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. + +package oracle.weblogic.kubernetes.actions.impl.primitive; + +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.Optional; + +import oracle.weblogic.kubernetes.logging.LoggingFacade; +import oracle.weblogic.kubernetes.utils.ExecCommand; +import oracle.weblogic.kubernetes.utils.ExecResult; + +import static oracle.weblogic.kubernetes.TestConstants.K8S_NODEPORT_HOST; +import static oracle.weblogic.kubernetes.TestConstants.RESULTS_BASE; +import static oracle.weblogic.kubernetes.utils.ThreadSafeLogger.getLogger; +import static org.apache.commons.io.FileUtils.deleteDirectory; +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; +import static org.junit.jupiter.api.Assertions.assertTrue; + +public class Slammer { + + private static String slammerPropertyFile = Optional.ofNullable(System.getenv("SLAMMER_PROPERTY_FILE")) + .orElse(null); + + private static String remotehost = Optional.ofNullable(System.getenv("SLAMMER_REMOTEHOST")) + .orElse(K8S_NODEPORT_HOST); + + private static String remotepass = Optional.ofNullable(System.getenv("SLAMMER_REMOTEHOST_PASS")) + .orElse(null); + private static String remoteuser = Optional.ofNullable(System.getenv("SLAMMER_REMOTEHOST_USER")) + .orElse(null); + + private static String slammerInstallDir = Optional.ofNullable(System.getenv("SLAMMER_INSTALL_DIR")) + .orElse(RESULTS_BASE + "/slammerinstall"); + + public static String getSlammerDir() { + return slammerInstallDir + "/slammer"; + } + + /** + * install slammer src using specific location. + */ + public static void installSlammer() { + installSlammer(slammerInstallDir); + } + + /** + * install slammer src using specific location. + * @param installDir location for installation + */ + public static void installSlammer(String installDir) { + LoggingFacade logger = getLogger(); + logger.info("create a staging location for slammer project"); + Path slammerTemp = Paths.get(installDir); + assertDoesNotThrow(() -> deleteDirectory(slammerTemp.toFile())); + assertDoesNotThrow(() -> Files.createDirectories(slammerTemp)); + + String slammerSrcLocation = Optional.ofNullable(System.getenv("SLAMMER_DOWNLOAD_URL")) + .orElse(null); + + CommandParams params = Command.defaultCommandParams() + .command("cd " + installDir + " && wget --no-proxy " + + slammerSrcLocation + + " && tar xf slammer.tar") + .saveResults(true) + .redirect(false); + assertTrue(() -> Command.withParams(params) + .execute()); + } + + /** + * Run a Slammer. + * @param slammerParams the parameters to run slammer + * @return true on success, false otherwise + */ + public static boolean run(SlammerParams slammerParams) { + String slammerDir = getSlammerDir(); + String operation = slammerParams.getOperation(); + String service = slammerParams.getService(); + // assertions for required parameters + assertThat(slammerDir) + .as("make sure slammerDir is not empty or null") + .isNotNull() + .isNotEmpty(); + assertTrue(slammerPropertyFile != null || (remoteuser != null && remotepass != null), + "make sure slammer property or remote user/pass is provided "); + + assertThat(operation) + .as("make sure operation is not empty or null") + .isNotNull() + .isNotEmpty(); + + assertThat(service) + .as("make sure service is not empty or null") + .isNotNull() + .isNotEmpty(); + + + // build Slammer run command + String runCmd = String.format("cd %1s && %2s/slammer.pl --service %3s --operation %4s", + slammerDir, slammerDir, service, operation); + + // if we have timeout + String timeout = slammerParams.getTimeout(); + if (timeout != null) { + runCmd = runCmd + " --timeout " + timeout; + } + + // if we have property file + if (slammerPropertyFile != null) { + runCmd = runCmd + " --property " + slammerPropertyFile; + } else { + // if we have remotehost and remotepass + runCmd = runCmd + " --remotehost " + remotehost + + " --remotepass " + remotepass + + " --remoteuser " + remoteuser; + } + + // if we have delay + String delay = slammerParams.getDelay(); + if (delay != null) { + runCmd = runCmd + " --delay " + delay; + } + + // if we have port + String port = slammerParams.getPort(); + if (port != null) { + runCmd = runCmd + " --port " + port; + } + + // if we have traffic direction + String trafficDirection = slammerParams.getTraffic(); + if (trafficDirection != null) { + runCmd = runCmd + " --traffic " + trafficDirection; + } + + // if we have cpu number + String cpu = slammerParams.getCpu(); + if (cpu != null) { + runCmd = runCmd + " --cpu " + cpu; + } + + // if we have cpu percent + String cpuPercent = slammerParams.getCpuPercent(); + if (cpuPercent != null) { + runCmd = runCmd + " --cpu-percent " + cpuPercent; + } + + // if we have vm + String vm = slammerParams.getVm(); + if (vm != null) { + runCmd = runCmd + " --vm " + vm; + } + + // if we have vmSize + String vmSize = slammerParams.getVmSize(); + if (vmSize != null) { + runCmd = runCmd + " --vmsize " + vmSize; + } + + // if we have fill + String fill = slammerParams.getFill(); + if (fill != null) { + runCmd = runCmd + " --fill " + fill; + } + + // if we have chain + String chain = slammerParams.getChain(); + if (chain != null) { + runCmd = runCmd + " --chain " + chain; + } + + // if we have ociimage + String ociimage = slammerParams.getOciImage(); + if (ociimage != null) { + runCmd = runCmd + "--ocitype kubectl " + " --ociimage " + ociimage; + } + + // run the command + return exec(runCmd); + } + + /** + * List operation. + * @param service slammer service name to list + * @return true on success + */ + public static boolean list(String service) { + SlammerParams slammerParams = new SlammerParams().service(service).operation("list"); + return Slammer.run(slammerParams); + } + + + /** + * Executes the given command. + * @param command the command to execute + * @return true on success, false otherwise + */ + private static boolean exec(String command) { + getLogger().info("Running command - \n" + command); + try { + ExecResult result = ExecCommand.exec(command, true); + getLogger().info("The command returned exit value: " + + result.exitValue() + " command output: " + + result.stderr() + "\n" + result.stdout()); + if (result.exitValue() != 0) { + getLogger().info("Command failed with errors " + result.stderr() + "\n" + result.stdout()); + return false; + } + } catch (Exception e) { + getLogger().info("Got exception, command failed with errors " + e.getMessage()); + return false; + } + return true; + } +} diff --git a/integration-tests/src/test/java/oracle/weblogic/kubernetes/actions/impl/primitive/SlammerParams.java b/integration-tests/src/test/java/oracle/weblogic/kubernetes/actions/impl/primitive/SlammerParams.java new file mode 100644 index 00000000000..c8ff370b3b2 --- /dev/null +++ b/integration-tests/src/test/java/oracle/weblogic/kubernetes/actions/impl/primitive/SlammerParams.java @@ -0,0 +1,172 @@ +// Copyright (c) 2021, Oracle and/or its affiliates. +// Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. + +package oracle.weblogic.kubernetes.actions.impl.primitive; + +public class SlammerParams { + // Adding some of the most commonly used params for now + private String service; + private String operation; + private String timeout; + private String delay; + private String cpu; + private String cpuPercent; + private String vm; + private String vmSize; + private String traffic; + private String port; + private String fill; + private String chain; + private String remotehost; + private String remotesudopass; + private String propertyFile; + private String ociimage; + + public SlammerParams service(String service) { + this.service = service; + return this; + } + + public SlammerParams operation(String operation) { + this.operation = operation; + return this; + } + + public SlammerParams timeout(String timeout) { + this.timeout = timeout; + return this; + } + + public SlammerParams delay(String delay) { + this.delay = delay; + return this; + } + + public SlammerParams cpu(String cpu) { + this.cpu = cpu; + return this; + } + + public SlammerParams cpuPercent(String cpuPercent) { + this.cpuPercent = cpuPercent; + return this; + } + + public SlammerParams traffic(String traffic) { + this.traffic = traffic; + return this; + } + + public SlammerParams port(String port) { + this.port = port; + return this; + } + + public SlammerParams fill(String fill) { + this.fill = fill; + return this; + } + + public SlammerParams vm(String vm) { + this.vm = vm; + return this; + } + + public SlammerParams vmSize(String vmSize) { + this.vmSize = vmSize; + return this; + } + + public SlammerParams remotehost(String remotehost) { + this.remotehost = remotehost; + return this; + } + + public SlammerParams remoteSudoPass(String remotesudopass) { + this.remotesudopass = remotesudopass; + return this; + } + + public SlammerParams chain(String chain) { + this.chain = chain; + return this; + } + + public SlammerParams propertyFile(String propertyFile) { + this.propertyFile = propertyFile; + return this; + } + + public SlammerParams ociimage(String ociimage) { + this.ociimage = ociimage; + return this; + } + + public SlammerParams defaults() { + return this; + } + + public String getVm() { + return vm; + } + + public String getVmSize() { + return vmSize; + } + + public String getCpu() { + return cpu; + } + + public String getCpuPercent() { + return cpuPercent; + } + + public String getPort() { + return port; + } + + public String getFill() { + return fill; + } + + public String getTraffic() { + return traffic; + } + + public String getDelay() { + return delay; + } + + public String getTimeout() { + return timeout; + } + + public String getOperation() { + return operation; + } + + public String getService() { + return service; + } + + public String getChain() { + return chain; + } + + public String getRemoteHost() { + return remotehost; + } + + public String getRemoteSudoPass() { + return remotesudopass; + } + + public String getPropertyFile() { + return propertyFile; + } + + public String getOciImage() { + return ociimage; + } +} diff --git a/integration-tests/src/test/java/oracle/weblogic/kubernetes/utils/SlammerUtils.java b/integration-tests/src/test/java/oracle/weblogic/kubernetes/utils/SlammerUtils.java new file mode 100644 index 00000000000..97c46c74865 --- /dev/null +++ b/integration-tests/src/test/java/oracle/weblogic/kubernetes/utils/SlammerUtils.java @@ -0,0 +1,195 @@ +// Copyright (c) 2021, Oracle and/or its affiliates. +// Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. + +package oracle.weblogic.kubernetes.utils; + +import oracle.weblogic.kubernetes.actions.impl.primitive.Slammer; +import oracle.weblogic.kubernetes.actions.impl.primitive.SlammerParams; + +public class SlammerUtils { + + /* CPU stress functions */ + + /** + * execute slammer command to stress cpu. + * A cpu stress of around provided value of cpuPercent is infused + * to the target machine for a provided timeout value ( in seconds) . + * + * @param cpuPercent - desired cpu percent + * @param timeout -time in seconds + */ + public static boolean stressByCpuPercentage(String cpuPercent, String timeout) { + SlammerParams slammerParams = new SlammerParams() + .service("stress") + .operation("infuse") + .cpuPercent(cpuPercent) + .timeout(timeout); + + return Slammer.run(slammerParams); + } + + /** + * execute slammer command to stress by numbers of cpu. + * A cpu stress of around provided value of cpuPercent is infused + * to the target machine for a provided timeout value ( in seconds) . + * + * @param cpuNumber number of cpu to stress + * @param timeout time in seconds + */ + public static boolean stressByNumberOfCpus(String cpuNumber, String timeout) { + SlammerParams slammerParams = new SlammerParams() + .service("stress") + .operation("cpu") + .cpuPercent(cpuNumber) + .timeout(timeout); + + return Slammer.run(slammerParams); + } + + /* Network Latency Delay functions */ + + /** + * Add network delay to your target's network interface. + * A network delay of delayTime im ms is added to the active interface + * causing latency in response at the network layer, + * this affects all applications running on the target host + * + * @param delayTime time to delay in milliseconds + */ + public static boolean addNetworkLatencyDelay(String delayTime) { + SlammerParams slammerParams = new SlammerParams() + .service("network") + .operation("add") + .delay(delayTime); + + return Slammer.run(slammerParams); + } + + /** + * Change network delay to your target's network interface. + * A network delay of delayTime im ms is added to the active interface + * causing latency in response at the network layer, + * this affects all applications running on the target host + * @param delayTime + **/ + public static boolean changeNetworkLatencyDelay(String delayTime) { + SlammerParams slammerParams = new SlammerParams() + .service("network") + .operation("change") + .delay(delayTime); + + return Slammer.run(slammerParams); + } + + /** + * Delete network delay to your target's network interface. + * A network delay of delayTime im ms is deleted from the active interface + */ + public static boolean deleteNetworkLatencyDelay() { + SlammerParams slammerParams = new SlammerParams() + .service("network") + .operation("delete"); + return Slammer.run(slammerParams); + } + + /* Block traffic to target host */ + + /** + * Restrict traffic to specified port. + * + * @param operation - block or delete + * @param portNumber - port number to restrict the traffic + * @param trafficDirection incoming or outgoing + * @param timeout , optional timeout time in seconds + */ + public static boolean changeTraffic(String trafficDirection, String portNumber, String operation, String timeout) { + SlammerParams slammerParams = new SlammerParams() + .service("iptables") + .operation(operation) + .port(portNumber) + .traffic(trafficDirection); + if (timeout != null) { + slammerParams.timeout(timeout); + } + return Slammer.run(slammerParams); + } + + /** + * Allow traffic coming to and from specified port. + * of a target host of a custom iptable chain + * Allows traffic on port on any chain of a target host, + * this use case is common in OCI environments + * where most ports are blocked by default and you want to open one + * + * @param portNumber - port number to restrict the traffic + * @param chain - custom iptable chain + */ + public static boolean allowTrafficToChain(String portNumber, String chain) { + SlammerParams slammerParams = new SlammerParams() + .service("iptables") + .operation("accept") + .port(portNumber) + .chain(chain); + return Slammer.run(slammerParams); + } + + /** + * Delete traffic coming to and from specified port. + * of a target host of a custom iptable chain + * Delete traffic on port on any chain of a target host, this use case + * is used in conjunction + * with the above accept operation to create a flakey connection + * + * @param portNumber - port number to restrict the traffic + * @param chain - custom iptable chain + */ + public static boolean deleteTrafficToChain(String portNumber, String chain) { + SlammerParams slammerParams = new SlammerParams() + .service("iptables") + .operation("delete") + .port(portNumber) + .chain(chain); + return Slammer.run(slammerParams); + } + + /** + * Backup a target host's iptables rules. + */ + public static boolean backupHostIptablesRules() { + SlammerParams slammerParams = new SlammerParams() + .service("iptables") + .operation("backup"); + return Slammer.run(slammerParams); + } + + /** + * Restore a target host's iptables rules. + */ + public static boolean restoreHostIptablesRules() { + SlammerParams slammerParams = new SlammerParams() + .service("iptables") + .operation("restore"); + return Slammer.run(slammerParams); + } + + /* Memory Stress */ + + /** + * Memory Stress by Size and Threads. + * A memory stress of vmsize (for example 2g) multiplied by number threads (vm) , for example 2, + * to induce a total of 2 x 2g = 4g of memory hog to the target machine for a timeout of 10 seconds + * + * @param vm - number of threads + * @param vmSize memory size in gigabytes + * @param timeout - time in seconds + */ + public static boolean memoryStress(String vm, String vmSize, String timeout) { + SlammerParams slammerParams = new SlammerParams() + .service("stress") + .operation("operation") + .vm(vm) + .vmSize(vmSize) + .timeout(timeout); + return Slammer.run(slammerParams); + } +} diff --git a/kindtest.sh b/kindtest.sh index 87d0fbf8a0f..3fda4b51d02 100755 --- a/kindtest.sh +++ b/kindtest.sh @@ -313,7 +313,7 @@ else time mvn -Dwdt.download.url="${wdt_download_url}" -Dwit.download.url="${wit_download_url}" -Dwle.download.url="${wle_download_url}" -DPARALLEL_CLASSES="${parallel_run}" -DNUMBER_OF_THREADS="${threads}" -pl integration-tests -P ${maven_profile_name} verify 2>&1 | tee "${RESULT_ROOT}/kindtest.log" || captureLogs else echo "Running mvn -Dit.test=!ItOperatorWlsUpgrade, !ItDedicatedMode, !ItT3Channel, !ItOperatorFmwUpgrade, !ItOCILoadBalancer, !ItMiiSampleFmwMain, !ItIstioCrossClusters* -Dwdt.download.url=${wdt_download_url} -Dwit.download.url=${wit_download_url} -Dwle.download.url=${wle_download_url} -DPARALLEL_CLASSES=${parallel_run} -DNUMBER_OF_THREADS=${threads} -pl integration-tests -P ${maven_profile_name} verify" - time mvn -Dit.test="!ItOperatorWlsUpgrade, !ItFmwDomainInPVUsingWDT, !ItFmwDynamicDomainInPV, !ItDedicatedMode, !ItT3Channel, !ItOperatorFmwUpgrade, !ItOCILoadBalancer, !ItMiiSampleFmwMain, !ItIstioCrossClusters*" -Dwdt.download.url="${wdt_download_url}" -Dwit.download.url="${wit_download_url}" -Dwle.download.url="${wle_download_url}" -DPARALLEL_CLASSES="${parallel_run}" -DNUMBER_OF_THREADS="${threads}" -pl integration-tests -P ${maven_profile_name} verify 2>&1 | tee "${RESULT_ROOT}/kindtest.log" || captureLogs + time mvn -Dit.test="!ItOperatorWlsUpgrade, !ItFmwDomainInPVUsingWDT, !ItFmwDynamicDomainInPV, !ItDedicatedMode, !ItT3Channel, !ItOperatorFmwUpgrade, !ItOCILoadBalancer, !ItMiiSampleFmwMain, !ItIstioCrossClusters*, !ItResilience" -Dwdt.download.url="${wdt_download_url}" -Dwit.download.url="${wit_download_url}" -Dwle.download.url="${wle_download_url}" -DPARALLEL_CLASSES="${parallel_run}" -DNUMBER_OF_THREADS="${threads}" -pl integration-tests -P ${maven_profile_name} verify 2>&1 | tee "${RESULT_ROOT}/kindtest.log" || captureLogs fi fi diff --git a/oketest.sh b/oketest.sh index f336fdafc67..57bb9f3f9b1 100755 --- a/oketest.sh +++ b/oketest.sh @@ -179,5 +179,5 @@ if [ "${maven_profile_name}" = "oke-cert" ]; then mvn -Dwdt.download.url="${wdt_download_url}" -Dwit.download.url="${wit_download_url}" -Dwle.download.url="${wle_download_url}" -Djdk.tls.client.protocols=TLSv1.2 -pl integration-tests -P ${maven_profile_name} verify 2>&1 | tee "${RESULT_ROOT}/oke.log" else echo "Running mvn -Dit.test=${test_filter}, !ItExternalRmiTunneling, !ItSamples, !ItMiiSample, !ItTwoDomainsLoadBalancers, !ItMonitoringExporter, !ItPodRestart -Dwdt.download.url=${wdt_download_url} -Dwit.download.url=${wit_download_url} -Dwle.download.url=${wle_download_url} -Djdk.tls.client.protocols=TLSv1.2 -pl integration-tests -P integration-tests verify 2>&1 | tee ${RESULT_ROOT}/oke.log" - mvn -Dit.test="${test_filter}, !ItExternalRmiTunneling, !ItSamples, !ItMiiSample, !ItTwoDomainsLoadBalancers, !ItMonitoringExporter, !ItPodRestart" -Dwdt.download.url="${wdt_download_url}" -Dwit.download.url="${wit_download_url}" -Dwle.download.url="${wle_download_url}" -Djdk.tls.client.protocols=TLSv1.2 -pl integration-tests -P ${maven_profile_name} verify 2>&1 | tee "${RESULT_ROOT}/oke.log" + mvn -Dit.test="${test_filter}, !ItExternalRmiTunneling, !ItSamples, !ItMiiSample, !ItTwoDomainsLoadBalancers, !ItMonitoringExporter, !ItPodRestart, !ItResilience" -Dwdt.download.url="${wdt_download_url}" -Dwit.download.url="${wit_download_url}" -Dwle.download.url="${wle_download_url}" -Djdk.tls.client.protocols=TLSv1.2 -pl integration-tests -P ${maven_profile_name} verify 2>&1 | tee "${RESULT_ROOT}/oke.log" fi