/
fake_driver.go
48 lines (38 loc) · 1.1 KB
/
fake_driver.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package driver
import (
"context"
"path"
"github.com/alibaba/pouch/storage/volume/types"
)
// FakeDriver is a fake volume driver.
type FakeDriver struct {
name string
}
// NewFakeDriver returns a fake voluem driver.
func NewFakeDriver(name string) Driver {
return &FakeDriver{
name: name,
}
}
// Name returns the fake driver's name.
func (f *FakeDriver) Name(ctx context.Context) string {
return f.name
}
// StoreMode returns the fake driver's store model.
func (f *FakeDriver) StoreMode(ctx context.Context) VolumeStoreMode {
return UseLocalMetaStore | LocalStore
}
// Create a fake volume
func (f *FakeDriver) Create(ctx context.Context, id types.VolumeContext) (*types.Volume, error) {
// generate the mountPath
mountPath := path.Join("/fake", id.Name)
return types.NewVolumeFromContext(mountPath, "", id), nil
}
// Remove a fake volume
func (f *FakeDriver) Remove(ctx context.Context, volume *types.Volume) error {
return nil
}
// Path returns fake volume's path.
func (f *FakeDriver) Path(ctx context.Context, volume *types.Volume) (string, error) {
return path.Join("/fake", volume.Name), nil
}