forked from Ivasoft/objectivefs-docker-volume
This commit is contained in:
36
main.go
36
main.go
@@ -22,7 +22,6 @@ import (
|
||||
"os/user"
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/docker/go-plugins-helpers/volume"
|
||||
@@ -40,7 +39,7 @@ type ofsVolume struct {
|
||||
}
|
||||
|
||||
type ofsDriver struct {
|
||||
sync.RWMutex
|
||||
//sync.RWMutex
|
||||
volumes map[string]*ofsVolume
|
||||
defEnv map[string]string
|
||||
}
|
||||
@@ -49,8 +48,8 @@ var version = "1.0"
|
||||
|
||||
func (d ofsDriver) Create(r *volume.CreateRequest) error {
|
||||
log.WithFields(log.Fields{"name": r.Name}).Info("Create ObjectiveFS Volume")
|
||||
d.Lock()
|
||||
defer d.Unlock()
|
||||
//d.Lock()
|
||||
//defer d.Unlock()
|
||||
|
||||
if _, ok := d.volumes[r.Name]; ok {
|
||||
return fmt.Errorf("volume '%s' already exists", r.Name)
|
||||
@@ -85,8 +84,8 @@ func (d ofsDriver) Create(r *volume.CreateRequest) error {
|
||||
}
|
||||
|
||||
func (d ofsDriver) List() (*volume.ListResponse, error) {
|
||||
d.Lock()
|
||||
defer d.Unlock()
|
||||
//d.Lock()
|
||||
//defer d.Unlock()
|
||||
|
||||
var vs []*volume.Volume
|
||||
for _, v := range d.volumes {
|
||||
@@ -96,8 +95,8 @@ func (d ofsDriver) List() (*volume.ListResponse, error) {
|
||||
}
|
||||
|
||||
func (d ofsDriver) Get(r *volume.GetRequest) (*volume.GetResponse, error) {
|
||||
d.Lock()
|
||||
defer d.Unlock()
|
||||
//d.Lock()
|
||||
//defer d.Unlock()
|
||||
|
||||
v, ok := d.volumes[r.Name]
|
||||
if !ok {
|
||||
@@ -122,8 +121,8 @@ func umount(v *ofsVolume) error {
|
||||
}
|
||||
|
||||
func (d ofsDriver) Remove(r *volume.RemoveRequest) error {
|
||||
d.Lock()
|
||||
defer d.Unlock()
|
||||
//d.Lock()
|
||||
//defer d.Unlock()
|
||||
|
||||
v, ok := d.volumes[r.Name]
|
||||
if !ok {
|
||||
@@ -140,8 +139,8 @@ func (d ofsDriver) Remove(r *volume.RemoveRequest) error {
|
||||
}
|
||||
|
||||
func (d ofsDriver) Path(r *volume.PathRequest) (*volume.PathResponse, error) {
|
||||
d.Lock()
|
||||
defer d.Unlock()
|
||||
//d.Lock()
|
||||
//defer d.Unlock()
|
||||
|
||||
v, ok := d.volumes[r.Name]
|
||||
if !ok {
|
||||
@@ -151,8 +150,8 @@ func (d ofsDriver) Path(r *volume.PathRequest) (*volume.PathResponse, error) {
|
||||
}
|
||||
|
||||
func (d ofsDriver) Mount(r *volume.MountRequest) (*volume.MountResponse, error) {
|
||||
d.Lock()
|
||||
defer d.Unlock()
|
||||
//d.Lock()
|
||||
//defer d.Unlock()
|
||||
|
||||
v, ok := d.volumes[r.Name]
|
||||
if !ok {
|
||||
@@ -197,6 +196,7 @@ func (d ofsDriver) Mount(r *volume.MountRequest) (*volume.MountResponse, error)
|
||||
// to initially connect. So we just wait a fixed amount of time and check for process exit.
|
||||
time.Sleep(1 * time.Second)
|
||||
if cmd.ProcessState.Exited() {
|
||||
log.WithFields(log.Fields{"name": r.Name, "exitStatus": cmd.ProcessState.ExitCode()}).Error("Volume mount failed")
|
||||
return &volume.MountResponse{}, fmt.Errorf("unexpected error mounting '%s' exist status: %v", r.Name, cmd.ProcessState.ExitCode())
|
||||
}
|
||||
|
||||
@@ -208,8 +208,8 @@ func (d ofsDriver) Mount(r *volume.MountRequest) (*volume.MountResponse, error)
|
||||
}
|
||||
|
||||
func (d ofsDriver) Unmount(r *volume.UnmountRequest) error {
|
||||
d.Lock()
|
||||
defer d.Unlock()
|
||||
//d.Lock()
|
||||
//defer d.Unlock()
|
||||
|
||||
v, ok := d.volumes[r.Name]
|
||||
if !ok {
|
||||
@@ -226,8 +226,8 @@ func (d ofsDriver) Unmount(r *volume.UnmountRequest) error {
|
||||
}
|
||||
|
||||
func (d ofsDriver) Capabilities() *volume.CapabilitiesResponse {
|
||||
d.Lock()
|
||||
defer d.Unlock()
|
||||
//d.Lock()
|
||||
//defer d.Unlock()
|
||||
|
||||
return &volume.CapabilitiesResponse{Capabilities: volume.Capability{Scope: "local"}}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user