diff --git a/api/server/router/network/network_routes.go b/api/server/router/network/network_routes.go index 05bc85c732..0bc4f0bd1a 100644 --- a/api/server/router/network/network_routes.go +++ b/api/server/router/network/network_routes.go @@ -239,7 +239,7 @@ func (n *networkRouter) postNetworkConnect(ctx context.Context, w http.ResponseW return err } - var connect types.NetworkConnect + var connect network.ConnectOptions if err := httputils.ReadJSON(r, &connect); err != nil { return err } @@ -256,7 +256,7 @@ func (n *networkRouter) postNetworkDisconnect(ctx context.Context, w http.Respon return err } - var disconnect types.NetworkDisconnect + var disconnect network.DisconnectOptions if err := httputils.ReadJSON(r, &disconnect); err != nil { return err } diff --git a/api/types/network/network.go b/api/types/network/network.go index f1f300f3d7..466e3a4aeb 100644 --- a/api/types/network/network.go +++ b/api/types/network/network.go @@ -17,6 +17,20 @@ const ( NetworkNat = "nat" ) +// ConnectOptions represents the data to be used to connect a container to the +// network. +type ConnectOptions struct { + Container string + EndpointConfig *EndpointSettings `json:",omitempty"` +} + +// DisconnectOptions represents the data to be used to disconnect a container +// from the network. +type DisconnectOptions struct { + Container string + Force bool +} + // Address represents an IP address type Address struct { Addr string diff --git a/api/types/types.go b/api/types/types.go index b90a060816..0dd24cd167 100644 --- a/api/types/types.go +++ b/api/types/types.go @@ -477,18 +477,6 @@ type NetworkCreateRequest struct { Name string // Name is the requested name of the network. } -// NetworkConnect represents the data to be used to connect a container to the network -type NetworkConnect struct { - Container string - EndpointConfig *network.EndpointSettings `json:",omitempty"` -} - -// NetworkDisconnect represents the data to be used to disconnect a container from the network -type NetworkDisconnect struct { - Container string - Force bool -} - // NetworkInspectOptions holds parameters to inspect network type NetworkInspectOptions struct { Scope string diff --git a/api/types/types_deprecated.go b/api/types/types_deprecated.go index 66bb00d20f..a385801399 100644 --- a/api/types/types_deprecated.go +++ b/api/types/types_deprecated.go @@ -39,3 +39,13 @@ type ImageRemoveOptions = image.RemoveOptions // // Deprecated: use [network.CreateResponse]. type NetworkCreateResponse = network.CreateResponse + +// NetworkConnect represents the data to be used to connect a container to the network +// +// Deprecated: use [network.ConnectOptions]. +type NetworkConnect = network.ConnectOptions + +// NetworkDisconnect represents the data to be used to disconnect a container from the network +// +// Deprecated: use [network.DisconnectOptions]. +type NetworkDisconnect = network.DisconnectOptions diff --git a/client/network_connect.go b/client/network_connect.go index 5718946134..8daf890635 100644 --- a/client/network_connect.go +++ b/client/network_connect.go @@ -3,13 +3,12 @@ package client // import "github.com/docker/docker/client" import ( "context" - "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/network" ) // NetworkConnect connects a container to an existent network in the docker host. func (cli *Client) NetworkConnect(ctx context.Context, networkID, containerID string, config *network.EndpointSettings) error { - nc := types.NetworkConnect{ + nc := network.ConnectOptions{ Container: containerID, EndpointConfig: config, } diff --git a/client/network_connect_test.go b/client/network_connect_test.go index d451ad04e6..60005b9fac 100644 --- a/client/network_connect_test.go +++ b/client/network_connect_test.go @@ -10,7 +10,6 @@ import ( "strings" "testing" - "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/network" "github.com/docker/docker/errdefs" "gotest.tools/v3/assert" @@ -39,7 +38,7 @@ func TestNetworkConnectEmptyNilEndpointSettings(t *testing.T) { return nil, fmt.Errorf("expected POST method, got %s", req.Method) } - var connect types.NetworkConnect + var connect network.ConnectOptions if err := json.NewDecoder(req.Body).Decode(&connect); err != nil { return nil, err } @@ -78,7 +77,7 @@ func TestNetworkConnect(t *testing.T) { return nil, fmt.Errorf("expected POST method, got %s", req.Method) } - var connect types.NetworkConnect + var connect network.ConnectOptions if err := json.NewDecoder(req.Body).Decode(&connect); err != nil { return nil, err } diff --git a/client/network_disconnect.go b/client/network_disconnect.go index dd15676656..aaf428d853 100644 --- a/client/network_disconnect.go +++ b/client/network_disconnect.go @@ -3,12 +3,15 @@ package client // import "github.com/docker/docker/client" import ( "context" - "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/network" ) // NetworkDisconnect disconnects a container from an existent network in the docker host. func (cli *Client) NetworkDisconnect(ctx context.Context, networkID, containerID string, force bool) error { - nd := types.NetworkDisconnect{Container: containerID, Force: force} + nd := network.DisconnectOptions{ + Container: containerID, + Force: force, + } resp, err := cli.post(ctx, "/networks/"+networkID+"/disconnect", nil, nd, nil) ensureReaderClosed(resp) return err diff --git a/client/network_disconnect_test.go b/client/network_disconnect_test.go index 59ee59a8a3..687a412595 100644 --- a/client/network_disconnect_test.go +++ b/client/network_disconnect_test.go @@ -10,7 +10,7 @@ import ( "strings" "testing" - "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/network" "github.com/docker/docker/errdefs" "gotest.tools/v3/assert" is "gotest.tools/v3/assert/cmp" @@ -38,7 +38,7 @@ func TestNetworkDisconnect(t *testing.T) { return nil, fmt.Errorf("expected POST method, got %s", req.Method) } - var disconnect types.NetworkDisconnect + var disconnect network.DisconnectOptions if err := json.NewDecoder(req.Body).Decode(&disconnect); err != nil { return nil, err } diff --git a/integration-cli/docker_api_network_test.go b/integration-cli/docker_api_network_test.go index e1d772175e..15d126df45 100644 --- a/integration-cli/docker_api_network_test.go +++ b/integration-cli/docker_api_network_test.go @@ -290,23 +290,21 @@ func createNetwork(c *testing.T, config types.NetworkCreateRequest, expectedStat } func connectNetwork(c *testing.T, nid, cid string) { - config := types.NetworkConnect{ + resp, _, err := request.Post(testutil.GetContext(c), "/networks/"+nid+"/connect", request.JSONBody(network.ConnectOptions{ Container: cid, - } - - resp, _, err := request.Post(testutil.GetContext(c), "/networks/"+nid+"/connect", request.JSONBody(config)) - assert.Equal(c, resp.StatusCode, http.StatusOK) + })) assert.NilError(c, err) + assert.Equal(c, resp.StatusCode, http.StatusOK) } func disconnectNetwork(c *testing.T, nid, cid string) { - config := types.NetworkConnect{ + config := network.ConnectOptions{ Container: cid, } resp, _, err := request.Post(testutil.GetContext(c), "/networks/"+nid+"/disconnect", request.JSONBody(config)) - assert.Equal(c, resp.StatusCode, http.StatusOK) assert.NilError(c, err) + assert.Equal(c, resp.StatusCode, http.StatusOK) } func deleteNetwork(c *testing.T, id string, shouldSucceed bool) {