diff --git a/cluster/cluster.go b/cluster/cluster.go index 19ee1f89ea..c50dcad660 100644 --- a/cluster/cluster.go +++ b/cluster/cluster.go @@ -45,7 +45,7 @@ type Cluster interface { RemoveNetwork(network *Network) error // Create a volume - CreateVolume(request *types.VolumeCreateRequest) (*Volume, error) + CreateVolume(request *types.VolumeCreateRequest) (*types.Volume, error) // Return all volumes Volumes() Volumes diff --git a/cluster/engine.go b/cluster/engine.go index 86d5ffad0c..5a3cc80ea5 100644 --- a/cluster/engine.go +++ b/cluster/engine.go @@ -945,17 +945,16 @@ func (e *Engine) CreateNetwork(name string, request *types.NetworkCreate) (*type } // CreateVolume creates a volume in the engine -func (e *Engine) CreateVolume(request *types.VolumeCreateRequest) (*Volume, error) { +func (e *Engine) CreateVolume(request *types.VolumeCreateRequest) (*types.Volume, error) { volume, err := e.apiClient.VolumeCreate(context.Background(), *request) - - e.RefreshVolumes() e.CheckConnectionErr(err) - if err != nil { return nil, err } - return &Volume{Volume: volume, Engine: e}, nil + e.RefreshVolumes() + + return &volume, err } // encodeAuthToBase64 serializes the auth configuration as JSON base64 payload diff --git a/cluster/mesos/cluster.go b/cluster/mesos/cluster.go index 948b964e84..4c01caf737 100644 --- a/cluster/mesos/cluster.go +++ b/cluster/mesos/cluster.go @@ -301,7 +301,7 @@ func (c *Cluster) refreshNetworks() { } // CreateVolume creates a volume in the cluster -func (c *Cluster) CreateVolume(request *types.VolumeCreateRequest) (*cluster.Volume, error) { +func (c *Cluster) CreateVolume(request *types.VolumeCreateRequest) (*types.Volume, error) { return nil, errNotSupported } diff --git a/cluster/swarm/cluster.go b/cluster/swarm/cluster.go index f60f70b8f4..46de662bcf 100644 --- a/cluster/swarm/cluster.go +++ b/cluster/swarm/cluster.go @@ -494,10 +494,10 @@ func (c *Cluster) CreateNetwork(name string, request *types.NetworkCreate) (resp } // CreateVolume creates a volume in the cluster -func (c *Cluster) CreateVolume(request *types.VolumeCreateRequest) (*cluster.Volume, error) { +func (c *Cluster) CreateVolume(request *types.VolumeCreateRequest) (*types.Volume, error) { var ( wg sync.WaitGroup - volume *cluster.Volume + volume *types.Volume err error parts = strings.SplitN(request.Name, "/", 2) node = ""