docker/docker

View on GitHub
volume/drivers/proxy.go

Summary

Maintainability
A
2 hrs
Test Coverage
// generated code - DO NOT EDIT

package drivers // import "github.com/docker/docker/volume/drivers"

import (
    "errors"
    "time"

    "github.com/docker/docker/pkg/plugins"
    "github.com/docker/docker/volume"
)

const (
    longTimeout  = 2 * time.Minute
    shortTimeout = 1 * time.Minute
)

type client interface {
    CallWithOptions(string, interface{}, interface{}, ...func(*plugins.RequestOpts)) error
}

type volumeDriverProxy struct {
    client
}

type volumeDriverProxyCreateRequest struct {
    Name string
    Opts map[string]string
}

type volumeDriverProxyCreateResponse struct {
    Err string
}

func (pp *volumeDriverProxy) Create(name string, opts map[string]string) (err error) {
    var (
        req volumeDriverProxyCreateRequest
        ret volumeDriverProxyCreateResponse
    )

    req.Name = name
    req.Opts = opts

    if err = pp.CallWithOptions("VolumeDriver.Create", req, &ret, plugins.WithRequestTimeout(longTimeout)); err != nil {
        return
    }

    if ret.Err != "" {
        err = errors.New(ret.Err)
    }

    return
}

type volumeDriverProxyRemoveRequest struct {
    Name string
}

type volumeDriverProxyRemoveResponse struct {
    Err string
}

func (pp *volumeDriverProxy) Remove(name string) (err error) {
    var (
        req volumeDriverProxyRemoveRequest
        ret volumeDriverProxyRemoveResponse
    )

    req.Name = name

    if err = pp.CallWithOptions("VolumeDriver.Remove", req, &ret, plugins.WithRequestTimeout(shortTimeout)); err != nil {
        return
    }

    if ret.Err != "" {
        err = errors.New(ret.Err)
    }

    return
}

type volumeDriverProxyPathRequest struct {
    Name string
}

type volumeDriverProxyPathResponse struct {
    Mountpoint string
    Err        string
}

func (pp *volumeDriverProxy) Path(name string) (mountpoint string, err error) {
    var (
        req volumeDriverProxyPathRequest
        ret volumeDriverProxyPathResponse
    )

    req.Name = name

    if err = pp.CallWithOptions("VolumeDriver.Path", req, &ret, plugins.WithRequestTimeout(shortTimeout)); err != nil {
        return
    }

    mountpoint = ret.Mountpoint

    if ret.Err != "" {
        err = errors.New(ret.Err)
    }

    return
}

type volumeDriverProxyMountRequest struct {
    Name string
    ID   string
}

type volumeDriverProxyMountResponse struct {
    Mountpoint string
    Err        string
}

func (pp *volumeDriverProxy) Mount(name string, id string) (mountpoint string, err error) {
    var (
        req volumeDriverProxyMountRequest
        ret volumeDriverProxyMountResponse
    )

    req.Name = name
    req.ID = id

    if err = pp.CallWithOptions("VolumeDriver.Mount", req, &ret, plugins.WithRequestTimeout(longTimeout)); err != nil {
        return
    }

    mountpoint = ret.Mountpoint

    if ret.Err != "" {
        err = errors.New(ret.Err)
    }

    return
}

type volumeDriverProxyUnmountRequest struct {
    Name string
    ID   string
}

type volumeDriverProxyUnmountResponse struct {
    Err string
}

func (pp *volumeDriverProxy) Unmount(name string, id string) (err error) {
    var (
        req volumeDriverProxyUnmountRequest
        ret volumeDriverProxyUnmountResponse
    )

    req.Name = name
    req.ID = id

    if err = pp.CallWithOptions("VolumeDriver.Unmount", req, &ret, plugins.WithRequestTimeout(shortTimeout)); err != nil {
        return
    }

    if ret.Err != "" {
        err = errors.New(ret.Err)
    }

    return
}

type volumeDriverProxyListRequest struct{}

type volumeDriverProxyListResponse struct {
    Volumes []*proxyVolume
    Err     string
}

func (pp *volumeDriverProxy) List() (volumes []*proxyVolume, err error) {
    var (
        req volumeDriverProxyListRequest
        ret volumeDriverProxyListResponse
    )

    if err = pp.CallWithOptions("VolumeDriver.List", req, &ret, plugins.WithRequestTimeout(shortTimeout)); err != nil {
        return
    }

    volumes = ret.Volumes

    if ret.Err != "" {
        err = errors.New(ret.Err)
    }

    return
}

type volumeDriverProxyGetRequest struct {
    Name string
}

type volumeDriverProxyGetResponse struct {
    Volume *proxyVolume
    Err    string
}

func (pp *volumeDriverProxy) Get(name string) (volume *proxyVolume, err error) {
    var (
        req volumeDriverProxyGetRequest
        ret volumeDriverProxyGetResponse
    )

    req.Name = name

    if err = pp.CallWithOptions("VolumeDriver.Get", req, &ret, plugins.WithRequestTimeout(shortTimeout)); err != nil {
        return
    }

    volume = ret.Volume

    if ret.Err != "" {
        err = errors.New(ret.Err)
    }

    return
}

type volumeDriverProxyCapabilitiesRequest struct{}

type volumeDriverProxyCapabilitiesResponse struct {
    Capabilities volume.Capability
    Err          string
}

func (pp *volumeDriverProxy) Capabilities() (capabilities volume.Capability, err error) {
    var (
        req volumeDriverProxyCapabilitiesRequest
        ret volumeDriverProxyCapabilitiesResponse
    )

    if err = pp.CallWithOptions("VolumeDriver.Capabilities", req, &ret, plugins.WithRequestTimeout(shortTimeout)); err != nil {
        return
    }

    capabilities = ret.Capabilities

    if ret.Err != "" {
        err = errors.New(ret.Err)
    }

    return
}