Skip to content

Commit 9092db7

Browse files
committed
Updated to new API methods from docker/go-plugins-helpers
1 parent a26e6b3 commit 9092db7

File tree

6 files changed

+81
-75
lines changed

6 files changed

+81
-75
lines changed

netshare/drivers/ceph.go

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ package drivers
22

33
import (
44
"fmt"
5-
log "github.com/Sirupsen/logrus"
6-
"github.com/docker/go-plugins-helpers/volume"
75
"os"
86
"strings"
7+
8+
log "github.com/Sirupsen/logrus"
9+
"github.com/docker/go-plugins-helpers/volume"
910
)
1011

1112
const (
@@ -41,7 +42,7 @@ func NewCephDriver(root string, username string, password string, context string
4142
return d
4243
}
4344

44-
func (n cephDriver) Mount(r volume.MountRequest) volume.Response {
45+
func (n cephDriver) Mount(r *volume.MountRequest) (*volume.MountResponse, error) {
4546
log.Debugf("Entering Mount: %v", r)
4647
n.m.Lock()
4748
defer n.m.Unlock()
@@ -50,22 +51,22 @@ func (n cephDriver) Mount(r volume.MountRequest) volume.Response {
5051
if n.mountm.HasMount(r.Name) && n.mountm.Count(r.Name) > 0 {
5152
log.Infof("Using existing CEPH volume mount: %s", hostdir)
5253
n.mountm.Increment(r.Name)
53-
return volume.Response{Mountpoint: hostdir}
54+
return &volume.MountResponse{Mountpoint: hostdir}, nil
5455
}
5556

5657
log.Infof("Mounting CEPH volume %s on %s", source, hostdir)
5758
if err := createDest(hostdir); err != nil {
58-
return volume.Response{Err: err.Error()}
59+
return nil, err
5960
}
6061

6162
if err := n.mountVolume(r.Name, source, hostdir); err != nil {
62-
return volume.Response{Err: err.Error()}
63+
return nil, err
6364
}
6465
n.mountm.Add(r.Name, hostdir)
65-
return volume.Response{Mountpoint: hostdir}
66+
return &volume.MountResponse{Mountpoint: hostdir}, nil
6667
}
6768

68-
func (n cephDriver) Unmount(r volume.UnmountRequest) volume.Response {
69+
func (n cephDriver) Unmount(r *volume.UnmountRequest) error {
6970
log.Debugf("Entering Unmount: %v", r)
7071

7172
n.m.Lock()
@@ -76,24 +77,24 @@ func (n cephDriver) Unmount(r volume.UnmountRequest) volume.Response {
7677
if n.mountm.Count(r.Name) > 1 {
7778
log.Printf("Skipping unmount for %s - in use by other containers", r.Name)
7879
n.mountm.Decrement(r.Name)
79-
return volume.Response{}
80+
return nil
8081
}
8182
n.mountm.Decrement(r.Name)
8283
}
8384

8485
log.Infof("Unmounting volume name %s from %s", r.Name, hostdir)
8586

8687
if err := run(fmt.Sprintf("umount %s", hostdir)); err != nil {
87-
return volume.Response{Err: err.Error()}
88+
return err
8889
}
8990

9091
n.mountm.DeleteIfNotManaged(r.Name)
9192

9293
if err := os.RemoveAll(hostdir); err != nil {
93-
return volume.Response{Err: err.Error()}
94+
return err
9495
}
9596

96-
return volume.Response{}
97+
return nil
9798
}
9899

99100
func (n cephDriver) fixSource(name, id string) string {

netshare/drivers/cifs.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ func parseNetRC(path string) *netrc.Netrc {
7373
}
7474

7575
// Mount do the mounting
76-
func (c CifsDriver) Mount(r volume.MountRequest) volume.Response {
76+
func (c CifsDriver) Mount(r *volume.MountRequest) (*volume.MountResponse, error) {
7777
c.m.Lock()
7878
defer c.m.Unlock()
7979
hostdir := mountpoint(c.root, r.Name)
@@ -98,34 +98,34 @@ func (c CifsDriver) Mount(r volume.MountRequest) volume.Response {
9898
if err := run(fmt.Sprintf("mountpoint -q %s", hostdir)); err != nil {
9999
log.Infof("Existing CIFS volume not mounted, force remount.")
100100
} else {
101-
return volume.Response{Mountpoint: hostdir}
101+
return &volume.MountResponse{Mountpoint: hostdir}, nil
102102
}
103103
}
104104

105105
log.Infof("Mounting CIFS volume %s on %s", source, hostdir)
106106

107107
if err := createDest(hostdir); err != nil {
108-
return volume.Response{Err: err.Error()}
108+
return nil, err
109109
}
110110

111111
if err := c.mountVolume(r.Name, source, hostdir, c.getCreds(host)); err != nil {
112-
return volume.Response{Err: err.Error()}
112+
return nil, err
113113
}
114114
c.mountm.Add(r.Name, hostdir)
115115

116116
if c.mountm.GetOption(resolvedName, ShareOpt) != "" && c.mountm.GetOptionAsBool(resolvedName, CreateOpt) {
117117
log.Infof("Mount: Share and Create options enabled - using %s as sub-dir mount", resolvedName)
118118
datavol := filepath.Join(hostdir, resolvedName)
119119
if err := createDest(filepath.Join(hostdir, resolvedName)); err != nil {
120-
return volume.Response{Err: err.Error()}
120+
return nil, err
121121
}
122122
hostdir = datavol
123123
}
124-
return volume.Response{Mountpoint: hostdir}
124+
return &volume.MountResponse{Mountpoint: hostdir}, nil
125125
}
126126

127127
// Unmount do the unmounting
128-
func (c CifsDriver) Unmount(r volume.UnmountRequest) volume.Response {
128+
func (c CifsDriver) Unmount(r *volume.UnmountRequest) error {
129129
c.m.Lock()
130130
defer c.m.Unlock()
131131
hostdir := mountpoint(c.root, r.Name)
@@ -135,15 +135,15 @@ func (c CifsDriver) Unmount(r volume.UnmountRequest) volume.Response {
135135
if c.mountm.Count(r.Name) > 1 {
136136
log.Infof("Skipping unmount for %s - in use by other containers", r.Name)
137137
c.mountm.Decrement(r.Name)
138-
return volume.Response{}
138+
return nil
139139
}
140140
c.mountm.Decrement(r.Name)
141141
}
142142

143143
log.Infof("Unmounting volume %s from %s", source, hostdir)
144144

145145
if err := run(fmt.Sprintf("umount %s", hostdir)); err != nil {
146-
return volume.Response{Err: err.Error()}
146+
return err
147147
}
148148

149149
c.mountm.DeleteIfNotManaged(r.Name)
@@ -157,7 +157,7 @@ func (c CifsDriver) Unmount(r volume.UnmountRequest) volume.Response {
157157
// return volume.Response{Err: err.Error()}
158158
// }
159159

160-
return volume.Response{}
160+
return nil
161161
}
162162

163163
func (c CifsDriver) fixSource(name string) string {

netshare/drivers/driver.go

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
package drivers
22

33
import (
4+
"sync"
5+
46
log "github.com/Sirupsen/logrus"
57
"github.com/docker/go-plugins-helpers/volume"
6-
"sync"
78
)
89

910
type volumeDriver struct {
@@ -20,7 +21,7 @@ func newVolumeDriver(root string) volumeDriver {
2021
}
2122
}
2223

23-
func (v volumeDriver) Create(r volume.Request) volume.Response {
24+
func (v volumeDriver) Create(r *volume.CreateRequest) error {
2425
log.Debugf("Entering Create: name: %s, options %v", r.Name, r.Options)
2526

2627
v.m.Lock()
@@ -37,35 +38,35 @@ func (v volumeDriver) Create(r volume.Request) volume.Response {
3738

3839
dest := mountpoint(v.root, resName)
3940
if err := createDest(dest); err != nil {
40-
return volume.Response{Err: err.Error()}
41+
return err
4142
}
4243

4344
v.mountm.Create(resName, dest, r.Options)
44-
return volume.Response{}
45+
return nil
4546
}
4647

47-
func (v volumeDriver) Remove(r volume.Request) volume.Response {
48+
func (v volumeDriver) Remove(r *volume.RemoveRequest) error {
4849

4950
resolvedName, _ := resolveName(r.Name)
5051

51-
log.Debugf("Entering Remove: name: %s, resolved-name: %s, options %v", r.Name, resolvedName, r.Options)
52+
log.Debugf("Entering Remove: name: %s, resolved-name: %s", r.Name, resolvedName)
5253
v.m.Lock()
5354
defer v.m.Unlock()
5455

5556
if err := v.mountm.Delete(resolvedName); err != nil {
56-
return volume.Response{Err: err.Error()}
57+
return err
5758
}
58-
return volume.Response{}
59+
return nil
5960
}
6061

61-
func (v volumeDriver) Path(r volume.Request) volume.Response {
62+
func (v volumeDriver) Path(r *volume.PathRequest) (*volume.PathResponse, error) {
6263
resolvedName, _ := resolveName(r.Name)
6364

6465
log.Debugf("Host path for %s (%s) is at %s", r.Name, resolvedName, mountpoint(v.root, resolvedName))
65-
return volume.Response{Mountpoint: mountpoint(v.root, resolvedName)}
66+
return &volume.PathResponse{Mountpoint: mountpoint(v.root, resolvedName)}, nil
6667
}
6768

68-
func (v volumeDriver) Get(r volume.Request) volume.Response {
69+
func (v volumeDriver) Get(r *volume.GetRequest) (*volume.GetResponse, error) {
6970
log.Debugf("Entering Get: %v", r)
7071
v.m.Lock()
7172
defer v.m.Unlock()
@@ -75,19 +76,19 @@ func (v volumeDriver) Get(r volume.Request) volume.Response {
7576

7677
if v.mountm.HasMount(resolvedName) {
7778
log.Debugf("Get: mount found for %s, host directory: %s", resolvedName, hostdir)
78-
return volume.Response{Volume: &volume.Volume{Name: resolvedName, Mountpoint: hostdir}}
79+
return &volume.GetResponse{Volume: &volume.Volume{Name: resolvedName, Mountpoint: hostdir}}, nil
7980
}
80-
return volume.Response{}
81+
return nil, nil
8182
}
8283

83-
func (v volumeDriver) List(r volume.Request) volume.Response {
84-
log.Debugf("Entering List: %v", r)
85-
return volume.Response{Volumes: v.mountm.GetVolumes(v.root)}
84+
func (v volumeDriver) List() (*volume.ListResponse, error) {
85+
log.Debugf("Entering List")
86+
return &volume.ListResponse{Volumes: v.mountm.GetVolumes(v.root)}, nil
8687
}
8788

88-
func (v volumeDriver) Capabilities(r volume.Request) volume.Response {
89-
log.Debugf("Entering Capabilities: %v", r)
90-
return volume.Response{
89+
func (v volumeDriver) Capabilities() *volume.CapabilitiesResponse {
90+
// log.Debugf("Entering Capabilities: %v", r)
91+
return &volume.CapabilitiesResponse{
9192
Capabilities: volume.Capability{
9293
Scope: "local",
9394
},

netshare/drivers/efs.go

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@ package drivers
22

33
import (
44
"fmt"
5-
log "github.com/Sirupsen/logrus"
6-
"github.com/docker/go-plugins-helpers/volume"
75
"os"
86
"regexp"
97
"strings"
8+
9+
log "github.com/Sirupsen/logrus"
10+
"github.com/docker/go-plugins-helpers/volume"
1011
)
1112

1213
const (
@@ -15,10 +16,10 @@ const (
1516

1617
type efsDriver struct {
1718
volumeDriver
18-
resolve bool
19-
region string
20-
resolver *Resolver
21-
dnscache map[string]string
19+
resolve bool
20+
region string
21+
resolver *Resolver
22+
dnscache map[string]string
2223
}
2324

2425
func NewEFSDriver(root, nameserver string, resolve bool) efsDriver {
@@ -41,7 +42,7 @@ func NewEFSDriver(root, nameserver string, resolve bool) efsDriver {
4142
return d
4243
}
4344

44-
func (e efsDriver) Mount(r volume.MountRequest) volume.Response {
45+
func (e efsDriver) Mount(r *volume.MountRequest) (*volume.MountResponse, error) {
4546
e.m.Lock()
4647
defer e.m.Unlock()
4748
hostdir := mountpoint(e.root, r.Name)
@@ -50,23 +51,23 @@ func (e efsDriver) Mount(r volume.MountRequest) volume.Response {
5051
if e.mountm.HasMount(r.Name) && e.mountm.Count(r.Name) > 0 {
5152
log.Infof("Using existing EFS volume mount: %s", hostdir)
5253
e.mountm.Increment(r.Name)
53-
return volume.Response{Mountpoint: hostdir}
54+
return &volume.MountResponse{Mountpoint: hostdir}, nil
5455
}
5556

5657
log.Infof("Mounting EFS volume %s on %s", source, hostdir)
5758

5859
if err := createDest(hostdir); err != nil {
59-
return volume.Response{Err: err.Error()}
60+
return nil, err
6061
}
6162

6263
if err := e.mountVolume(source, hostdir); err != nil {
63-
return volume.Response{Err: err.Error()}
64+
return nil, err
6465
}
6566
e.mountm.Add(r.Name, hostdir)
66-
return volume.Response{Mountpoint: hostdir}
67+
return &volume.MountResponse{Mountpoint: hostdir}, nil
6768
}
6869

69-
func (e efsDriver) Unmount(r volume.UnmountRequest) volume.Response {
70+
func (e efsDriver) Unmount(r *volume.UnmountRequest) error {
7071
e.m.Lock()
7172
defer e.m.Unlock()
7273
hostdir := mountpoint(e.root, r.Name)
@@ -76,24 +77,24 @@ func (e efsDriver) Unmount(r volume.UnmountRequest) volume.Response {
7677
if e.mountm.Count(r.Name) > 1 {
7778
log.Infof("Skipping unmount for %s - in use by other containers", hostdir)
7879
e.mountm.Decrement(r.Name)
79-
return volume.Response{}
80+
return nil
8081
}
8182
e.mountm.Decrement(r.Name)
8283
}
8384

8485
log.Infof("Unmounting volume %s from %s", source, hostdir)
8586

8687
if err := run(fmt.Sprintf("umount %s", hostdir)); err != nil {
87-
return volume.Response{Err: err.Error()}
88+
return err
8889
}
8990

9091
e.mountm.DeleteIfNotManaged(r.Name)
9192

9293
if err := os.RemoveAll(r.Name); err != nil {
93-
return volume.Response{Err: err.Error()}
94+
return err
9495
}
9596

96-
return volume.Response{}
97+
return nil
9798
}
9899

99100
func (e efsDriver) fixSource(name, id string) string {

0 commit comments

Comments
 (0)