Skip to content

Commit a504ce0

Browse files
armrumnencia
authored andcommitted
chore: review
Signed-off-by: Armando Ruocco <[email protected]>
1 parent 0f05e0c commit a504ce0

File tree

2 files changed

+55
-16
lines changed

2 files changed

+55
-16
lines changed

internal/cnpgi/operator/lifecycle.go

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,7 @@ func reconcilePodSpec(
377377
MountPath: metadata.BarmanCertificatesPath,
378378
})
379379

380-
spec.Volumes = volumeListEnsureVolume(spec.Volumes, corev1.Volume{
380+
spec.Volumes = ensureVolume(spec.Volumes, corev1.Volume{
381381
Name: barmanCertificatesVolumeName,
382382
VolumeSource: corev1.VolumeSource{
383383
Projected: &corev1.ProjectedVolumeSource{
@@ -386,7 +386,8 @@ func reconcilePodSpec(
386386
},
387387
})
388388
} else {
389-
spec.Volumes = volumeListRemoveVolume(spec.Volumes, barmanCertificatesVolumeName)
389+
sidecarTemplate.VolumeMounts = removeVolumeMount(sidecarTemplate.VolumeMounts, barmanCertificatesVolumeName)
390+
spec.Volumes = removeVolume(spec.Volumes, barmanCertificatesVolumeName)
390391
}
391392

392393
if err := injectPluginSidecarPodSpec(spec, &sidecarTemplate, mainContainerName); err != nil {
@@ -472,9 +473,9 @@ func injectPluginSidecarPodSpec(
472473
return nil
473474
}
474475

475-
// volumeListEnsureVolume makes sure the passed volume is present in the list of volumes.
476+
// ensureVolume makes sure the passed volume is present in the list of volumes.
476477
// If the volume is already present, it is updated.
477-
func volumeListEnsureVolume(volumes []corev1.Volume, volume corev1.Volume) []corev1.Volume {
478+
func ensureVolume(volumes []corev1.Volume, volume corev1.Volume) []corev1.Volume {
478479
volumeFound := false
479480
for i := range volumes {
480481
if volumes[i].Name == volume.Name {
@@ -490,16 +491,25 @@ func volumeListEnsureVolume(volumes []corev1.Volume, volume corev1.Volume) []cor
490491
return volumes
491492
}
492493

493-
// volumeListRemoveVolume removes a volume with a known name from a list of volumes.
494-
func volumeListRemoveVolume(volumes []corev1.Volume, name string) []corev1.Volume {
495-
j := 0
494+
// removeVolume removes a volume with a known name from a list of volumes.
495+
func removeVolume(volumes []corev1.Volume, name string) []corev1.Volume {
496+
var filteredVolumes []corev1.Volume
496497
for _, volume := range volumes {
497498
if volume.Name != name {
498-
volumes[j] = volume
499-
j++
499+
filteredVolumes = append(filteredVolumes, volume)
500500
}
501501
}
502-
return volumes[:j]
502+
return filteredVolumes
503+
}
504+
505+
func removeVolumeMount(mounts []corev1.VolumeMount, name string) []corev1.VolumeMount {
506+
var filteredMounts []corev1.VolumeMount
507+
for _, mount := range mounts {
508+
if mount.Name != name {
509+
filteredMounts = append(filteredMounts, mount)
510+
}
511+
}
512+
return filteredMounts
503513
}
504514

505515
// getCNPGJobRole gets the role associated to a CNPG job

internal/cnpgi/operator/lifecycle_test.go

Lines changed: 35 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -211,32 +211,32 @@ var _ = Describe("LifecycleImplementation", func() {
211211
})
212212

213213
var _ = Describe("Volume utilities", func() {
214-
Describe("volumeListEnsureVolume", func() {
214+
Describe("ensureVolume", func() {
215215
It("adds a new volume if not present", func() {
216216
volumes := []corev1.Volume{{Name: "vol1"}}
217217
newVol := corev1.Volume{Name: "vol2"}
218-
result := volumeListEnsureVolume(volumes, newVol)
218+
result := ensureVolume(volumes, newVol)
219219
Expect(result).To(HaveLen(2))
220220
Expect(result[1]).To(Equal(newVol))
221221
})
222222

223223
It("updates an existing volume", func() {
224224
volumes := []corev1.Volume{{Name: "vol1"}}
225225
updatedVol := corev1.Volume{Name: "vol1", VolumeSource: corev1.VolumeSource{EmptyDir: &corev1.EmptyDirVolumeSource{}}}
226-
result := volumeListEnsureVolume(volumes, updatedVol)
226+
result := ensureVolume(volumes, updatedVol)
227227
Expect(result).To(HaveLen(1))
228228
Expect(result[0]).To(Equal(updatedVol))
229229
})
230230
})
231231

232-
Describe("volumeListRemoveVolume", func() {
232+
Describe("removeVolume", func() {
233233
It("removes the specified volume", func() {
234234
volumes := []corev1.Volume{
235235
{Name: "vol1"},
236236
{Name: "vol2"},
237237
{Name: "vol3"},
238238
}
239-
result := volumeListRemoveVolume(volumes, "vol2")
239+
result := removeVolume(volumes, "vol2")
240240
Expect(result).To(HaveLen(2))
241241
for _, v := range result {
242242
Expect(v.Name).NotTo(Equal("vol2"))
@@ -245,8 +245,37 @@ var _ = Describe("Volume utilities", func() {
245245

246246
It("returns the same list if the volume is not present", func() {
247247
volumes := []corev1.Volume{{Name: "vol1"}, {Name: "vol2"}}
248-
result := volumeListRemoveVolume(volumes, "vol3")
248+
result := removeVolume(volumes, "vol3")
249249
Expect(result).To(Equal(volumes))
250250
})
251251
})
252252
})
253+
254+
var _ = Describe("removeVolumeMount", func() {
255+
It("removes the specified volume mount", func() {
256+
mounts := []corev1.VolumeMount{
257+
{Name: "mount1"},
258+
{Name: "mount2"},
259+
{Name: "mount3"},
260+
}
261+
result := removeVolumeMount(mounts, "mount2")
262+
Expect(result).To(HaveLen(2))
263+
for _, m := range result {
264+
Expect(m.Name).NotTo(Equal("mount2"))
265+
}
266+
})
267+
268+
It("returns the same list if the volume mount is not present", func() {
269+
mounts := []corev1.VolumeMount{{Name: "mount1"}, {Name: "mount2"}}
270+
result := removeVolumeMount(mounts, "mount3")
271+
Expect(result).To(HaveLen(2))
272+
Expect(result[0].Name).To(Equal("mount1"))
273+
Expect(result[1].Name).To(Equal("mount2"))
274+
})
275+
276+
It("handles empty input slice", func() {
277+
var mounts []corev1.VolumeMount
278+
result := removeVolumeMount(mounts, "mount1")
279+
Expect(result).To(BeEmpty())
280+
})
281+
})

0 commit comments

Comments
 (0)