Files
moby/client/network_disconnect.go
Austin Vazquez e9f28e2a41 client: refactor NetworkConnect, NetworkDisconnect, NetworkRemove
Signed-off-by: Austin Vazquez <austin.vazquez@docker.com>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-10-29 13:02:01 +01:00

41 lines
1.1 KiB
Go

package client
import (
"context"
"github.com/moby/moby/api/types/network"
)
// NetworkDisconnectOptions represents the data to be used to disconnect a container
// from the network.
type NetworkDisconnectOptions struct {
Container string
Force bool
}
// NetworkDisconnectResult represents the result of a NetworkDisconnect operation.
type NetworkDisconnectResult struct {
// Currently empty; placeholder for future fields.
}
// NetworkDisconnect disconnects a container from an existent network in the docker host.
func (cli *Client) NetworkDisconnect(ctx context.Context, networkID string, options NetworkDisconnectOptions) (NetworkDisconnectResult, error) {
networkID, err := trimID("network", networkID)
if err != nil {
return NetworkDisconnectResult{}, err
}
containerID, err := trimID("container", options.Container)
if err != nil {
return NetworkDisconnectResult{}, err
}
req := network.DisconnectRequest{
Container: containerID,
Force: options.Force,
}
resp, err := cli.post(ctx, "/networks/"+networkID+"/disconnect", nil, req, nil)
defer ensureReaderClosed(resp)
return NetworkDisconnectResult{}, err
}