This is an automated email from the ASF dual-hosted git repository. saadurrahman pushed a commit to branch saadurrahman/3821-Remove-Deprecated-Volumes-K8s-dev in repository https://gitbox.apache.org/repos/asf/incubator-heron.git
commit b4d7cd3a70e56b3791ea488e56cc4b5a3bf1821e Author: Saad Ur Rahman <[email protected]> AuthorDate: Tue May 3 10:57:11 2022 -0400 [K8s] generating volume with PVC in Volume Factory. --- .../org/apache/heron/scheduler/kubernetes/Volumes.java | 15 +++++++++++++++ .../apache/heron/scheduler/kubernetes/VolumesTests.java | 16 ++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/heron/schedulers/src/java/org/apache/heron/scheduler/kubernetes/Volumes.java b/heron/schedulers/src/java/org/apache/heron/scheduler/kubernetes/Volumes.java index d9e641f78cc..4dcba8fdccb 100644 --- a/heron/schedulers/src/java/org/apache/heron/scheduler/kubernetes/Volumes.java +++ b/heron/schedulers/src/java/org/apache/heron/scheduler/kubernetes/Volumes.java @@ -142,6 +142,21 @@ final class Volumes { return claim; } + /** + * Generates a <code>Volume</code> with a <code>Persistent Volume Claim</code> inserted. + * @param claimName Name of the <code>Persistent Volume Claim</code>. + * @param volumeName Name of the <code>Volume</code> to place the <code>Persistent Volume Claim</code> in. + * @return Fully configured <code>Volume</code> with <code>Persistent Volume Claim</code> in it. + */ + V1Volume createPersistentVolumeClaim(String claimName, String volumeName) { + return new V1VolumeBuilder() + .withName(volumeName) + .withNewPersistentVolumeClaim() + .withClaimName(claimName) + .endPersistentVolumeClaim() + .build(); + } + interface IVolumeFactory { V1Volume create(String volumeName, Map<KubernetesConstants.VolumeConfigKeys, String> configs); } diff --git a/heron/schedulers/tests/java/org/apache/heron/scheduler/kubernetes/VolumesTests.java b/heron/schedulers/tests/java/org/apache/heron/scheduler/kubernetes/VolumesTests.java index 1cd7889741b..c457012e342 100644 --- a/heron/schedulers/tests/java/org/apache/heron/scheduler/kubernetes/VolumesTests.java +++ b/heron/schedulers/tests/java/org/apache/heron/scheduler/kubernetes/VolumesTests.java @@ -340,4 +340,20 @@ public class VolumesTests { .createPersistentVolumeClaim(volumeNameStatic, labels, volStaticConfig); Assert.assertEquals("Volume static PVC", claimStatic, actualPVCStatic); } + + @Test + public void testVolumeWithPersistentVolumeClaim() { + final String claimName = "claim-name"; + final String volumeName = "volume-name"; + final V1Volume expected = new V1VolumeBuilder() + .withName(volumeName) + .withNewPersistentVolumeClaim() + .withClaimName(claimName) + .endPersistentVolumeClaim() + .build(); + + final V1Volume actual = Volumes.get().createPersistentVolumeClaim(claimName, volumeName); + + Assert.assertEquals("Volume with Persistent Volume Claim configured", expected, actual); + } }
