github.com/fntlnz/docker@v1.9.0-rc3/volume/drivers/adapter.go (about) 1 package volumedrivers 2 3 import "github.com/docker/docker/volume" 4 5 type volumeDriverAdapter struct { 6 name string 7 proxy *volumeDriverProxy 8 } 9 10 func (a *volumeDriverAdapter) Name() string { 11 return a.name 12 } 13 14 func (a *volumeDriverAdapter) Create(name string, opts map[string]string) (volume.Volume, error) { 15 err := a.proxy.Create(name, opts) 16 if err != nil { 17 return nil, err 18 } 19 return &volumeAdapter{ 20 proxy: a.proxy, 21 name: name, 22 driverName: a.name}, nil 23 } 24 25 func (a *volumeDriverAdapter) Remove(v volume.Volume) error { 26 return a.proxy.Remove(v.Name()) 27 } 28 29 type volumeAdapter struct { 30 proxy *volumeDriverProxy 31 name string 32 driverName string 33 eMount string // ephemeral host volume path 34 } 35 36 type proxyVolume struct { 37 Name string 38 Mountpoint string 39 } 40 41 func (a *volumeAdapter) Name() string { 42 return a.name 43 } 44 45 func (a *volumeAdapter) DriverName() string { 46 return a.driverName 47 } 48 49 func (a *volumeAdapter) Path() string { 50 if len(a.eMount) > 0 { 51 return a.eMount 52 } 53 m, _ := a.proxy.Path(a.name) 54 return m 55 } 56 57 func (a *volumeAdapter) Mount() (string, error) { 58 var err error 59 a.eMount, err = a.proxy.Mount(a.name) 60 return a.eMount, err 61 } 62 63 func (a *volumeAdapter) Unmount() error { 64 return a.proxy.Unmount(a.name) 65 }