mirror of
https://github.com/psviderski/uncloud.git
synced 2026-08-26 19:13:34 +00:00
fix: Set volume driver name to "local" if not specified (#219)
This commit is contained in:
@@ -83,6 +83,9 @@ func (v *VolumeSpec) SetDefaults() VolumeSpec {
|
||||
if spec.VolumeOptions.Name == "" {
|
||||
spec.VolumeOptions.Name = spec.Name
|
||||
}
|
||||
if spec.VolumeOptions.Driver != nil && spec.VolumeOptions.Driver.Name == "" {
|
||||
spec.VolumeOptions.Driver.Name = VolumeDriverLocal
|
||||
}
|
||||
}
|
||||
// TODO: set explicit default values for Propagation and Recursive for bind mounts?
|
||||
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/docker/docker/api/types/mount"
|
||||
"github.com/docker/docker/api/types/volume"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestVolumeSpec_MatchesDockerVolume(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
spec VolumeSpec
|
||||
vol volume.Volume
|
||||
expected bool
|
||||
}{
|
||||
{
|
||||
name: "match with explicit local driver",
|
||||
spec: VolumeSpec{
|
||||
Type: VolumeTypeVolume,
|
||||
VolumeOptions: &VolumeOptions{
|
||||
Driver: &mount.Driver{
|
||||
Name: "local",
|
||||
Options: map[string]string{
|
||||
"foo": "bar",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
vol: volume.Volume{
|
||||
Driver: "local",
|
||||
Options: map[string]string{
|
||||
"foo": "bar",
|
||||
},
|
||||
},
|
||||
expected: true,
|
||||
},
|
||||
{
|
||||
name: "match with empty driver name in spec (implicit local)",
|
||||
spec: VolumeSpec{
|
||||
Type: VolumeTypeVolume,
|
||||
VolumeOptions: &VolumeOptions{
|
||||
Driver: &mount.Driver{
|
||||
Name: "", // Implicitly local
|
||||
Options: map[string]string{
|
||||
"foo": "bar",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
vol: volume.Volume{
|
||||
Driver: "local",
|
||||
Options: map[string]string{
|
||||
"foo": "bar",
|
||||
},
|
||||
},
|
||||
expected: true,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
matches := tt.spec.MatchesDockerVolume(tt.vol)
|
||||
assert.Equal(t, tt.expected, matches)
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user