mirror of
https://github.com/psviderski/uncloud.git
synced 2026-08-28 03:53:33 +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 == "" {
|
if spec.VolumeOptions.Name == "" {
|
||||||
spec.VolumeOptions.Name = spec.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?
|
// 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