From 99038a250c6297cbb0e3fcc2feed682a396ad36d Mon Sep 17 00:00:00 2001 From: Thomas Fankhauser Date: Tue, 15 Aug 2017 15:37:54 +0200 Subject: [PATCH] Allow go idiomatic return of nil MountResponse, PathResponse and GetResponse on error from driver. --- volume/api.go | 15 ++++++++++++--- volume/api_test.go | 6 +++--- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/volume/api.go b/volume/api.go index 592a1e8..a72c646 100644 --- a/volume/api.go +++ b/volume/api.go @@ -185,7 +185,10 @@ func (h *Handler) initMux() { } res, err := h.driver.Path(req) if err != nil { - res.Err = err.Error() + msg := err.Error() + res = &PathResponse{Err: msg} + sdk.EncodeResponse(w, res, msg) + return } sdk.EncodeResponse(w, res, "") }) @@ -198,7 +201,10 @@ func (h *Handler) initMux() { } res, err := h.driver.Get(req) if err != nil { - res.Err = err.Error() + msg := err.Error() + res = &GetResponse{Err: msg} + sdk.EncodeResponse(w, res, msg) + return } sdk.EncodeResponse(w, res, "") }) @@ -221,7 +227,10 @@ func (h *Handler) initMux() { log.Println("Entering go-plugins-helpers listPath") res, err := h.driver.List() if err != nil { - res.Err = err.Error() + msg := err.Error() + res = &ListResponse{Err: msg} + sdk.EncodeResponse(w, res, msg) + return } sdk.EncodeResponse(w, res, "") }) diff --git a/volume/api_test.go b/volume/api_test.go index 7332f65..d015375 100644 --- a/volume/api_test.go +++ b/volume/api_test.go @@ -157,7 +157,7 @@ func (p *testPlugin) Get(req *GetRequest) (*GetResponse, error) { return &GetResponse{Volume: &Volume{Name: v}}, nil } } - return &GetResponse{}, fmt.Errorf("no such volume") + return nil, fmt.Errorf("no such volume") } func (p *testPlugin) List() (*ListResponse, error) { @@ -187,7 +187,7 @@ func (p *testPlugin) Path(req *PathRequest) (*PathResponse, error) { return &PathResponse{}, nil } } - return &PathResponse{}, fmt.Errorf("no such volume") + return nil, fmt.Errorf("no such volume") } func (p *testPlugin) Mount(req *MountRequest) (*MountResponse, error) { @@ -197,7 +197,7 @@ func (p *testPlugin) Mount(req *MountRequest) (*MountResponse, error) { return &MountResponse{}, nil } } - return &MountResponse{}, fmt.Errorf("no such volume") + return nil, fmt.Errorf("no such volume") } func (p *testPlugin) Unmount(req *UnmountRequest) error {