api/types: migrate NetworkConnect, NetworkDisconnect to api/types/network

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
Sebastiaan van Stijn
2024-05-29 16:44:25 +02:00
parent 89624e09e6
commit 245d12175f
9 changed files with 41 additions and 30 deletions

View File

@@ -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
}

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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,
}

View File

@@ -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
}

View File

@@ -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

View File

@@ -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
}

View File

@@ -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) {