blob: 40db955a90b10e6900149dd2b242c14c7baec9c9 [file] [log] [blame]
package client
import (
"context"
"github.com/moby/moby/api/types/network"
)
// NetworkConnectOptions represents the data to be used to connect a container to the
// network.
type NetworkConnectOptions struct {
Container string
EndpointConfig *network.EndpointSettings
}
// NetworkConnectResult represents the result of a NetworkConnect operation.
type NetworkConnectResult struct {
// Currently empty; placeholder for future fields.
}
// NetworkConnect connects a container to an existent network in the docker host.
func (cli *Client) NetworkConnect(ctx context.Context, networkID string, options NetworkConnectOptions) (NetworkConnectResult, error) {
networkID, err := trimID("network", networkID)
if err != nil {
return NetworkConnectResult{}, err
}
containerID, err := trimID("container", options.Container)
if err != nil {
return NetworkConnectResult{}, err
}
nc := network.ConnectRequest{
Container: containerID,
EndpointConfig: options.EndpointConfig,
}
resp, err := cli.post(ctx, "/networks/"+networkID+"/connect", nil, nc, nil)
defer ensureReaderClosed(resp)
return NetworkConnectResult{}, err
}