Skip to content

Commit bebad03

Browse files
committed
Backport database operator fix and logging util changes
1 parent c975e35 commit bebad03

File tree

4 files changed

+55
-27
lines changed

4 files changed

+55
-27
lines changed

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@
7070
import static oracle.weblogic.kubernetes.utils.DbUtils.createOracleDBUsingOperator;
7171
import static oracle.weblogic.kubernetes.utils.DbUtils.createRcuAccessSecret;
7272
import static oracle.weblogic.kubernetes.utils.DbUtils.createRcuSchema;
73-
import static oracle.weblogic.kubernetes.utils.DbUtils.deleteHostPathProvisioner;
7473
import static oracle.weblogic.kubernetes.utils.DbUtils.deleteOracleDB;
7574
import static oracle.weblogic.kubernetes.utils.DbUtils.installDBOperator;
7675
import static oracle.weblogic.kubernetes.utils.DbUtils.uninstallDBOperator;
@@ -505,7 +504,6 @@ private void testMiiJmsJtaServiceMigration() {
505504
public void tearDownAll() throws ApiException {
506505
if (!SKIP_CLEANUP) {
507506
deleteOracleDB(dbNamespace, dbName);
508-
deleteHostPathProvisioner(dbNamespace);
509507
uninstallDBOperator(dbNamespace);
510508
}
511509
}

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,6 @@
8989
import static oracle.weblogic.kubernetes.utils.DbUtils.createOracleDBUsingOperator;
9090
import static oracle.weblogic.kubernetes.utils.DbUtils.createRcuAccessSecret;
9191
import static oracle.weblogic.kubernetes.utils.DbUtils.createRcuSchema;
92-
import static oracle.weblogic.kubernetes.utils.DbUtils.deleteHostPathProvisioner;
9392
import static oracle.weblogic.kubernetes.utils.DbUtils.deleteOracleDB;
9493
import static oracle.weblogic.kubernetes.utils.DbUtils.installDBOperator;
9594
import static oracle.weblogic.kubernetes.utils.DbUtils.uninstallDBOperator;
@@ -585,7 +584,6 @@ private void testMiiJmsJtaServiceMigration() {
585584
public void tearDownAll() throws ApiException {
586585
if (!SKIP_CLEANUP) {
587586
deleteOracleDB(dbNamespace, dbName);
588-
deleteHostPathProvisioner(dbNamespace);
589587
uninstallDBOperator(dbNamespace);
590588
}
591589
}

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

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import io.kubernetes.client.openapi.models.V1HostPathVolumeSource;
3030
import io.kubernetes.client.openapi.models.V1LabelSelector;
3131
import io.kubernetes.client.openapi.models.V1LocalObjectReference;
32+
import io.kubernetes.client.openapi.models.V1NFSVolumeSource;
3233
import io.kubernetes.client.openapi.models.V1ObjectFieldSelector;
3334
import io.kubernetes.client.openapi.models.V1ObjectMeta;
3435
import io.kubernetes.client.openapi.models.V1PersistentVolume;
@@ -55,6 +56,7 @@
5556
import io.kubernetes.client.openapi.models.V1Subject;
5657
import io.kubernetes.client.openapi.models.V1Volume;
5758
import io.kubernetes.client.openapi.models.V1VolumeMount;
59+
import io.kubernetes.client.util.Yaml;
5860
import oracle.weblogic.kubernetes.TestConstants;
5961
import oracle.weblogic.kubernetes.actions.TestActions;
6062
import oracle.weblogic.kubernetes.actions.impl.primitive.Command;
@@ -76,6 +78,7 @@
7678
import static oracle.weblogic.kubernetes.TestConstants.DB_PREBUILT_IMAGE_NAME;
7779
import static oracle.weblogic.kubernetes.TestConstants.IMAGE_PULL_POLICY;
7880
import static oracle.weblogic.kubernetes.TestConstants.KUBERNETES_CLI;
81+
import static oracle.weblogic.kubernetes.TestConstants.NFS_SERVER;
7982
import static oracle.weblogic.kubernetes.TestConstants.OKD;
8083
import static oracle.weblogic.kubernetes.TestConstants.OKE_CLUSTER;
8184
import static oracle.weblogic.kubernetes.TestConstants.ORACLE_DB_SECRET_NAME;
@@ -102,7 +105,6 @@
102105
import static oracle.weblogic.kubernetes.utils.FileUtils.replaceStringInFile;
103106
import static oracle.weblogic.kubernetes.utils.ImageUtils.createBaseRepoSecret;
104107
import static oracle.weblogic.kubernetes.utils.ImageUtils.createTestRepoSecret;
105-
import static oracle.weblogic.kubernetes.utils.PersistentVolumeUtils.setVolumeSource;
106108
import static oracle.weblogic.kubernetes.utils.ThreadSafeLogger.getLogger;
107109
import static org.apache.commons.io.FileUtils.deleteDirectory;
108110
import static org.awaitility.Awaitility.with;
@@ -841,14 +843,15 @@ public static String createOracleDBUsingOperator(String dbName, String sysPasswo
841843
Files.deleteIfExists(dbYaml);
842844
FileUtils.copy(Paths.get(RESOURCE_DIR, "dboperator", "singleinstancedatabase.yaml"), dbYaml);
843845

846+
String storageClass = "weblogic-domain-storage-class";
844847
replaceStringInFile(dbYaml.toString(), "name: sidb-sample", "name: " + dbName);
845848
replaceStringInFile(dbYaml.toString(), "namespace: default", "namespace: " + namespace);
846849
replaceStringInFile(dbYaml.toString(), "secretName:", "secretName: " + secretName);
847850
replaceStringInFile(dbYaml.toString(), "secretKey:", "secretKey: " + secretKey);
848851
replaceStringInFile(dbYaml.toString(), "pullFrom:", "pullFrom: " + DB_IMAGE_19C);
849852
replaceStringInFile(dbYaml.toString(), "pullSecrets:", "pullSecrets: " + BASE_IMAGES_REPO_SECRET_NAME);
850853
replaceStringInFile(dbYaml.toString(), "storageClass: \"oci-bv\"",
851-
"storageClass: \"weblogic-domain-storage-class\"");
854+
"storageClass: \"" + storageClass + "\"");
852855
replaceStringInFile(dbYaml.toString(), "accessMode: \"ReadWriteOnce\"", "accessMode: \"ReadWriteMany\"");
853856
replaceStringInFile(dbYaml.toString(), "volumeName: \"\"", "volumeName: \"" + pvName + "\"");
854857

@@ -981,16 +984,15 @@ public static String createOraclePrebuiltDBUsingOperator(String dbName, String s
981984
public static void createPV(String pvName) {
982985

983986
LoggingFacade logger = getLogger();
984-
Path pvHostPath = null;
987+
Path pvHostPath = Paths.get(PV_ROOT, pvName);
985988

986989
logger.info("creating persistent volume {0}", pvName);
987-
990+
988991
// when tests are running in local box the PV directories need to exist
989992
if (!OKE_CLUSTER && !OKD) {
990993
try {
991-
pvHostPath = Files.createDirectories(Paths.get(
992-
PV_ROOT, pvName));
993994
logger.info("Creating PV directory host path {0}", pvHostPath);
995+
Files.createDirectories(pvHostPath);
994996
deleteDirectory(pvHostPath.toFile());
995997
createDirectories(pvHostPath);
996998
} catch (IOException ioex) {
@@ -1000,15 +1002,29 @@ public static void createPV(String pvName) {
10001002
}
10011003

10021004
V1PersistentVolume v1pv = new V1PersistentVolume()
1005+
.metadata(new V1ObjectMeta()
1006+
.name(pvName))
10031007
.spec(new V1PersistentVolumeSpec()
10041008
.addAccessModesItem("ReadWriteMany")
10051009
.volumeMode("Filesystem")
10061010
.putCapacityItem("storage", Quantity.fromString("100Gi"))
10071011
.persistentVolumeReclaimPolicy("Recycle")
1008-
.accessModes(Arrays.asList("ReadWriteMany")))
1009-
.metadata(new V1ObjectMeta()
1010-
.name(pvName));
1011-
setVolumeSource(pvHostPath, v1pv);
1012+
.accessModes(Arrays.asList("ReadWriteMany")));
1013+
if (OKD) {
1014+
v1pv.getSpec()
1015+
.storageClassName("okd-nfsmnt")
1016+
.nfs(new V1NFSVolumeSource()
1017+
.path(PV_ROOT)
1018+
.server(NFS_SERVER)
1019+
.readOnly(false));
1020+
} else {
1021+
v1pv.getSpec()
1022+
.storageClassName("weblogic-domain-storage-class")
1023+
.hostPath(new V1HostPathVolumeSource()
1024+
.path(pvHostPath.toString()));
1025+
}
1026+
logger.info(Yaml.dump(v1pv));
1027+
10121028
boolean success = assertDoesNotThrow(() -> createPersistentVolume(v1pv),
10131029
"Failed to create persistent volume");
10141030
assertTrue(success, "PersistentVolume creation failed");

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

Lines changed: 29 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -137,19 +137,6 @@ public static void collectLogs(String namespace, String resultDir) {
137137
&& pv.getMetadata().getName()
138138
.equals(pvc.getSpec().getVolumeName())) {
139139
pvList.add(pv);
140-
String pvName = pv.getMetadata().getName();
141-
String pvcName = pvc.getMetadata().getName();
142-
try {
143-
if (pv.getMetadata().getDeletionTimestamp() == null) {
144-
copyFromPV(namespace, pvcName, pvName,
145-
Files.createDirectories(
146-
Paths.get(resultDir, pvcName, pvName)));
147-
}
148-
} catch (ApiException ex) {
149-
logger.warning(ex.getResponseBody());
150-
} catch (IOException ex) {
151-
logger.warning(ex.getMessage());
152-
}
153140
}
154141
}
155142
}
@@ -564,4 +551,33 @@ public static void checkPodLogContainsString(String namespace, String podName,
564551
podName,
565552
namespace);
566553
}
554+
555+
private void archivePV(String namespace, String resultDir) {
556+
// archive persistent volume contents
557+
List<V1PersistentVolume> pvList = new ArrayList<>();
558+
for (var pv : Kubernetes.listPersistentVolumes().getItems()) {
559+
for (var pvc : Kubernetes.listPersistentVolumeClaims(namespace).getItems()) {
560+
if (pv.getSpec().getStorageClassName()
561+
.equals(pvc.getSpec().getStorageClassName())
562+
&& pv.getMetadata().getName()
563+
.equals(pvc.getSpec().getVolumeName())) {
564+
pvList.add(pv);
565+
String pvName = pv.getMetadata().getName();
566+
String pvcName = pvc.getMetadata().getName();
567+
try {
568+
if (pv.getMetadata().getDeletionTimestamp() == null) {
569+
copyFromPV(namespace, pvcName, pvName,
570+
Files.createDirectories(
571+
Paths.get(resultDir, pvcName, pvName)));
572+
}
573+
} catch (ApiException ex) {
574+
getLogger().warning(ex.getResponseBody());
575+
} catch (IOException ex) {
576+
getLogger().warning(ex.getMessage());
577+
}
578+
}
579+
}
580+
}
581+
}
582+
567583
}

0 commit comments

Comments
 (0)