mirror of
https://github.com/vmware-tanzu/velero.git
synced 2026-08-31 21:31:28 +00:00
Merge pull request #7988 from Lyndon-Li/data-mover-ms-new-exposer
New exposer for data mover ms
This commit is contained in:
@@ -346,23 +346,24 @@ func IsPVCBound(pvc *corev1api.PersistentVolumeClaim) bool {
|
||||
}
|
||||
|
||||
// MakePodPVCAttachment returns the volume mounts and devices for a pod needed to attach a PVC
|
||||
func MakePodPVCAttachment(volumeName string, volumeMode *corev1api.PersistentVolumeMode) ([]corev1api.VolumeMount, []corev1api.VolumeDevice) {
|
||||
func MakePodPVCAttachment(volumeName string, volumeMode *corev1api.PersistentVolumeMode) ([]corev1api.VolumeMount, []corev1api.VolumeDevice, string) {
|
||||
var volumeMounts []corev1api.VolumeMount = nil
|
||||
var volumeDevices []corev1api.VolumeDevice = nil
|
||||
volumePath := "/" + volumeName
|
||||
|
||||
if volumeMode != nil && *volumeMode == corev1api.PersistentVolumeBlock {
|
||||
volumeDevices = []corev1api.VolumeDevice{{
|
||||
Name: volumeName,
|
||||
DevicePath: "/" + volumeName,
|
||||
DevicePath: volumePath,
|
||||
}}
|
||||
} else {
|
||||
volumeMounts = []corev1api.VolumeMount{{
|
||||
Name: volumeName,
|
||||
MountPath: "/" + volumeName,
|
||||
MountPath: volumePath,
|
||||
}}
|
||||
}
|
||||
|
||||
return volumeMounts, volumeDevices
|
||||
return volumeMounts, volumeDevices, volumePath
|
||||
}
|
||||
|
||||
func GetPVForPVC(
|
||||
|
||||
@@ -1380,3 +1380,65 @@ func TestGetPVCForPodVolume(t *testing.T) {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestMakePodPVCAttachment(t *testing.T) {
|
||||
testCases := []struct {
|
||||
name string
|
||||
volumeName string
|
||||
volumeMode corev1api.PersistentVolumeMode
|
||||
expectedVolumeMount []corev1api.VolumeMount
|
||||
expectedVolumeDevice []corev1api.VolumeDevice
|
||||
expectedVolumePath string
|
||||
}{
|
||||
{
|
||||
name: "no volume mode specified",
|
||||
volumeName: "volume-1",
|
||||
expectedVolumeMount: []corev1api.VolumeMount{
|
||||
{
|
||||
Name: "volume-1",
|
||||
MountPath: "/volume-1",
|
||||
},
|
||||
},
|
||||
expectedVolumePath: "/volume-1",
|
||||
},
|
||||
{
|
||||
name: "fs mode specified",
|
||||
volumeName: "volume-2",
|
||||
volumeMode: corev1api.PersistentVolumeFilesystem,
|
||||
expectedVolumeMount: []corev1api.VolumeMount{
|
||||
{
|
||||
Name: "volume-2",
|
||||
MountPath: "/volume-2",
|
||||
},
|
||||
},
|
||||
expectedVolumePath: "/volume-2",
|
||||
},
|
||||
{
|
||||
name: "block volume mode specified",
|
||||
volumeName: "volume-3",
|
||||
volumeMode: corev1api.PersistentVolumeBlock,
|
||||
expectedVolumeDevice: []corev1api.VolumeDevice{
|
||||
{
|
||||
Name: "volume-3",
|
||||
DevicePath: "/volume-3",
|
||||
},
|
||||
},
|
||||
expectedVolumePath: "/volume-3",
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range testCases {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
var volMode *v1.PersistentVolumeMode
|
||||
if tc.volumeMode != "" {
|
||||
volMode = &tc.volumeMode
|
||||
}
|
||||
|
||||
mount, device, path := MakePodPVCAttachment(tc.volumeName, volMode)
|
||||
|
||||
assert.Equal(t, tc.expectedVolumeMount, mount)
|
||||
assert.Equal(t, tc.expectedVolumeDevice, device)
|
||||
assert.Equal(t, tc.expectedVolumePath, path)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user