Skip to content

Commit 46cb68c

Browse files
committed
Merge branch 'okeconv42' into 'release/4.2'
Backport changes for Converted DBOperator tests from external to internal run in OKE See merge request weblogic-cloud/weblogic-kubernetes-operator!4742
2 parents 934587e + 1df2aa8 commit 46cb68c

9 files changed

+147
-99
lines changed

Jenkinsfile.oke

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ pipeline {
141141
)
142142
string(name: 'NODE_SHAPE',
143143
description: '',
144-
defaultValue: "VM.Standard.E3.Flex"
144+
defaultValue: "VM.Standard.E4.Flex"
145145
)
146146
string(name: 'MOUNT_TARGET_OCID',
147147
description: 'only for debug runs on wko-oke-dev',

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

Lines changed: 70 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,10 @@
1515
import io.kubernetes.client.openapi.models.V1LocalObjectReference;
1616
import oracle.weblogic.domain.ClusterResource;
1717
import oracle.weblogic.domain.DomainResource;
18+
import oracle.weblogic.kubernetes.actions.impl.TraefikParams;
1819
import oracle.weblogic.kubernetes.actions.impl.primitive.Command;
1920
import oracle.weblogic.kubernetes.actions.impl.primitive.CommandParams;
21+
import oracle.weblogic.kubernetes.actions.impl.primitive.HelmParams;
2022
import oracle.weblogic.kubernetes.annotations.IntegrationTest;
2123
import oracle.weblogic.kubernetes.annotations.Namespaces;
2224
import oracle.weblogic.kubernetes.logging.LoggingFacade;
@@ -41,18 +43,18 @@
4143
import static oracle.weblogic.kubernetes.TestConstants.MII_BASIC_APP_NAME;
4244
import static oracle.weblogic.kubernetes.TestConstants.MII_BASIC_IMAGE_NAME;
4345
import static oracle.weblogic.kubernetes.TestConstants.MII_BASIC_IMAGE_TAG;
46+
import static oracle.weblogic.kubernetes.TestConstants.OKE_CLUSTER_PRIVATEIP;
4447
import static oracle.weblogic.kubernetes.TestConstants.SKIP_CLEANUP;
4548
import static oracle.weblogic.kubernetes.TestConstants.TEST_IMAGES_REPO_SECRET_NAME;
46-
import static oracle.weblogic.kubernetes.TestConstants.TRAEFIK_INGRESS_HTTP_HOSTPORT;
4749
import static oracle.weblogic.kubernetes.actions.ActionConstants.ITTESTS_DIR;
4850
import static oracle.weblogic.kubernetes.actions.ActionConstants.MODEL_DIR;
4951
import static oracle.weblogic.kubernetes.actions.ActionConstants.RESOURCE_DIR;
5052
import static oracle.weblogic.kubernetes.actions.ActionConstants.WORK_DIR;
5153
import static oracle.weblogic.kubernetes.actions.TestActions.createDomainCustomResource;
5254
import static oracle.weblogic.kubernetes.actions.TestActions.execCommand;
53-
import static oracle.weblogic.kubernetes.actions.TestActions.getServiceNodePort;
5455
import static oracle.weblogic.kubernetes.actions.TestActions.patchDomainCustomResource;
5556
import static oracle.weblogic.kubernetes.actions.TestActions.scaleCluster;
57+
import static oracle.weblogic.kubernetes.actions.TestActions.uninstallTraefik;
5658
import static oracle.weblogic.kubernetes.actions.impl.primitive.Command.defaultCommandParams;
5759
import static oracle.weblogic.kubernetes.assertions.TestAssertions.domainExists;
5860
import static oracle.weblogic.kubernetes.utils.ClusterUtils.createClusterAndVerify;
@@ -61,9 +63,9 @@
6163
import static oracle.weblogic.kubernetes.utils.CommonMiiTestUtils.createDomainResourceWithLogHome;
6264
import static oracle.weblogic.kubernetes.utils.CommonMiiTestUtils.createDomainSecret;
6365
import static oracle.weblogic.kubernetes.utils.CommonMiiTestUtils.createJobToChangePermissionsOnPvHostPath;
66+
import static oracle.weblogic.kubernetes.utils.CommonMiiTestUtils.readRuntimeResource;
6467
import static oracle.weblogic.kubernetes.utils.CommonTestUtils.checkPodReadyAndServiceExists;
6568
import static oracle.weblogic.kubernetes.utils.CommonTestUtils.createIngressHostRouting;
66-
import static oracle.weblogic.kubernetes.utils.CommonTestUtils.getHostAndPort;
6769
import static oracle.weblogic.kubernetes.utils.CommonTestUtils.getUniqueName;
6870
import static oracle.weblogic.kubernetes.utils.CommonTestUtils.runClientInsidePod;
6971
import static oracle.weblogic.kubernetes.utils.CommonTestUtils.runJavacInsidePod;
@@ -74,14 +76,14 @@
7476
import static oracle.weblogic.kubernetes.utils.DbUtils.createRcuSchema;
7577
import static oracle.weblogic.kubernetes.utils.DbUtils.deleteOracleDB;
7678
import static oracle.weblogic.kubernetes.utils.DomainUtils.createDomainAndVerify;
77-
import static oracle.weblogic.kubernetes.utils.ExecCommand.exec;
7879
import static oracle.weblogic.kubernetes.utils.FileUtils.copyFileToPod;
7980
import static oracle.weblogic.kubernetes.utils.FmwUtils.verifyDomainReady;
8081
import static oracle.weblogic.kubernetes.utils.FmwUtils.verifyEMconsoleAccess;
8182
import static oracle.weblogic.kubernetes.utils.ImageUtils.createBaseRepoSecret;
8283
import static oracle.weblogic.kubernetes.utils.ImageUtils.createMiiImageAndVerify;
8384
import static oracle.weblogic.kubernetes.utils.ImageUtils.createTestRepoSecret;
8485
import static oracle.weblogic.kubernetes.utils.ImageUtils.imageRepoLoginAndPushImageToRegistry;
86+
import static oracle.weblogic.kubernetes.utils.LoadBalancerUtils.installAndVerifyTraefik;
8587
import static oracle.weblogic.kubernetes.utils.OKDUtils.createRouteForOKD;
8688
import static oracle.weblogic.kubernetes.utils.OperatorUtils.installAndVerifyOperator;
8789
import static oracle.weblogic.kubernetes.utils.PatchDomainUtils.patchDomainResourceServerStartPolicy;
@@ -93,6 +95,7 @@
9395
import static oracle.weblogic.kubernetes.utils.SecretUtils.createOpsswalletpasswordSecret;
9496
import static oracle.weblogic.kubernetes.utils.SecretUtils.createSecretWithUsernamePassword;
9597
import static oracle.weblogic.kubernetes.utils.ThreadSafeLogger.getLogger;
98+
import static org.assertj.core.api.Assertions.assertThat;
9699
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
97100
import static org.junit.jupiter.api.Assertions.assertEquals;
98101
import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -106,14 +109,15 @@
106109
@DisplayName("Test to create FMW model in image domain and WebLogic domain using Oracle "
107110
+ "database created using Oracle Database Operator")
108111
@IntegrationTest
109-
@Tag("oke-sequential")
112+
@Tag("oke-gate")
110113
@Tag("kind-parallel")
111114
class ItDBOperator {
112115

113116
private static String dbNamespace = null;
114117
private static String opNamespace = null;
115118
private static String fmwDomainNamespace = null;
116119
private static String wlsDomainNamespace = null;
120+
private static String traefikNamespace = null;
117121
private static String fmwMiiImage = null;
118122

119123
private static final String RCUSCHEMAPREFIX = "FMWDOMAINMII";
@@ -124,6 +128,7 @@ class ItDBOperator {
124128
private static String dbUrl = null;
125129
private static String dbName = "my-oracle-sidb";
126130
private static LoggingFacade logger = null;
131+
private static HelmParams traefikHelmParams;
127132

128133
private String fmwDomainUid = "fmwdomain-mii-db";
129134
private String adminServerName = "admin-server";
@@ -153,6 +158,7 @@ class ItDBOperator {
153158
private final String wlsClusterResName = wlsDomainUid + "-" + clusterName;
154159

155160
private static String hostHeader;
161+
private static TraefikParams traefikParams;
156162

157163
/**
158164
* Start DB service and create RCU schema.
@@ -162,7 +168,7 @@ class ItDBOperator {
162168
* @param namespaces injected by JUnit
163169
*/
164170
@BeforeAll
165-
public static void initAll(@Namespaces(4) List<String> namespaces) {
171+
public static void initAll(@Namespaces(5) List<String> namespaces) {
166172

167173
logger = getLogger();
168174
logger.info("Assign a unique namespace for DB and RCU");
@@ -181,6 +187,18 @@ public static void initAll(@Namespaces(4) List<String> namespaces) {
181187
assertNotNull(namespaces.get(3), "Namespace is null");
182188
wlsDomainNamespace = namespaces.get(3);
183189

190+
// get a unique Traefik namespace
191+
logger.info("Get a unique namespace for Traefik");
192+
assertNotNull(namespaces.get(4), "Namespace list is null");
193+
traefikNamespace = namespaces.get(4);
194+
195+
// install and verify Traefik
196+
if (OKE_CLUSTER_PRIVATEIP) {
197+
traefikParams =
198+
installAndVerifyTraefik(traefikNamespace, 0, 0);
199+
traefikHelmParams = traefikParams.getHelmParams();
200+
}
201+
184202
// Create the repo secret to pull the image
185203
// this secret is used only for non-kind cluster
186204
createBaseRepoSecret(fmwDomainNamespace);
@@ -199,6 +217,17 @@ public static void initAll(@Namespaces(4) List<String> namespaces) {
199217
installAndVerifyOperator(opNamespace, fmwDomainNamespace, wlsDomainNamespace);
200218
}
201219

220+
@AfterAll
221+
void tearDown() {
222+
// uninstall Traefik
223+
if (traefikHelmParams != null) {
224+
assertThat(uninstallTraefik(traefikHelmParams))
225+
.as("Test uninstallTraefik returns true")
226+
.withFailMessage("uninstallTraefik() did not return true")
227+
.isTrue();
228+
}
229+
}
230+
202231
/**
203232
* Create a basic FMW model in image domain using the database created by DB Operator. Verify Pod is ready and service
204233
* exists for both admin server and managed servers. Verify EM console is accessible.
@@ -553,34 +582,28 @@ private void runJmsClientOnAdminPod(String action, String queue) {
553582
* @returns true if MBean is found otherwise false
554583
**/
555584
private boolean checkJmsServerRuntime(String jmsServer, String managedServer) {
556-
ExecResult result = null;
557-
int adminServiceNodePort
558-
= getServiceNodePort(wlsDomainNamespace, getExternalServicePodName(wlsAdminServerPodName), "default");
559-
String hostAndPort = getHostAndPort(adminSvcExtRouteHost, adminServiceNodePort);
560-
StringBuffer curlString = new StringBuffer("status=$(curl --user "
561-
+ ADMIN_USERNAME_DEFAULT + ":" + ADMIN_PASSWORD_DEFAULT + " ");
562-
if (TestConstants.KIND_CLUSTER
563-
&& !TestConstants.WLSIMG_BUILDER.equals(TestConstants.WLSIMG_BUILDER_DEFAULT)) {
564-
hostAndPort = "localhost:" + TRAEFIK_INGRESS_HTTP_HOSTPORT;
565-
curlString.append(" -H 'host: " + hostHeader + "' ");
566-
}
567-
curlString.append("http://" + hostAndPort)
568-
.append("/management/weblogic/latest/domainRuntime/serverRuntimes/")
569-
.append(managedServer)
570-
.append("/JMSRuntime/JMSServers/")
571-
.append(jmsServer)
572-
.append(" --silent --show-error ")
573-
.append(" -o /dev/null")
574-
.append(" -w %{http_code});")
575-
.append("echo ${status}");
576-
logger.info("checkJmsServerRuntime: curl command {0}", new String(curlString));
577585
testUntil(
578-
assertDoesNotThrow(() -> () -> exec(curlString.toString(), true).stdout().contains("200")),
586+
assertDoesNotThrow(() -> () -> getJMSRunTimeOutput(jmsServer,
587+
managedServer).contains("destinationsCurrentCount")),
579588
logger,
580589
"JMS Server Service to migrate");
581590
return true;
582591
}
583592

593+
private String getJMSRunTimeOutput(String jmsServer, String managedServer) {
594+
String output = readRuntimeResource(
595+
adminSvcExtHost,
596+
wlsDomainNamespace,
597+
wlsAdminServerPodName,
598+
"/management/weblogic/latest/domainRuntime/serverRuntimes/"
599+
+ managedServer
600+
+ "/JMSRuntime/JMSServers/"
601+
+ jmsServer,
602+
"checkJmsServerRuntime");
603+
logger.info("Got output " + output);
604+
return output;
605+
}
606+
584607
/*
585608
* Verify the Persistent Store Runtimes through REST API.
586609
* Get the specific Persistent Store Runtime on specified managed server.
@@ -589,31 +612,19 @@ private boolean checkJmsServerRuntime(String jmsServer, String managedServer) {
589612
* @returns true if MBean is found otherwise false
590613
**/
591614
private boolean checkStoreRuntime(String storeName, String managedServer) {
592-
ExecResult result = null;
593-
int adminServiceNodePort
594-
= getServiceNodePort(wlsDomainNamespace, getExternalServicePodName(wlsAdminServerPodName), "default");
595-
String hostAndPort = getHostAndPort(adminSvcExtRouteHost, adminServiceNodePort);
596-
StringBuffer curlString = new StringBuffer("status=$(curl --user "
597-
+ ADMIN_USERNAME_DEFAULT + ":" + ADMIN_PASSWORD_DEFAULT + " ");
598-
if (TestConstants.KIND_CLUSTER
599-
&& !TestConstants.WLSIMG_BUILDER.equals(TestConstants.WLSIMG_BUILDER_DEFAULT)) {
600-
hostAndPort = "localhost:" + TRAEFIK_INGRESS_HTTP_HOSTPORT;
601-
curlString.append(" -H 'host: " + hostHeader + "' ");
602-
}
603-
curlString.append("http://" + hostAndPort)
604-
.append("/management/weblogic/latest/domainRuntime/serverRuntimes/")
605-
.append(managedServer)
606-
.append("/persistentStoreRuntimes/")
607-
.append(storeName)
608-
.append(" --silent --show-error ")
609-
.append(" -o /dev/null")
610-
.append(" -w %{http_code});")
611-
.append("echo ${status}");
612-
logger.info("checkStoreRuntime: curl command {0}", new String(curlString));
613615
testUntil(
614-
assertDoesNotThrow(() -> () -> exec(curlString.toString(), true).stdout().contains("200")),
616+
assertDoesNotThrow(() -> () -> readRuntimeResource(
617+
adminSvcExtHost,
618+
wlsDomainNamespace,
619+
wlsAdminServerPodName,
620+
"/management/weblogic/latest/domainRuntime/serverRuntimes/"
621+
+ managedServer
622+
+ "/persistentStoreRuntimes/"
623+
+ storeName,
624+
"checkPersistentStoreRuntime").contains("PersistentStoreRuntime")),
615625
logger,
616626
"PersistentStoreRuntimes Service to migrate");
627+
617628
return true;
618629
}
619630

@@ -627,28 +638,16 @@ private boolean checkStoreRuntime(String storeName, String managedServer) {
627638
* @returns true if MBean is found otherwise false
628639
**/
629640
private boolean checkJtaRecoveryServiceRuntime(String managedServer, String recoveryService, String active) {
630-
ExecResult result = null;
631-
int adminServiceNodePort
632-
= getServiceNodePort(wlsDomainNamespace, getExternalServicePodName(wlsAdminServerPodName), "default");
633-
String hostAndPort = getHostAndPort(adminSvcExtRouteHost, adminServiceNodePort);
634-
StringBuffer curlString = new StringBuffer("curl --user "
635-
+ ADMIN_USERNAME_DEFAULT + ":" + ADMIN_PASSWORD_DEFAULT + " ");
636-
if (TestConstants.KIND_CLUSTER
637-
&& !TestConstants.WLSIMG_BUILDER.equals(TestConstants.WLSIMG_BUILDER_DEFAULT)) {
638-
hostAndPort = "localhost:" + TRAEFIK_INGRESS_HTTP_HOSTPORT;
639-
curlString.append(" -H 'host: " + hostHeader + "' ");
640-
}
641-
curlString.append("\"http://" + hostAndPort)
642-
.append("/management/weblogic/latest/domainRuntime/serverRuntimes/")
643-
.append(managedServer)
644-
.append("/JTARuntime/recoveryRuntimeMBeans/")
645-
.append(recoveryService)
646-
.append("?fields=active&links=none\"")
647-
.append(" --show-error ");
648-
logger.info("checkJtaRecoveryServiceRuntime: curl command {0}", new String(curlString));
649641
testUntil(
650-
assertDoesNotThrow(() -> () -> exec(curlString.toString(), true)
651-
.stdout().contains("\"active\": " + active)),
642+
assertDoesNotThrow(() -> () -> readRuntimeResource(
643+
adminSvcExtHost,
644+
wlsDomainNamespace,
645+
wlsAdminServerPodName,
646+
"/management/weblogic/latest/domainRuntime/serverRuntimes/"
647+
+ managedServer
648+
+ "/JTARuntime/recoveryRuntimeMBeans/"
649+
+ recoveryService,
650+
"checkRecoveryServiceRuntime").contains("\"active\": " + active)),
652651
logger,
653652
"JTA Recovery Service to migrate");
654653
return true;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
*/
6060
@DisplayName("Test to creat a FMW domain in persistent volume using WDT")
6161
@IntegrationTest
62-
@Tag("oke-sequential")
62+
@Tag("oke-gate")
6363
@Tag("kind-sequential")
6464
@Tag("okd-fmw-cert")
6565
class ItFmwDomainInPVUsingWDT {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
@Tag("okd-fmw-cert")
7373
@IntegrationTest
7474
@Tag("olcne-sequential")
75-
@Tag("oke-sequential1")
75+
@Tag("oke-gate")
7676
class ItFmwDomainInPVUsingWLST {
7777

7878
private static String dbNamespace = null;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@
9999
@DisplayName("Test for initializeDomainOnPV when user per-creates RCU")
100100
@IntegrationTest
101101
@Tag("kind-sequential")
102-
@Tag("oke-sequential1")
102+
@Tag("oke-gate")
103103
public class ItFmwDomainInPvUserCreateRcu {
104104

105105
private static String opNamespace = null;

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

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
import static oracle.weblogic.kubernetes.TestConstants.ADMIN_USERNAME_DEFAULT;
4040
import static oracle.weblogic.kubernetes.TestConstants.BASE_IMAGES_PREFIX;
4141
import static oracle.weblogic.kubernetes.TestConstants.BASE_IMAGES_REPO_SECRET_NAME;
42-
import static oracle.weblogic.kubernetes.TestConstants.DB_IMAGE_TO_USE_IN_SPEC;
4342
import static oracle.weblogic.kubernetes.TestConstants.DOMAIN_IMAGES_PREFIX;
4443
import static oracle.weblogic.kubernetes.TestConstants.ELASTICSEARCH_HOST;
4544
import static oracle.weblogic.kubernetes.TestConstants.FMWINFRA_IMAGE_TO_USE_IN_SPEC;
@@ -64,9 +63,9 @@
6463
import static oracle.weblogic.kubernetes.utils.CommonTestUtils.getNextFreePort;
6564
import static oracle.weblogic.kubernetes.utils.CommonTestUtils.getUniqueName;
6665
import static oracle.weblogic.kubernetes.utils.CommonTestUtils.testUntil;
66+
import static oracle.weblogic.kubernetes.utils.DbUtils.createOracleDBUsingOperator;
6767
import static oracle.weblogic.kubernetes.utils.DbUtils.createRcuAccessSecret;
6868
import static oracle.weblogic.kubernetes.utils.DbUtils.createRcuSchema;
69-
import static oracle.weblogic.kubernetes.utils.DbUtils.startOracleDB;
7069
import static oracle.weblogic.kubernetes.utils.DomainUtils.createDomainAndVerify;
7170
import static oracle.weblogic.kubernetes.utils.DomainUtils.createDomainResourceOnPv;
7271
import static oracle.weblogic.kubernetes.utils.DomainUtils.deleteDomainResource;
@@ -94,7 +93,7 @@
9493
@DisplayName("Test to create a FMW domain in persistent volume with new simplified feature")
9594
@IntegrationTest
9695
@Tag("kind-sequential")
97-
@Tag("oke-sequential1")
96+
@Tag("oke-gate")
9897
@Tag("okd-fmw-cert")
9998
class ItFmwDomainOnPV {
10099

@@ -144,13 +143,18 @@ public static void initAll(@Namespaces(3) List<String> namespaces) {
144143

145144
DOMAINHOMEPREFIX = "/shared/" + domainNamespace + "/domains/";
146145

147-
// start DB
146+
//install Oracle Database Operator
147+
String dbName = "fmwdomainonpv1" + "my-oracle-db";
148+
logger.info("Create Oracle DB in namespace: {0} ", dbNamespace);
149+
createBaseRepoSecret(dbNamespace);
150+
dbUrl = assertDoesNotThrow(() -> createOracleDBUsingOperator(dbName, RCUSYSPASSWORD, dbNamespace));
151+
/*
148152
logger.info("Start DB in namespace: {0}, dbListenerPort: {1}, dbUrl: {2}, dbImage: {3}",
149153
dbNamespace, dbListenerPort, dbUrl, DB_IMAGE_TO_USE_IN_SPEC);
150154
assertDoesNotThrow(() -> startOracleDB(DB_IMAGE_TO_USE_IN_SPEC, getNextFreePort(), dbNamespace, dbListenerPort),
151155
String.format("Failed to start Oracle DB in the namespace %s with dbUrl %s, dbListenerPost %s",
152156
dbNamespace, dbUrl, dbListenerPort));
153-
157+
*/
154158
// install operator and verify its running in ready state
155159
HelmParams opHelmParams =
156160
new HelmParams().releaseName(OPERATOR_RELEASE_NAME)

0 commit comments

Comments
 (0)