diff --git a/main.go b/main.go index b34bc67..51ecd19 100644 --- a/main.go +++ b/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"}} }