mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-24 20:24:09 +00:00
Modifies tests to use new volume objects.
This commit is contained in:
parent
6191ffc0de
commit
3f7f6cb2dc
@ -93,7 +93,7 @@ kubelet:
|
||||
- system: True
|
||||
- gid_from_name: True
|
||||
- shell: /sbin/nologin
|
||||
- home: /var/lib/kubelet
|
||||
- home: /var/kubelet
|
||||
- groups:
|
||||
- docker
|
||||
- require:
|
||||
|
@ -487,7 +487,13 @@ func (kl *Kubelet) determineActiveVolumes() map[string]volume.Cleaner {
|
||||
name := result["volumeName"]
|
||||
podID := result["podID"]
|
||||
identifier := path.Join(podID, name)
|
||||
activeVolumes[identifier], err = volume.CreateVolumeCleaner(kind, fullPath)
|
||||
cleaner, err := volume.CreateVolumeCleaner(kind, fullPath)
|
||||
if err != nil {
|
||||
glog.Errorf("Could not create cleaner for volume %v.", identifier)
|
||||
}
|
||||
if cleaner != nil {
|
||||
activeVolumes[identifier] = cleaner
|
||||
}
|
||||
}
|
||||
return nil
|
||||
})
|
||||
|
@ -31,7 +31,6 @@ var ErrUnsupportedVolumeType = errors.New("unsupported volume type")
|
||||
type Interface interface {
|
||||
// GetPath returns the directory path the volume is mounted to.
|
||||
GetPath() string
|
||||
|
||||
}
|
||||
|
||||
// The Builder interface provides the method to set up/mount the volume.
|
||||
@ -39,7 +38,6 @@ type Builder interface {
|
||||
Interface
|
||||
// SetUp prepares and mounts/unpacks the volume to a directory path.
|
||||
SetUp() error
|
||||
|
||||
}
|
||||
|
||||
// The Cleaner interface provides the method to cleanup/unmount the volumes.
|
||||
@ -90,7 +88,7 @@ func (emptyDir *EmptyDirectoryBuilder) GetPath() string {
|
||||
return path.Join(emptyDir.RootDir, emptyDir.PodID, "volumes", "empty", emptyDir.Name)
|
||||
}
|
||||
|
||||
// EmptyDirectoryCleaners only need to know what path the are cleaning
|
||||
// EmptyDirectoryCleaners only need to know what path they are cleaning
|
||||
type EmptyDirectoryCleaner struct {
|
||||
Path string
|
||||
}
|
||||
@ -110,10 +108,6 @@ func CreateEmptyDirectoryBuilder(volume *api.Volume, podID string, rootDir strin
|
||||
return &EmptyDirectoryBuilder{volume.Name, podID, rootDir}
|
||||
}
|
||||
|
||||
func CreateEmptyDirectoryCleaner(path string) *EmptyDirectoryCleaner {
|
||||
return &EmptyDirectoryCleaner{path}
|
||||
}
|
||||
|
||||
// CreateVolumeBuilder returns a Builder capable of mounting a volume described by an
|
||||
// *api.Volume, or an error.
|
||||
func CreateVolumeBuilder(volume *api.Volume, podID string, rootDir string) (Builder, error) {
|
||||
@ -136,10 +130,11 @@ func CreateVolumeBuilder(volume *api.Volume, podID string, rootDir string) (Buil
|
||||
return vol, nil
|
||||
}
|
||||
|
||||
// CreateVolumeCleaner returns a Cleaner capable of tearing down a volume.
|
||||
func CreateVolumeCleaner(kind string, path string) (Cleaner, error) {
|
||||
switch kind {
|
||||
case "empty":
|
||||
return CreateEmptyDirectoryCleaner(path), nil
|
||||
return &EmptyDirectoryCleaner{path}, nil
|
||||
default:
|
||||
return nil, ErrUnsupportedVolumeType
|
||||
}
|
||||
|
@ -46,7 +46,7 @@ func TestCreateVolumeBuilders(t *testing.T) {
|
||||
},
|
||||
"/dir/path",
|
||||
"my-id",
|
||||
"host",
|
||||
"",
|
||||
},
|
||||
{
|
||||
api.Volume{
|
||||
@ -59,7 +59,7 @@ func TestCreateVolumeBuilders(t *testing.T) {
|
||||
"my-id",
|
||||
"empty",
|
||||
},
|
||||
{api.Volume{}, "", ""},
|
||||
{api.Volume{}, "", "", ""},
|
||||
{
|
||||
api.Volume{
|
||||
Name: "empty-dir",
|
||||
@ -72,9 +72,9 @@ func TestCreateVolumeBuilders(t *testing.T) {
|
||||
}
|
||||
for _, createVolumesTest := range createVolumesTests {
|
||||
tt := createVolumesTest
|
||||
v, err := CreateVolumeBuilder(&tt.volume, tt.podID, tempDir)
|
||||
vb, err := CreateVolumeBuilder(&tt.volume, tt.podID, tempDir)
|
||||
if tt.volume.Source == nil {
|
||||
if v != nil {
|
||||
if vb != nil {
|
||||
t.Errorf("Expected volume to be nil")
|
||||
}
|
||||
continue
|
||||
@ -88,47 +88,24 @@ func TestCreateVolumeBuilders(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Errorf("Unexpected error: %v", err)
|
||||
}
|
||||
err = v.SetUp()
|
||||
err = vb.SetUp()
|
||||
if err != nil {
|
||||
t.Errorf("Unexpected error: %v", err)
|
||||
}
|
||||
path := v.GetPath()
|
||||
path := vb.GetPath()
|
||||
if path != tt.path {
|
||||
t.Errorf("Unexpected bind path. Expected %v, got %v", tt.path, path)
|
||||
}
|
||||
v, err = CreateVolumeCleaner(tt.kind)
|
||||
vc, err := CreateVolumeCleaner(tt.kind, vb.GetPath())
|
||||
if tt.kind == "" {
|
||||
if err != ErrUnsupportedVolumeType {
|
||||
t.Errorf("Unexpected error: %v", err)
|
||||
}
|
||||
continue
|
||||
}
|
||||
err = v.TearDown()
|
||||
err = vc.TearDown()
|
||||
if err != nil {
|
||||
t.Errorf("Unexpected error: %v", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
func TestEmptySetUpAndTearDown(t *testing.T) {
|
||||
volumes := []api.Volume{
|
||||
{
|
||||
Name: "empty-dir",
|
||||
Source: &api.VolumeSource{
|
||||
EmptyDirectory: &api.EmptyDirectory{},
|
||||
},
|
||||
},
|
||||
}
|
||||
expectedPath := "/tmp/kubelet/fakeID/volumes/empty/empty-dir"
|
||||
for _, volume := range volumes {
|
||||
volumeBuilder, _ := CreateVolumeBuilder(&volume, "fakeID", "/tmp/kubelet")
|
||||
volumeBuilder.SetUp()
|
||||
if _, err := os.Stat(expectedPath); os.IsNotExist(err) {
|
||||
t.Errorf("Mount directory %v does not exist after SetUp", expectedPath)
|
||||
}
|
||||
volumeCleaner, _ := CreateVolumeCleaner("empty", expectedPath)
|
||||
volumeCleaner.TearDown()
|
||||
if _, err := os.Stat(expectedPath); !os.IsNotExist(err) {
|
||||
t.Errorf("Mount directory %v still exists after TearDown", expectedPath)
|
||||
}
|
||||
}
|
||||
os.RemoveAll("/tmp/kubelet")
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user