From 479d469da7ca062cf3bfcb6e40d5231952057f2a Mon Sep 17 00:00:00 2001 From: Sankar Neelakandan Date: Mon, 16 May 2022 13:30:20 -0700 Subject: [PATCH 1/4] port pr https://github.com/oracle/weblogic-kubernetes-operator/pull/3064/files from release/3.4 --- .../weblogic/kubernetes/ItMiiDomain.java | 2 +- .../kubernetes/ItMultiDomainModels.java | 6 ++--- .../ItMultiDomainModelsWithLoadBalancer.java | 7 +++--- .../annotations/DisabledOnSlimImage.java | 19 ++++++++++++++++ .../DisabledOnSlimImageCondition.java | 22 +++++++++++++++++++ 5 files changed, 48 insertions(+), 8 deletions(-) create mode 100644 integration-tests/src/test/java/oracle/weblogic/kubernetes/annotations/DisabledOnSlimImage.java create mode 100644 integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/DisabledOnSlimImageCondition.java diff --git a/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItMiiDomain.java b/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItMiiDomain.java index 63786005a30..63ee43ca7b4 100644 --- a/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItMiiDomain.java +++ b/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItMiiDomain.java @@ -291,7 +291,7 @@ void testCreateMiiDomain() { logger.info("WebLogic console is accessible thru default service"); } else { logger.info("Checking Rest API management console in WebLogic slim image"); - verifyCredentials(adminServerPodName, domainNamespace, + verifyCredentials(adminSvcExtHost, adminServerPodName, domainNamespace, ADMIN_USERNAME_DEFAULT, ADMIN_PASSWORD_DEFAULT, true); } diff --git a/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItMultiDomainModels.java b/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItMultiDomainModels.java index 87ae3f84449..2762c3a7719 100644 --- a/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItMultiDomainModels.java +++ b/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItMultiDomainModels.java @@ -7,6 +7,7 @@ import java.util.List; import oracle.weblogic.domain.Domain; +import oracle.weblogic.kubernetes.annotations.DisabledOnSlimImage; import oracle.weblogic.kubernetes.annotations.IntegrationTest; import oracle.weblogic.kubernetes.annotations.Namespaces; import oracle.weblogic.kubernetes.logging.LoggingFacade; @@ -23,7 +24,6 @@ import static oracle.weblogic.kubernetes.TestConstants.MII_BASIC_APP_NAME; 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.TestConstants.WEBLOGIC_SLIM; import static oracle.weblogic.kubernetes.actions.TestActions.getServiceNodePort; import static oracle.weblogic.kubernetes.assertions.TestAssertions.adminNodePortAccessible; import static oracle.weblogic.kubernetes.utils.CommonMiiTestUtils.createMiiDomainAndVerify; @@ -38,7 +38,6 @@ import static oracle.weblogic.kubernetes.utils.ThreadSafeLogger.getLogger; import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assumptions.assumeFalse; /** * The test class creates WebLogic domains with three models. @@ -111,9 +110,8 @@ public static void initAll(@Namespaces(4) List namespaces) { + "verify admin console login using admin node port.") @ValueSource(strings = {"modelInImage", "domainInImage", "domainOnPV"}) @Tag("gate") + @DisabledOnSlimImage void testScaleClustersAndAdminConsoleLogin(String domainType) { - - assumeFalse(WEBLOGIC_SLIM, "Skipping the Console Test for slim image"); Domain domain = createDomainBasedOnDomainType(domainType); // get the domain properties diff --git a/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItMultiDomainModelsWithLoadBalancer.java b/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItMultiDomainModelsWithLoadBalancer.java index 3abca6f2fec..31be7055b25 100644 --- a/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItMultiDomainModelsWithLoadBalancer.java +++ b/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItMultiDomainModelsWithLoadBalancer.java @@ -623,7 +623,8 @@ void testDataHomeOverrideDomainOnPV() { Domain domainOnPV = createOrStartDomainBasedOnDomainType("domainOnPV"); String domainUid = domainOnPV.getSpec().getDomainUid(); - String domainNamespace = domainOnPV.getMetadata().getNamespace(); + String domainNamespace = domainOnPV.getMetadata().getNamespace(); + String uniquePath = "/u01/shared/" + domainNamespace + "/domains/" + domainUid; // check in admin server pod, there is a data file for JMS server created in /u01/customFileStore String dataFileToCheck = "/u01/customFileStore/FILESTORE-0000000.DAT"; @@ -632,7 +633,7 @@ void testDataHomeOverrideDomainOnPV() { // check in admin server pod, the default admin server data file is in default data store String defaultAdminDataFile = - "/u01/shared/domains/" + domainUid + "/servers/admin-server/data/store/default/_WLS_ADMIN-SERVER000000.DAT"; + uniquePath + "/servers/admin-server/data/store/default/_WLS_ADMIN-SERVER000000.DAT"; waitForFileExistsInPod(domainNamespace, adminServerPodName, defaultAdminDataFile); // check in managed server pod, there is no custom data file for JMS is created @@ -646,7 +647,7 @@ void testDataHomeOverrideDomainOnPV() { String.format("found file %s in pod %s in namespace %s, expect not exist", customDataFile, managedServerPodName, domainNamespace)); - String defaultMSDataFile = "/u01/shared/domains/" + domainUid + "/servers/managed-server" + i + String defaultMSDataFile = uniquePath + "/servers/managed-server" + i + "/data/store/default/_WLS_MANAGED-SERVER" + i + "000000.DAT"; waitForFileExistsInPod(domainNamespace, managedServerPodName, defaultMSDataFile); } diff --git a/integration-tests/src/test/java/oracle/weblogic/kubernetes/annotations/DisabledOnSlimImage.java b/integration-tests/src/test/java/oracle/weblogic/kubernetes/annotations/DisabledOnSlimImage.java new file mode 100644 index 00000000000..f81f1b75321 --- /dev/null +++ b/integration-tests/src/test/java/oracle/weblogic/kubernetes/annotations/DisabledOnSlimImage.java @@ -0,0 +1,19 @@ +// Copyright (c) 2022, 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.annotations; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +import oracle.weblogic.kubernetes.extensions.DisabledOnSlimImageCondition; +import org.junit.jupiter.api.extension.ExtendWith; + +@Target({ElementType.TYPE, ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +@ExtendWith(DisabledOnSlimImageCondition.class) +public @interface DisabledOnSlimImage { + +} \ No newline at end of file diff --git a/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/DisabledOnSlimImageCondition.java b/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/DisabledOnSlimImageCondition.java new file mode 100644 index 00000000000..2fafe18bc06 --- /dev/null +++ b/integration-tests/src/test/java/oracle/weblogic/kubernetes/extensions/DisabledOnSlimImageCondition.java @@ -0,0 +1,22 @@ +// Copyright (c) 2022, 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.extensions; + +import org.junit.jupiter.api.extension.ConditionEvaluationResult; +import org.junit.jupiter.api.extension.ExecutionCondition; +import org.junit.jupiter.api.extension.ExtensionContext; + +import static oracle.weblogic.kubernetes.TestConstants.WEBLOGIC_SLIM; + +public class DisabledOnSlimImageCondition implements ExecutionCondition { + + @Override + public ConditionEvaluationResult evaluateExecutionCondition(ExtensionContext context) { + if (WEBLOGIC_SLIM) { + return ConditionEvaluationResult.disabled("Test disabled on WebLogic slim image"); + } else { + return ConditionEvaluationResult.enabled("Test enabled on full WebLogic image"); + } + } +} \ No newline at end of file From 7faf3842590ae00d7fe769663c0ae22891affb7f Mon Sep 17 00:00:00 2001 From: Sankar Neelakandan Date: Mon, 16 May 2022 13:45:32 -0700 Subject: [PATCH 2/4] port pr https://github.com/oracle/weblogic-kubernetes-operator/pull/3057 from release/3.4 --- integration-tests/pom.xml | 45 ------------------- .../ItConfigDistributionStrategy.java | 10 +++-- .../kubernetes/ItFmwDomainInPVUsingWDT.java | 2 +- .../kubernetes/ItFmwDomainInPVUsingWLST.java | 8 ++-- .../kubernetes/ItIntrospectVersion.java | 11 ++--- .../kubernetes/ItKubernetesDomainEvents.java | 2 +- .../kubernetes/ItSystemResOverrides.java | 9 ++-- .../actions/impl/WebLogicRemoteConsole.java | 7 ++- .../kubernetes/utils/CommonMiiTestUtils.java | 5 ++- .../kubernetes/utils/DomainUtils.java | 9 ++-- 10 files changed, 39 insertions(+), 69 deletions(-) diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml index f8f24f618cd..40e5bbc04f2 100644 --- a/integration-tests/pom.xml +++ b/integration-tests/pom.xml @@ -498,51 +498,6 @@ **/ItMonitoringExporterSideCar, **/ItMonitoringExporterSamples, **/ItUsabilityOperatorHelmChart - **/ItCrossDomainTransaction, - **/ItCoherenceTests, - **/ItConfigDistributionStrategy, - **/ItDedicatedMode, - **/ItDiagnosticsCompleteAvailableCondition, - **/ItDiagnosticsFailedCondition, - **/ItElasticLogging, - **/ItElasticLoggingFluentd, - **/ItExternalLbTunneling, - **/ItExternalNodePortService, - **/ItInitContainers, - **/ItIntrospectVersion, - **/ItLiftAndShiftFromOnPremDomain, - **/ItLivenessProbeCustomization, - **/ItManagedCoherence, - **/ItManageNameSpace, - **/ItMiiAuxiliaryImage, - **/ItMiiAuxiliaryImageCluster, - **/ItMiiCustomSslStore, - **/ItMiiDomain, - **/ItMiiDomainModelInPV, - **/ItMiiDynamicUpdate*, - **/ItMiiMultiModel, - **/ItMiiNewCreateAuxImage, - **/ItMiiSampleWlsAux, - **/ItMiiSampleWlsMain, - **/ItMiiServiceMigration, - **/ItMiiUpdateDomainConfig, - **/ItOperatorRestart, - **/ItParameterizedDomain, - **/ItPodsRestart, - **/ItPodsShutdownOption, - **/ItPodTemplates, - **/ItProductionSecureMode, - */ItRemoteConsole, - **/ItServerStartPolicy, - **/ItServiceStartPolicyDynamicCluster, - **/ItServerStartPolicyConfigCluster, - **/ItSessionMigration, - **/ItStickySession, - **/ItSystemResOverrides, - **/ItMonitoringExporterWebApp, - **/ItMonitoringExporterSideCar, - **/ItMonitoringExporterSamples, - **/ItUsabilityOperatorHelmChart diff --git a/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItConfigDistributionStrategy.java b/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItConfigDistributionStrategy.java index 422852d0061..53107a16481 100644 --- a/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItConfigDistributionStrategy.java +++ b/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItConfigDistributionStrategy.java @@ -833,6 +833,8 @@ private void verifyIntrospectorRuns() { //create a standard WebLogic domain. private void createDomain() { + + String uniquePath = "/shared/" + domainNamespace + "/domains"; // create WebLogic domain credential secret createSecretWithUsernamePassword(wlSecretName, domainNamespace, @@ -848,7 +850,7 @@ private void createDomain() { -> File.createTempFile("domain", ".properties"), "Failed to create domain properties file"); Properties p = new Properties(); - p.setProperty("domain_path", "/shared/domains"); + p.setProperty("domain_path", uniquePath); p.setProperty("domain_name", domainUid); p.setProperty("cluster_name", clusterName); p.setProperty("admin_server_name", adminServerName); @@ -860,7 +862,7 @@ private void createDomain() { p.setProperty("admin_t3_channel_port", Integer.toString(t3ChannelPort)); p.setProperty("number_of_ms", "2"); p.setProperty("managed_server_name_base", managedServerNameBase); - p.setProperty("domain_logs", "/shared/logs"); + p.setProperty("domain_logs", uniquePath + "/logs"); p.setProperty("production_mode_enabled", "true"); assertDoesNotThrow(() -> p.store(new FileOutputStream(domainPropertiesFile), "domain properties file"), @@ -886,7 +888,7 @@ private void createDomain() { .overrideDistributionStrategy("DYNAMIC") .introspectorJobActiveDeadlineSeconds(300L)) .domainUid(domainUid) - .domainHome("/shared/domains/" + domainUid) // point to domain home in pv + .domainHome(uniquePath + "/" + domainUid) // point to domain home in pv .domainHomeSourceType("PersistentVolume") // set the domain home source type as pv .image(WEBLOGIC_IMAGE_TO_USE_IN_SPEC) .imagePullPolicy(V1Container.ImagePullPolicyEnum.IFNOTPRESENT) @@ -898,7 +900,7 @@ private void createDomain() { .namespace(domainNamespace)) .includeServerOutInPodLog(true) .logHomeEnabled(Boolean.TRUE) - .logHome("/shared/logs/" + domainUid) + .logHome(uniquePath + "/logs/" + domainUid) .dataHome("") .serverStartPolicy("IF_NEEDED") .serverPod(new ServerPod() //serverpod diff --git a/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItFmwDomainInPVUsingWDT.java b/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItFmwDomainInPVUsingWDT.java index b4fda4d526d..643500699a8 100644 --- a/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItFmwDomainInPVUsingWDT.java +++ b/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItFmwDomainInPVUsingWDT.java @@ -73,7 +73,7 @@ class ItFmwDomainInPVUsingWDT { private static final String RCUSCHEMAUSERNAME = "myrcuuser"; private static final String RCUSCHEMAPASSWORD = "Oradoc_db1"; - private static final String DOMAINHOMEPREFIX = "/shared/domains/"; + private static final String DOMAINHOMEPREFIX = "/shared/" + domainNamespace + "/domains/"; private static String dbUrl = null; private static LoggingFacade logger = null; diff --git a/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItFmwDomainInPVUsingWLST.java b/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItFmwDomainInPVUsingWLST.java index 705a96ab8ca..6c8da5daedb 100644 --- a/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItFmwDomainInPVUsingWLST.java +++ b/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItFmwDomainInPVUsingWLST.java @@ -184,11 +184,13 @@ void testFmwDomainInPvUsingWlst() { "envVar JAVA_HOME from image is null"); java_home = getImageEnvVar(FMWINFRA_IMAGE_TO_USE_IN_SPEC, "JAVA_HOME"); logger.info("JAVA_HOME in image {0} is: {1}", FMWINFRA_IMAGE_TO_USE_IN_SPEC, java_home); + + String uniquePath = "/shared/" + jrfDomainNamespace + "/domains/"; Properties p = new Properties(); p.setProperty("oracleHome", oracle_home); //default $ORACLE_HOME p.setProperty("javaHome", java_home); //default $JAVA_HOME - p.setProperty("domainParentDir", "/shared/domains/"); + p.setProperty("domainParentDir", uniquePath); p.setProperty("domainName", domainUid); p.setProperty("domainUser", ADMIN_USERNAME_DEFAULT); p.setProperty("domainPassword", ADMIN_PASSWORD_DEFAULT); @@ -227,7 +229,7 @@ void testFmwDomainInPvUsingWlst() { .namespace(jrfDomainNamespace)) .spec(new DomainSpec() .domainUid(domainUid) - .domainHome("/shared/domains/" + domainUid) // point to domain home in pv + .domainHome(uniquePath + domainUid) // point to domain home in pv .domainHomeSourceType("PersistentVolume") // set the domain home source type as pv .image(FMWINFRA_IMAGE_TO_USE_IN_SPEC) .imagePullPolicy(V1Container.ImagePullPolicyEnum.IFNOTPRESENT) @@ -239,7 +241,7 @@ void testFmwDomainInPvUsingWlst() { .namespace(jrfDomainNamespace)) .includeServerOutInPodLog(true) .logHomeEnabled(Boolean.TRUE) - .logHome("/shared/logs/" + domainUid) + .logHome(uniquePath + "logs/" + domainUid) .dataHome("") .serverStartPolicy("IF_NEEDED") .serverPod(new ServerPod() //serverpod diff --git a/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItIntrospectVersion.java b/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItIntrospectVersion.java index 7eb6630e979..a2900597dff 100644 --- a/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItIntrospectVersion.java +++ b/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItIntrospectVersion.java @@ -983,7 +983,8 @@ void testIntrospectDomainScript() { verifyPodsNotRolled(introDomainNamespace, pods); } - private static void createDomain() { + private static void createDomain() { + String uniquePath = "/shared/" + introDomainNamespace + "/domains"; // create WebLogic domain credential secret createSecretWithUsernamePassword(wlSecretName, introDomainNamespace, @@ -996,7 +997,7 @@ private static void createDomain() { File.createTempFile("domain", "properties"), "Failed to create domain properties file"); Properties p = new Properties(); - p.setProperty("domain_path", "/shared/domains"); + p.setProperty("domain_path", uniquePath); p.setProperty("domain_name", domainUid); p.setProperty("cluster_name", cluster1Name); p.setProperty("admin_server_name", adminServerName); @@ -1008,7 +1009,7 @@ private static void createDomain() { p.setProperty("admin_t3_channel_port", Integer.toString(t3ChannelPort)); p.setProperty("number_of_ms", "2"); // maximum number of servers in cluster p.setProperty("managed_server_name_base", cluster1ManagedServerNameBase); - p.setProperty("domain_logs", "/shared/logs"); + p.setProperty("domain_logs", uniquePath + "/logs"); p.setProperty("production_mode_enabled", "true"); assertDoesNotThrow(() -> p.store(new FileOutputStream(domainPropertiesFile), "domain properties file"), @@ -1031,7 +1032,7 @@ private static void createDomain() { .namespace(introDomainNamespace)) .spec(new DomainSpec() .domainUid(domainUid) - .domainHome("/shared/domains/" + domainUid) // point to domain home in pv + .domainHome(uniquePath + "/" + domainUid) // point to domain home in pv .domainHomeSourceType("PersistentVolume") // set the domain home source type as pv .image(WEBLOGIC_IMAGE_TO_USE_IN_SPEC) .imagePullPolicy(V1Container.ImagePullPolicyEnum.IFNOTPRESENT) @@ -1040,7 +1041,7 @@ private static void createDomain() { .namespace(introDomainNamespace)) .includeServerOutInPodLog(true) .logHomeEnabled(Boolean.TRUE) - .logHome("/shared/logs/" + domainUid) + .logHome(uniquePath + "/logs/" + domainUid) .dataHome("") .serverStartPolicy("IF_NEEDED") .serverPod(new ServerPod() //serverpod diff --git a/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItKubernetesDomainEvents.java b/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItKubernetesDomainEvents.java index 41522aef734..07c0bfc6c52 100644 --- a/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItKubernetesDomainEvents.java +++ b/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItKubernetesDomainEvents.java @@ -532,7 +532,7 @@ void testLogHomeChangeEvents() { Map podsWithTimeStamps = getPodsWithTimeStamps(domainNamespace3, adminServerPodName, managedServerPodNamePrefix, replicaCount); - String newLogHome = "/shared/" + domainNamespace3 + "/domains/logHome"; + String newLogHome = "/shared/" + domainNamespace3 + "/domains/logHome/" + domainUid; //print out the original image name String logHome = domain1.getSpec().getLogHome(); logger.info("Changing the current log home used by the domain : {0} to {1}", logHome, newLogHome); diff --git a/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItSystemResOverrides.java b/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItSystemResOverrides.java index 7ef3e0e1ea0..13d5ef598f3 100644 --- a/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItSystemResOverrides.java +++ b/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItSystemResOverrides.java @@ -307,6 +307,7 @@ private void verifyIntrospectorRuns() { //create a standard WebLogic domain. private void createDomain() { + String uniquePath = "/shared/" + domainNamespace + "/domains"; // create WebLogic domain credential secret createSecretWithUsernamePassword(wlSecretName, domainNamespace, @@ -322,7 +323,7 @@ private void createDomain() { -> File.createTempFile("domain", ".properties"), "Failed to create domain properties file"); Properties p = new Properties(); - p.setProperty("domain_path", "/shared/domains"); + p.setProperty("domain_path", uniquePath); p.setProperty("domain_name", domainUid); p.setProperty("cluster_name", clusterName); p.setProperty("admin_server_name", adminServerName); @@ -334,7 +335,7 @@ private void createDomain() { p.setProperty("admin_t3_channel_port", Integer.toString(t3ChannelPort)); p.setProperty("number_of_ms", "2"); p.setProperty("managed_server_name_base", managedServerNameBase); - p.setProperty("domain_logs", "/shared/logs"); + p.setProperty("domain_logs", uniquePath + "/logs"); p.setProperty("production_mode_enabled", "true"); assertDoesNotThrow(() -> p.store(new FileOutputStream(domainPropertiesFile), "domain properties file"), @@ -359,7 +360,7 @@ private void createDomain() { .configuration(new Configuration() .overrideDistributionStrategy("DYNAMIC")) .domainUid(domainUid) - .domainHome("/shared/domains/" + domainUid) // point to domain home in pv + .domainHome(uniquePath + "/" + domainUid) // point to domain home in pv .domainHomeSourceType("PersistentVolume") // set the domain home source type as pv .image(WEBLOGIC_IMAGE_TO_USE_IN_SPEC) .imagePullPolicy(V1Container.ImagePullPolicyEnum.IFNOTPRESENT) @@ -371,7 +372,7 @@ private void createDomain() { .namespace(domainNamespace)) .includeServerOutInPodLog(true) .logHomeEnabled(Boolean.TRUE) - .logHome("/shared/logs/" + domainUid) + .logHome(uniquePath + "/logs/" + domainUid) .dataHome("") .serverStartPolicy("IF_NEEDED") .serverPod(new ServerPod() //serverpod diff --git a/integration-tests/src/test/java/oracle/weblogic/kubernetes/actions/impl/WebLogicRemoteConsole.java b/integration-tests/src/test/java/oracle/weblogic/kubernetes/actions/impl/WebLogicRemoteConsole.java index f08dbbd43fa..ef5045e421b 100644 --- a/integration-tests/src/test/java/oracle/weblogic/kubernetes/actions/impl/WebLogicRemoteConsole.java +++ b/integration-tests/src/test/java/oracle/weblogic/kubernetes/actions/impl/WebLogicRemoteConsole.java @@ -13,6 +13,7 @@ import static oracle.weblogic.kubernetes.actions.ActionConstants.WORK_DIR; import static oracle.weblogic.kubernetes.actions.impl.primitive.Installer.defaultInstallRemoteconsoleParams; import static oracle.weblogic.kubernetes.utils.ApplicationUtils.callWebAppAndWaitTillReady; +import static oracle.weblogic.kubernetes.utils.CommonTestUtils.testUntil; import static oracle.weblogic.kubernetes.utils.ExecCommand.exec; import static oracle.weblogic.kubernetes.utils.FileUtils.copyFileFromPod; import static oracle.weblogic.kubernetes.utils.ThreadSafeLogger.getLogger; @@ -103,7 +104,11 @@ private static boolean accessRemoteconsole() { + " --write-out %{http_code} -o /dev/null"; logger.info("Executing curl command {0}", curlCmd); - return callWebAppAndWaitTillReady(curlCmd, 10); + testUntil((() -> { + return callWebAppAndWaitTillReady(curlCmd, 1); + }), logger, "Waiting for remote console access to return 200 status code"); + + return true; } diff --git a/integration-tests/src/test/java/oracle/weblogic/kubernetes/utils/CommonMiiTestUtils.java b/integration-tests/src/test/java/oracle/weblogic/kubernetes/utils/CommonMiiTestUtils.java index 867428cd876..172b17dacb9 100644 --- a/integration-tests/src/test/java/oracle/weblogic/kubernetes/utils/CommonMiiTestUtils.java +++ b/integration-tests/src/test/java/oracle/weblogic/kubernetes/utils/CommonMiiTestUtils.java @@ -686,6 +686,7 @@ public static Domain createDomainResourceWithLogHome( securityList.add(dbSecretName); } + String uniquePath = "/shared/" + domNamespace + "/" + domainResourceName; DomainSpec domainSpec = new DomainSpec() .domainUid(domainResourceName) .domainHomeSourceType("FromModel") @@ -698,7 +699,7 @@ public static Domain createDomainResourceWithLogHome( .namespace(domNamespace)) .includeServerOutInPodLog(true) .logHomeEnabled(Boolean.TRUE) - .logHome("/shared/logs") + .logHome(uniquePath + "/logs") .serverStartPolicy("IF_NEEDED") .serverPod(new ServerPod() .addEnvItem(new V1EnvVar() @@ -735,7 +736,7 @@ public static Domain createDomainResourceWithLogHome( .introspectorJobActiveDeadlineSeconds(300L)); if (setDataHome) { - domainSpec.dataHome("/shared/data"); + domainSpec.dataHome(uniquePath + "/data"); } // create the domain CR Domain domain = new Domain() diff --git a/integration-tests/src/test/java/oracle/weblogic/kubernetes/utils/DomainUtils.java b/integration-tests/src/test/java/oracle/weblogic/kubernetes/utils/DomainUtils.java index d301a28a64c..1f00d5f4168 100644 --- a/integration-tests/src/test/java/oracle/weblogic/kubernetes/utils/DomainUtils.java +++ b/integration-tests/src/test/java/oracle/weblogic/kubernetes/utils/DomainUtils.java @@ -587,6 +587,7 @@ public static Domain createDomainResourceForDomainOnPV(String domainUid, String pvcName, String clusterName, int replicaCount) { + String uniquePath = "/u01/shared/" + domainNamespace + "/domains/" + domainUid; // create the domain custom resource getLogger().info("Creating domain custom resource"); Domain domain = new Domain() @@ -597,7 +598,7 @@ public static Domain createDomainResourceForDomainOnPV(String domainUid, .namespace(domainNamespace)) .spec(new DomainSpec() .domainUid(domainUid) - .domainHome("/u01/shared/domains/" + domainUid) + .domainHome(uniquePath) .domainHomeSourceType("PersistentVolume") .image(WEBLOGIC_IMAGE_TO_USE_IN_SPEC) .imagePullPolicy(V1Container.ImagePullPolicyEnum.IFNOTPRESENT) @@ -609,7 +610,7 @@ public static Domain createDomainResourceForDomainOnPV(String domainUid, .namespace(domainNamespace)) .includeServerOutInPodLog(true) .logHomeEnabled(Boolean.TRUE) - .logHome("/u01/shared/logs/" + domainUid) + .logHome(uniquePath + "/logs") .dataHome("") .serverStartPolicy("IF_NEEDED") .serverPod(new ServerPod() @@ -670,6 +671,8 @@ private static void runCreateDomainOnPVJobUsingWdt(Path domainCreationScriptFile domainScriptFiles.add(domainCreationScriptFile); domainScriptFiles.add(domainPropertiesFile); domainScriptFiles.add(modelFile); + + String uniquePath = "/u01/shared/" + namespace + "/domains/" + domainUid; getLogger().info("Creating a config map to hold domain creation scripts"); String domainScriptConfigMapName = "create-domain-scripts-cm-" + testClassName.toLowerCase(); @@ -695,7 +698,7 @@ private static void runCreateDomainOnPVJobUsingWdt(Path domainCreationScriptFile .value("/u01/shared/wdt")) .addEnvItem(new V1EnvVar() .name("DOMAIN_HOME_DIR") - .value("/u01/shared/domains/" + domainUid)); + .value(uniquePath)); if (HTTP_PROXY != null) { jobCreationContainer.addEnvItem(new V1EnvVar().name("http_proxy").value(HTTP_PROXY)); From a1bef40da0135ef1365b24ec8252555154a178aa Mon Sep 17 00:00:00 2001 From: Sankar Neelakandan Date: Mon, 16 May 2022 13:55:58 -0700 Subject: [PATCH 3/4] port pr https://github.com/oracle/weblogic-kubernetes-operator/pull/3072 from release/3.4 --- .../oracle/weblogic/kubernetes/ItMiiDynamicUpdatePart3.java | 5 ++++- .../java/oracle/weblogic/kubernetes/ItRemoteConsole.java | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItMiiDynamicUpdatePart3.java b/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItMiiDynamicUpdatePart3.java index 0b2093c67ff..a506a5b8163 100644 --- a/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItMiiDynamicUpdatePart3.java +++ b/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItMiiDynamicUpdatePart3.java @@ -26,6 +26,7 @@ import static oracle.weblogic.kubernetes.TestConstants.MII_DYNAMIC_UPDATE_EXPECTED_ERROR_MSG; import static oracle.weblogic.kubernetes.TestConstants.OPERATOR_RELEASE_NAME; +import static oracle.weblogic.kubernetes.TestConstants.WEBLOGIC_SLIM; import static oracle.weblogic.kubernetes.TestConstants.WEBLOGIC_VERSION; import static oracle.weblogic.kubernetes.actions.ActionConstants.MODEL_DIR; import static oracle.weblogic.kubernetes.actions.ActionConstants.WORK_DIR; @@ -259,7 +260,9 @@ void testOperatorLogIntrospectorMsg() { String operatorPodLog = assertDoesNotThrow(() -> getPodLog(operatorPodName, helper.opNamespace)); logger.info("operator pod log: {0}", operatorPodLog); assertTrue(operatorPodLog.contains("Introspector Job Log")); - assertTrue(operatorPodLog.contains("WebLogic version='" + WEBLOGIC_VERSION + "'")); + if (!WEBLOGIC_SLIM) { + assertTrue(operatorPodLog.contains("WebLogic version='" + WEBLOGIC_VERSION + "'")); + } assertTrue(operatorPodLog.contains("Job " + domainUid + "-introspector has failed")); assertTrue(operatorPodLog.contains(MII_DYNAMIC_UPDATE_EXPECTED_ERROR_MSG)); } diff --git a/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItRemoteConsole.java b/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItRemoteConsole.java index cc78c42d0c3..3689f1c7025 100644 --- a/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItRemoteConsole.java +++ b/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItRemoteConsole.java @@ -19,6 +19,7 @@ import io.kubernetes.client.openapi.models.V1ServiceBackendPort; import oracle.weblogic.kubernetes.actions.impl.NginxParams; import oracle.weblogic.kubernetes.actions.impl.primitive.HelmParams; +import oracle.weblogic.kubernetes.annotations.DisabledOnSlimImage; import oracle.weblogic.kubernetes.annotations.IntegrationTest; import oracle.weblogic.kubernetes.annotations.Namespaces; import oracle.weblogic.kubernetes.logging.LoggingFacade; @@ -73,6 +74,7 @@ @DisplayName("Test WebLogic remote console connecting to mii domain") @IntegrationTest +@DisabledOnSlimImage class ItRemoteConsole { private static String domainNamespace = null; From 1eaad9762a2616b7e113c7438e244b41a0bee10c Mon Sep 17 00:00:00 2001 From: Sankar Neelakandan Date: Mon, 16 May 2022 13:59:39 -0700 Subject: [PATCH 4/4] port pr https://github.com/oracle/weblogic-kubernetes-operator/pull/3075 from release/3.4 --- .../weblogic/kubernetes/ItExternalLbTunneling.java | 12 ++---------- .../kubernetes/ItExternalNodePortService.java | 6 ++---- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItExternalLbTunneling.java b/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItExternalLbTunneling.java index fbb47a016f4..038ef1b5ac4 100644 --- a/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItExternalLbTunneling.java +++ b/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItExternalLbTunneling.java @@ -28,6 +28,7 @@ import oracle.weblogic.kubernetes.actions.impl.primitive.Command; import oracle.weblogic.kubernetes.actions.impl.primitive.CommandParams; import oracle.weblogic.kubernetes.actions.impl.primitive.HelmParams; +import oracle.weblogic.kubernetes.annotations.DisabledOnSlimImage; import oracle.weblogic.kubernetes.annotations.IntegrationTest; import oracle.weblogic.kubernetes.annotations.Namespaces; import oracle.weblogic.kubernetes.logging.LoggingFacade; @@ -54,7 +55,6 @@ import static oracle.weblogic.kubernetes.TestConstants.RESULTS_ROOT; import static oracle.weblogic.kubernetes.TestConstants.SKIP_CLEANUP; import static oracle.weblogic.kubernetes.TestConstants.TRAEFIK_RELEASE_NAME; -import static oracle.weblogic.kubernetes.TestConstants.WEBLOGIC_SLIM; import static oracle.weblogic.kubernetes.actions.ActionConstants.RESOURCE_DIR; import static oracle.weblogic.kubernetes.actions.TestActions.createDomainCustomResource; import static oracle.weblogic.kubernetes.actions.TestActions.getServiceNodePort; @@ -86,7 +86,6 @@ import static org.junit.jupiter.api.Assertions.assertNotEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.junit.jupiter.api.Assumptions.assumeFalse; /** * The use case described in this class verifies that an external RMI client @@ -108,6 +107,7 @@ @DisplayName("Test external RMI access through loadbalncer tunneling") @IntegrationTest +@DisabledOnSlimImage class ItExternalLbTunneling { private static String opNamespace = null; @@ -251,8 +251,6 @@ public void beforeEach() { @Test @DisplayName("Verify RMI access to WLS through Traefik LoadBalancer") void testExternalRmiAccessThruTraefik() { - - assumeFalse(WEBLOGIC_SLIM, "Skipping RMI Tunnelling Test for slim image"); // Build the standalone JMS Client to send and receive messages buildClient(); buildClientOnPod(); @@ -311,8 +309,6 @@ void testExternalRmiAccessThruTraefik() { @DisplayName("Verify tls RMI access WLS through Traefik loadBalancer") void testExternalRmiAccessThruTraefikHttpsTunneling() { - assumeFalse(WEBLOGIC_SLIM, "Skipping RMI Tunnelling Test for slim image"); - // Build the standalone JMS Client to send and receive messages buildClient(); @@ -360,8 +356,6 @@ void testExternalRmiAccessThruTraefikHttpsTunneling() { @Test @DisplayName("Verify RMI access WLS through Route in OKD ") void testExternalRmiAccessThruRouteHttpTunneling() { - - assumeFalse(WEBLOGIC_SLIM, "Skipping RMI Tunnelling Test for slim image"); logger.info("Installing Nginx controller using helm"); // Build the standalone JMS Client to send and receive messages @@ -393,8 +387,6 @@ void testExternalRmiAccessThruRouteHttpTunneling() { @DisplayName("Verify tls RMI access WLS through Route in OKD ") void testExternalRmiAccessThruRouteHttpsTunneling() { - assumeFalse(WEBLOGIC_SLIM, "Skipping RMI Tunnelling Test for slim image"); - // Build the standalone JMS Client to send and receive messages buildClient(); diff --git a/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItExternalNodePortService.java b/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItExternalNodePortService.java index 9ea2ca68e2b..451ef551409 100644 --- a/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItExternalNodePortService.java +++ b/integration-tests/src/test/java/oracle/weblogic/kubernetes/ItExternalNodePortService.java @@ -24,6 +24,7 @@ import oracle.weblogic.domain.DomainSpec; import oracle.weblogic.domain.Model; import oracle.weblogic.domain.ServerPod; +import oracle.weblogic.kubernetes.annotations.DisabledOnSlimImage; import oracle.weblogic.kubernetes.annotations.IntegrationTest; import oracle.weblogic.kubernetes.annotations.Namespaces; import oracle.weblogic.kubernetes.logging.LoggingFacade; @@ -47,7 +48,6 @@ import static oracle.weblogic.kubernetes.TestConstants.OCIR_SECRET_NAME; import static oracle.weblogic.kubernetes.TestConstants.RESULTS_ROOT; import static oracle.weblogic.kubernetes.TestConstants.SKIP_CLEANUP; -import static oracle.weblogic.kubernetes.TestConstants.WEBLOGIC_SLIM; import static oracle.weblogic.kubernetes.actions.ActionConstants.RESOURCE_DIR; import static oracle.weblogic.kubernetes.actions.TestActions.createDomainCustomResource; import static oracle.weblogic.kubernetes.actions.TestActions.getServiceNodePort; @@ -73,7 +73,6 @@ import static org.junit.jupiter.api.Assertions.assertNotEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.junit.jupiter.api.Assumptions.assumeFalse; /** * The use case verifies external RMI client access to WebLogic cluster. @@ -92,6 +91,7 @@ @TestMethodOrder(MethodOrderer.OrderAnnotation.class) @DisplayName("Test external RMI access through NodePort tunneling") @IntegrationTest +@DisabledOnSlimImage class ItExternalNodePortService { private static String opNamespace = null; @@ -206,8 +206,6 @@ public void beforeEach() { @Test @DisplayName("Verify RMI access to WLS through NodePort Service") void testExternalRmiAccessThruNodePortService() { - - assumeFalse(WEBLOGIC_SLIM, "Skipping RMI Tunnelling Test for slim image"); // Build the standalone JMS Client to send and receive messages buildClient(); buildClientOnPod();