client: refactor InspectOptions to NetworkInspectOptions

Signed-off-by: Austin Vazquez <austin.vazquez@docker.com>
This commit is contained in:
Austin Vazquez
2025-08-21 20:45:23 -05:00
parent 5eaed0366c
commit fe8516cf4b
17 changed files with 52 additions and 52 deletions

View File

@@ -131,8 +131,8 @@ type NetworkAPIClient interface {
NetworkConnect(ctx context.Context, network, container string, config *network.EndpointSettings) error NetworkConnect(ctx context.Context, network, container string, config *network.EndpointSettings) error
NetworkCreate(ctx context.Context, name string, options network.CreateOptions) (network.CreateResponse, error) NetworkCreate(ctx context.Context, name string, options network.CreateOptions) (network.CreateResponse, error)
NetworkDisconnect(ctx context.Context, network, container string, force bool) error NetworkDisconnect(ctx context.Context, network, container string, force bool) error
NetworkInspect(ctx context.Context, network string, options InspectOptions) (network.Inspect, error) NetworkInspect(ctx context.Context, network string, options NetworkInspectOptions) (network.Inspect, error)
NetworkInspectWithRaw(ctx context.Context, network string, options InspectOptions) (network.Inspect, []byte, error) NetworkInspectWithRaw(ctx context.Context, network string, options NetworkInspectOptions) (network.Inspect, []byte, error)
NetworkList(ctx context.Context, options NetworkListOptions) ([]network.Summary, error) NetworkList(ctx context.Context, options NetworkListOptions) ([]network.Summary, error)
NetworkRemove(ctx context.Context, network string) error NetworkRemove(ctx context.Context, network string) error
NetworksPrune(ctx context.Context, pruneFilter filters.Args) (network.PruneReport, error) NetworksPrune(ctx context.Context, pruneFilter filters.Args) (network.PruneReport, error)

View File

@@ -11,13 +11,13 @@ import (
) )
// NetworkInspect returns the information for a specific network configured in the docker host. // NetworkInspect returns the information for a specific network configured in the docker host.
func (cli *Client) NetworkInspect(ctx context.Context, networkID string, options InspectOptions) (network.Inspect, error) { func (cli *Client) NetworkInspect(ctx context.Context, networkID string, options NetworkInspectOptions) (network.Inspect, error) {
networkResource, _, err := cli.NetworkInspectWithRaw(ctx, networkID, options) networkResource, _, err := cli.NetworkInspectWithRaw(ctx, networkID, options)
return networkResource, err return networkResource, err
} }
// NetworkInspectWithRaw returns the information for a specific network configured in the docker host and its raw representation. // NetworkInspectWithRaw returns the information for a specific network configured in the docker host and its raw representation.
func (cli *Client) NetworkInspectWithRaw(ctx context.Context, networkID string, options InspectOptions) (network.Inspect, []byte, error) { func (cli *Client) NetworkInspectWithRaw(ctx context.Context, networkID string, options NetworkInspectOptions) (network.Inspect, []byte, error) {
networkID, err := trimID("network", networkID) networkID, err := trimID("network", networkID)
if err != nil { if err != nil {
return network.Inspect{}, nil, err return network.Inspect{}, nil, err

View File

@@ -1,7 +1,7 @@
package client package client
// InspectOptions holds parameters to inspect network. // NetworkInspectOptions holds parameters to inspect network.
type InspectOptions struct { type NetworkInspectOptions struct {
Scope string Scope string
Verbose bool Verbose bool
} }

View File

@@ -68,39 +68,39 @@ func TestNetworkInspect(t *testing.T) {
t.Run("empty ID", func(t *testing.T) { t.Run("empty ID", func(t *testing.T) {
// verify that the client does not create a request if the network-ID/name is empty. // verify that the client does not create a request if the network-ID/name is empty.
_, err := client.NetworkInspect(context.Background(), "", InspectOptions{}) _, err := client.NetworkInspect(context.Background(), "", NetworkInspectOptions{})
assert.Check(t, is.ErrorType(err, cerrdefs.IsInvalidArgument)) assert.Check(t, is.ErrorType(err, cerrdefs.IsInvalidArgument))
assert.Check(t, is.ErrorContains(err, "value is empty")) assert.Check(t, is.ErrorContains(err, "value is empty"))
_, err = client.NetworkInspect(context.Background(), " ", InspectOptions{}) _, err = client.NetworkInspect(context.Background(), " ", NetworkInspectOptions{})
assert.Check(t, is.ErrorType(err, cerrdefs.IsInvalidArgument)) assert.Check(t, is.ErrorType(err, cerrdefs.IsInvalidArgument))
assert.Check(t, is.ErrorContains(err, "value is empty")) assert.Check(t, is.ErrorContains(err, "value is empty"))
}) })
t.Run("no options", func(t *testing.T) { t.Run("no options", func(t *testing.T) {
r, err := client.NetworkInspect(context.Background(), "network_id", InspectOptions{}) r, err := client.NetworkInspect(context.Background(), "network_id", NetworkInspectOptions{})
assert.NilError(t, err) assert.NilError(t, err)
assert.Check(t, is.Equal(r.Name, "mynetwork")) assert.Check(t, is.Equal(r.Name, "mynetwork"))
}) })
t.Run("verbose", func(t *testing.T) { t.Run("verbose", func(t *testing.T) {
r, err := client.NetworkInspect(context.Background(), "network_id", InspectOptions{Verbose: true}) r, err := client.NetworkInspect(context.Background(), "network_id", NetworkInspectOptions{Verbose: true})
assert.NilError(t, err) assert.NilError(t, err)
assert.Check(t, is.Equal(r.Name, "mynetwork")) assert.Check(t, is.Equal(r.Name, "mynetwork"))
_, ok := r.Services["web"] _, ok := r.Services["web"]
assert.Check(t, ok, "expected service `web` missing in the verbose output") assert.Check(t, ok, "expected service `web` missing in the verbose output")
}) })
t.Run("global scope", func(t *testing.T) { t.Run("global scope", func(t *testing.T) {
_, err := client.NetworkInspect(context.Background(), "network_id", InspectOptions{Scope: "global"}) _, err := client.NetworkInspect(context.Background(), "network_id", NetworkInspectOptions{Scope: "global"})
assert.Check(t, is.ErrorContains(err, "Error: No such network: network_id")) assert.Check(t, is.ErrorContains(err, "Error: No such network: network_id"))
assert.Check(t, is.ErrorType(err, cerrdefs.IsNotFound)) assert.Check(t, is.ErrorType(err, cerrdefs.IsNotFound))
}) })
t.Run("unknown network", func(t *testing.T) { t.Run("unknown network", func(t *testing.T) {
_, err := client.NetworkInspect(context.Background(), "unknown", InspectOptions{}) _, err := client.NetworkInspect(context.Background(), "unknown", NetworkInspectOptions{})
assert.Check(t, is.ErrorContains(err, "Error: No such network: unknown")) assert.Check(t, is.ErrorContains(err, "Error: No such network: unknown"))
assert.Check(t, is.ErrorType(err, cerrdefs.IsNotFound)) assert.Check(t, is.ErrorType(err, cerrdefs.IsNotFound))
}) })
t.Run("server error", func(t *testing.T) { t.Run("server error", func(t *testing.T) {
// Just testing that an internal server error is converted correctly by the client // Just testing that an internal server error is converted correctly by the client
_, err := client.NetworkInspect(context.Background(), "test-500-response", InspectOptions{}) _, err := client.NetworkInspect(context.Background(), "test-500-response", NetworkInspectOptions{})
assert.Check(t, is.ErrorType(err, cerrdefs.IsInternal)) assert.Check(t, is.ErrorType(err, cerrdefs.IsInternal))
}) })
} }

View File

@@ -1026,11 +1026,11 @@ func (s *DockerSwarmSuite) TestAPINetworkInspectWithScope(c *testing.T) {
resp, err := apiclient.NetworkCreate(ctx, name, network.CreateOptions{Driver: "overlay"}) resp, err := apiclient.NetworkCreate(ctx, name, network.CreateOptions{Driver: "overlay"})
assert.NilError(c, err) assert.NilError(c, err)
nw, err := apiclient.NetworkInspect(ctx, name, client.InspectOptions{}) nw, err := apiclient.NetworkInspect(ctx, name, client.NetworkInspectOptions{})
assert.NilError(c, err) assert.NilError(c, err)
assert.Check(c, is.Equal("swarm", nw.Scope)) assert.Check(c, is.Equal("swarm", nw.Scope))
assert.Check(c, is.Equal(resp.ID, nw.ID)) assert.Check(c, is.Equal(resp.ID, nw.ID))
_, err = apiclient.NetworkInspect(ctx, name, client.InspectOptions{Scope: "local"}) _, err = apiclient.NetworkInspect(ctx, name, client.NetworkInspectOptions{Scope: "local"})
assert.Check(c, is.ErrorType(err, cerrdefs.IsNotFound)) assert.Check(c, is.ErrorType(err, cerrdefs.IsNotFound))
} }

View File

@@ -153,7 +153,7 @@ func TestDaemonHostGatewayIP(t *testing.T) {
assert.NilError(t, err) assert.NilError(t, err)
assert.Assert(t, is.Len(res.Stderr(), 0)) assert.Assert(t, is.Len(res.Stderr(), 0))
assert.Equal(t, 0, res.ExitCode) assert.Equal(t, 0, res.ExitCode)
inspect, err := c.NetworkInspect(ctx, "bridge", client.InspectOptions{}) inspect, err := c.NetworkInspect(ctx, "bridge", client.NetworkInspectOptions{})
assert.NilError(t, err) assert.NilError(t, err)
assert.Check(t, is.Contains(res.Stdout(), inspect.IPAM.Config[0].Gateway)) assert.Check(t, is.Contains(res.Stdout(), inspect.IPAM.Config[0].Gateway))
c.ContainerRemove(ctx, cID, containertypes.RemoveOptions{Force: true}) c.ContainerRemove(ctx, cID, containertypes.RemoveOptions{Force: true})

View File

@@ -419,7 +419,7 @@ func testDefaultBridgeIPAM(ctx context.Context, t *testing.T, tc defaultBridgeIP
c := d.NewClientT(t) c := d.NewClientT(t)
defer c.Close() defer c.Close()
insp, err := c.NetworkInspect(ctx, network.NetworkBridge, client.InspectOptions{}) insp, err := c.NetworkInspect(ctx, network.NetworkBridge, client.NetworkInspectOptions{})
assert.NilError(t, err) assert.NilError(t, err)
expIPAMConfig := slices.Clone(tc.expIPAMConfig) expIPAMConfig := slices.Clone(tc.expIPAMConfig)
for i := range expIPAMConfig { for i := range expIPAMConfig {

View File

@@ -10,7 +10,7 @@ import (
// IsRemoved verifies the network is removed. // IsRemoved verifies the network is removed.
func IsRemoved(ctx context.Context, apiClient client.NetworkAPIClient, networkID string) func(log poll.LogT) poll.Result { func IsRemoved(ctx context.Context, apiClient client.NetworkAPIClient, networkID string) func(log poll.LogT) poll.Result {
return func(log poll.LogT) poll.Result { return func(log poll.LogT) poll.Result {
_, err := apiClient.NetworkInspect(ctx, networkID, client.InspectOptions{}) _, err := apiClient.NetworkInspect(ctx, networkID, client.NetworkInspectOptions{})
if err == nil { if err == nil {
return poll.Continue("waiting for network %s to be removed", networkID) return poll.Continue("waiting for network %s to be removed", networkID)
} }

View File

@@ -65,7 +65,7 @@ func TestCreateWithIPv6DefaultsToULAPrefix(t *testing.T) {
network.CreateNoError(ctx, t, apiClient, nwName, network.WithIPv6()) network.CreateNoError(ctx, t, apiClient, nwName, network.WithIPv6())
defer network.RemoveNoError(ctx, t, apiClient, nwName) defer network.RemoveNoError(ctx, t, apiClient, nwName)
nw, err := apiClient.NetworkInspect(ctx, "testnetula", client.InspectOptions{}) nw, err := apiClient.NetworkInspect(ctx, "testnetula", client.NetworkInspectOptions{})
assert.NilError(t, err) assert.NilError(t, err)
for _, ipam := range nw.IPAM.Config { for _, ipam := range nw.IPAM.Config {
@@ -92,7 +92,7 @@ func TestCreateWithIPv6WithoutEnableIPv6Flag(t *testing.T) {
network.CreateNoError(ctx, t, apiClient, nwName) network.CreateNoError(ctx, t, apiClient, nwName)
defer network.RemoveNoError(ctx, t, apiClient, nwName) defer network.RemoveNoError(ctx, t, apiClient, nwName)
nw, err := apiClient.NetworkInspect(ctx, "testnetula", client.InspectOptions{}) nw, err := apiClient.NetworkInspect(ctx, "testnetula", client.NetworkInspectOptions{})
assert.NilError(t, err) assert.NilError(t, err)
for _, ipam := range nw.IPAM.Config { for _, ipam := range nw.IPAM.Config {
@@ -137,7 +137,7 @@ func TestDefaultIPvOptOverride(t *testing.T) {
network.CreateNoError(ctx, t, c, netName, nopts...) network.CreateNoError(ctx, t, c, netName, nopts...)
defer network.RemoveNoError(ctx, t, c, netName) defer network.RemoveNoError(ctx, t, c, netName)
insp, err := c.NetworkInspect(ctx, netName, client.InspectOptions{}) insp, err := c.NetworkInspect(ctx, netName, client.NetworkInspectOptions{})
assert.NilError(t, err) assert.NilError(t, err)
t.Log("override4", override4, "override6", override6, "->", insp.Options) t.Log("override4", override4, "override6", override6, "->", insp.Options)

View File

@@ -41,33 +41,33 @@ func TestInspectNetwork(t *testing.T) {
tests := []struct { tests := []struct {
name string name string
network string network string
opts client.InspectOptions opts client.NetworkInspectOptions
}{ }{
{ {
name: "full network id", name: "full network id",
network: overlayID, network: overlayID,
opts: client.InspectOptions{ opts: client.NetworkInspectOptions{
Verbose: true, Verbose: true,
}, },
}, },
{ {
name: "partial network id", name: "partial network id",
network: overlayID[0:11], network: overlayID[0:11],
opts: client.InspectOptions{ opts: client.NetworkInspectOptions{
Verbose: true, Verbose: true,
}, },
}, },
{ {
name: "network name", name: "network name",
network: networkName, network: networkName,
opts: client.InspectOptions{ opts: client.NetworkInspectOptions{
Verbose: true, Verbose: true,
}, },
}, },
{ {
name: "network name and swarm scope", name: "network name and swarm scope",
network: networkName, network: networkName,
opts: client.InspectOptions{ opts: client.NetworkInspectOptions{
Verbose: true, Verbose: true,
Scope: "swarm", Scope: "swarm",
}, },

View File

@@ -89,7 +89,7 @@ func TestHostIPv4BridgeLabel(t *testing.T) {
network.WithOption("com.docker.network.bridge.name", bridgeName), network.WithOption("com.docker.network.bridge.name", bridgeName),
) )
defer network.RemoveNoError(ctx, t, c, bridgeName) defer network.RemoveNoError(ctx, t, c, bridgeName)
out, err := c.NetworkInspect(ctx, bridgeName, client.InspectOptions{Verbose: true}) out, err := c.NetworkInspect(ctx, bridgeName, client.NetworkInspectOptions{Verbose: true})
assert.NilError(t, err) assert.NilError(t, err)
assert.Assert(t, len(out.IPAM.Config) > 0) assert.Assert(t, len(out.IPAM.Config) > 0)
// Make sure the SNAT rule exists // Make sure the SNAT rule exists

View File

@@ -45,7 +45,7 @@ func TestDaemonRestartWithLiveRestore(t *testing.T) {
defer c.Close() defer c.Close()
// Verify bridge network's subnet // Verify bridge network's subnet
out, err := c.NetworkInspect(ctx, "bridge", client.InspectOptions{}) out, err := c.NetworkInspect(ctx, "bridge", client.NetworkInspectOptions{})
assert.NilError(t, err) assert.NilError(t, err)
subnet := out.IPAM.Config[0].Subnet subnet := out.IPAM.Config[0].Subnet
@@ -55,7 +55,7 @@ func TestDaemonRestartWithLiveRestore(t *testing.T) {
"--default-address-pool", "base=175.33.0.0/16,size=24", "--default-address-pool", "base=175.33.0.0/16,size=24",
) )
out1, err := c.NetworkInspect(ctx, "bridge", client.InspectOptions{}) out1, err := c.NetworkInspect(ctx, "bridge", client.NetworkInspectOptions{})
assert.NilError(t, err) assert.NilError(t, err)
// Make sure docker0 doesn't get override with new IP in live restore case // Make sure docker0 doesn't get override with new IP in live restore case
assert.Equal(t, out1.IPAM.Config[0].Subnet, subnet) assert.Equal(t, out1.IPAM.Config[0].Subnet, subnet)
@@ -82,7 +82,7 @@ func TestDaemonDefaultNetworkPools(t *testing.T) {
defer c.Close() defer c.Close()
// Verify bridge network's subnet // Verify bridge network's subnet
out, err := c.NetworkInspect(ctx, "bridge", client.InspectOptions{}) out, err := c.NetworkInspect(ctx, "bridge", client.NetworkInspectOptions{})
assert.NilError(t, err) assert.NilError(t, err)
assert.Equal(t, out.IPAM.Config[0].Subnet, "175.30.0.0/16") assert.Equal(t, out.IPAM.Config[0].Subnet, "175.30.0.0/16")
@@ -92,7 +92,7 @@ func TestDaemonDefaultNetworkPools(t *testing.T) {
network.WithDriver("bridge"), network.WithDriver("bridge"),
) )
defer network.RemoveNoError(ctx, t, c, name) defer network.RemoveNoError(ctx, t, c, name)
out, err = c.NetworkInspect(ctx, name, client.InspectOptions{}) out, err = c.NetworkInspect(ctx, name, client.NetworkInspectOptions{})
assert.NilError(t, err) assert.NilError(t, err)
assert.Check(t, is.Equal(out.IPAM.Config[0].Subnet, "175.33.0.0/24")) assert.Check(t, is.Equal(out.IPAM.Config[0].Subnet, "175.33.0.0/24"))
@@ -102,7 +102,7 @@ func TestDaemonDefaultNetworkPools(t *testing.T) {
network.WithDriver("bridge"), network.WithDriver("bridge"),
) )
defer network.RemoveNoError(ctx, t, c, name) defer network.RemoveNoError(ctx, t, c, name)
out, err = c.NetworkInspect(ctx, name, client.InspectOptions{}) out, err = c.NetworkInspect(ctx, name, client.NetworkInspectOptions{})
assert.NilError(t, err) assert.NilError(t, err)
assert.Check(t, is.Equal(out.IPAM.Config[0].Subnet, "175.33.1.0/24")) assert.Check(t, is.Equal(out.IPAM.Config[0].Subnet, "175.33.1.0/24"))
} }
@@ -127,7 +127,7 @@ func TestDaemonRestartWithExistingNetwork(t *testing.T) {
defer network.RemoveNoError(ctx, t, c, name) defer network.RemoveNoError(ctx, t, c, name)
// Verify bridge network's subnet // Verify bridge network's subnet
out, err := c.NetworkInspect(ctx, name, client.InspectOptions{}) out, err := c.NetworkInspect(ctx, name, client.NetworkInspectOptions{})
assert.NilError(t, err) assert.NilError(t, err)
networkip := out.IPAM.Config[0].Subnet networkip := out.IPAM.Config[0].Subnet
@@ -137,7 +137,7 @@ func TestDaemonRestartWithExistingNetwork(t *testing.T) {
"--default-address-pool", "base=175.33.0.0/16,size=24") "--default-address-pool", "base=175.33.0.0/16,size=24")
defer delInterface(ctx, t, "docker0") defer delInterface(ctx, t, "docker0")
out1, err := c.NetworkInspect(ctx, name, client.InspectOptions{}) out1, err := c.NetworkInspect(ctx, name, client.NetworkInspectOptions{})
assert.NilError(t, err) assert.NilError(t, err)
assert.Equal(t, out1.IPAM.Config[0].Subnet, networkip) assert.Equal(t, out1.IPAM.Config[0].Subnet, networkip)
} }
@@ -163,7 +163,7 @@ func TestDaemonRestartWithExistingNetworkWithDefaultPoolRange(t *testing.T) {
defer network.RemoveNoError(ctx, t, c, name) defer network.RemoveNoError(ctx, t, c, name)
// Verify bridge network's subnet // Verify bridge network's subnet
out, err := c.NetworkInspect(ctx, name, client.InspectOptions{}) out, err := c.NetworkInspect(ctx, name, client.NetworkInspectOptions{})
assert.NilError(t, err) assert.NilError(t, err)
networkip := out.IPAM.Config[0].Subnet networkip := out.IPAM.Config[0].Subnet
@@ -173,7 +173,7 @@ func TestDaemonRestartWithExistingNetworkWithDefaultPoolRange(t *testing.T) {
network.WithDriver("bridge"), network.WithDriver("bridge"),
) )
defer network.RemoveNoError(ctx, t, c, name) defer network.RemoveNoError(ctx, t, c, name)
out, err = c.NetworkInspect(ctx, name, client.InspectOptions{}) out, err = c.NetworkInspect(ctx, name, client.NetworkInspectOptions{})
assert.NilError(t, err) assert.NilError(t, err)
networkip2 := out.IPAM.Config[0].Subnet networkip2 := out.IPAM.Config[0].Subnet
@@ -190,7 +190,7 @@ func TestDaemonRestartWithExistingNetworkWithDefaultPoolRange(t *testing.T) {
network.WithDriver("bridge"), network.WithDriver("bridge"),
) )
defer network.RemoveNoError(ctx, t, c, name) defer network.RemoveNoError(ctx, t, c, name)
out1, err := c.NetworkInspect(ctx, name, client.InspectOptions{}) out1, err := c.NetworkInspect(ctx, name, client.NetworkInspectOptions{})
assert.NilError(t, err) assert.NilError(t, err)
assert.Check(t, out1.IPAM.Config[0].Subnet != networkip) assert.Check(t, out1.IPAM.Config[0].Subnet != networkip)
@@ -217,7 +217,7 @@ func TestDaemonWithBipAndDefaultNetworkPool(t *testing.T) {
defer c.Close() defer c.Close()
// Verify bridge network's subnet // Verify bridge network's subnet
out, err := c.NetworkInspect(ctx, "bridge", client.InspectOptions{}) out, err := c.NetworkInspect(ctx, "bridge", client.NetworkInspectOptions{})
assert.NilError(t, err) assert.NilError(t, err)
// Make sure BIP IP doesn't get override with new default address pool . // Make sure BIP IP doesn't get override with new default address pool .
assert.Equal(t, out.IPAM.Config[0].Subnet, "172.60.0.0/16") assert.Equal(t, out.IPAM.Config[0].Subnet, "172.60.0.0/16")
@@ -297,7 +297,7 @@ func TestServiceRemoveKeepsIngressNetwork(t *testing.T) {
// Ensure that "ingress" is not removed or corrupted // Ensure that "ingress" is not removed or corrupted
time.Sleep(10 * time.Second) time.Sleep(10 * time.Second)
netInfo, err := c.NetworkInspect(ctx, ingressNet, client.InspectOptions{ netInfo, err := c.NetworkInspect(ctx, ingressNet, client.NetworkInspectOptions{
Verbose: true, Verbose: true,
Scope: "swarm", Scope: "swarm",
}) })
@@ -311,7 +311,7 @@ func TestServiceRemoveKeepsIngressNetwork(t *testing.T) {
//nolint:unused // for some reason, the "unused" linter marks this function as "unused" //nolint:unused // for some reason, the "unused" linter marks this function as "unused"
func swarmIngressReady(ctx context.Context, apiClient client.NetworkAPIClient) func(log poll.LogT) poll.Result { func swarmIngressReady(ctx context.Context, apiClient client.NetworkAPIClient) func(log poll.LogT) poll.Result {
return func(log poll.LogT) poll.Result { return func(log poll.LogT) poll.Result {
netInfo, err := apiClient.NetworkInspect(ctx, ingressNet, client.InspectOptions{ netInfo, err := apiClient.NetworkInspect(ctx, ingressNet, client.NetworkInspectOptions{
Verbose: true, Verbose: true,
Scope: "swarm", Scope: "swarm",
}) })
@@ -443,7 +443,7 @@ func TestServiceWithDefaultAddressPoolInit(t *testing.T) {
_, _, err := cli.ServiceInspectWithRaw(ctx, serviceID, swarmtypes.ServiceInspectOptions{}) _, _, err := cli.ServiceInspectWithRaw(ctx, serviceID, swarmtypes.ServiceInspectOptions{})
assert.NilError(t, err) assert.NilError(t, err)
out, err := cli.NetworkInspect(ctx, overlayID, client.InspectOptions{Verbose: true}) out, err := cli.NetworkInspect(ctx, overlayID, client.NetworkInspectOptions{Verbose: true})
assert.NilError(t, err) assert.NilError(t, err)
t.Logf("%s: NetworkInspect: %+v", t.Name(), out) t.Logf("%s: NetworkInspect: %+v", t.Name(), out)
assert.Assert(t, len(out.IPAM.Config) > 0) assert.Assert(t, len(out.IPAM.Config) > 0)
@@ -454,7 +454,7 @@ func TestServiceWithDefaultAddressPoolInit(t *testing.T) {
assert.Equal(t, out.IPAM.Config[0].Subnet, "20.20.1.0/24") assert.Equal(t, out.IPAM.Config[0].Subnet, "20.20.1.0/24")
// Also inspect ingress network and make sure its in the same subnet // Also inspect ingress network and make sure its in the same subnet
out, err = cli.NetworkInspect(ctx, "ingress", client.InspectOptions{Verbose: true}) out, err = cli.NetworkInspect(ctx, "ingress", client.NetworkInspectOptions{Verbose: true})
assert.NilError(t, err) assert.NilError(t, err)
assert.Assert(t, len(out.IPAM.Config) > 0) assert.Assert(t, len(out.IPAM.Config) > 0)
assert.Equal(t, out.IPAM.Config[0].Subnet, "20.20.0.0/24") assert.Equal(t, out.IPAM.Config[0].Subnet, "20.20.0.0/24")

View File

@@ -584,7 +584,7 @@ func TestAccessToPublishedPort(t *testing.T) {
// Use the default bridge addresses as host addresses (like "host-gateway", but // Use the default bridge addresses as host addresses (like "host-gateway", but
// there's no way to tell wget to prefer ipv4/ipv6 transport, so just use the // there's no way to tell wget to prefer ipv4/ipv6 transport, so just use the
// addresses directly). // addresses directly).
insp, err := c.NetworkInspect(ctx, "bridge", client.InspectOptions{}) insp, err := c.NetworkInspect(ctx, "bridge", client.NetworkInspectOptions{})
assert.NilError(t, err) assert.NilError(t, err)
for _, ipamCfg := range insp.IPAM.Config { for _, ipamCfg := range insp.IPAM.Config {
ipv := "ipv4" ipv := "ipv4"
@@ -1821,7 +1821,7 @@ func TestNetworkInspectGateway(t *testing.T) {
assert.NilError(t, err) assert.NilError(t, err)
defer network.RemoveNoError(ctx, t, c, netName) defer network.RemoveNoError(ctx, t, c, netName)
insp, err := c.NetworkInspect(ctx, nid, client.InspectOptions{}) insp, err := c.NetworkInspect(ctx, nid, client.NetworkInspectOptions{})
assert.NilError(t, err) assert.NilError(t, err)
for _, ipamCfg := range insp.IPAM.Config { for _, ipamCfg := range insp.IPAM.Config {
_, err := netip.ParseAddr(ipamCfg.Gateway) _, err := netip.ParseAddr(ipamCfg.Gateway)

View File

@@ -221,7 +221,7 @@ func TestServiceUpdateNetwork(t *testing.T) {
poll.WaitOn(t, swarm.RunningTasksCount(ctx, cli, serviceID, instances), swarm.ServicePoll) poll.WaitOn(t, swarm.RunningTasksCount(ctx, cli, serviceID, instances), swarm.ServicePoll)
service := getService(ctx, t, cli, serviceID) service := getService(ctx, t, cli, serviceID)
netInfo, err := cli.NetworkInspect(ctx, testNet, client.InspectOptions{ netInfo, err := cli.NetworkInspect(ctx, testNet, client.NetworkInspectOptions{
Verbose: true, Verbose: true,
Scope: "swarm", Scope: "swarm",
}) })
@@ -234,7 +234,7 @@ func TestServiceUpdateNetwork(t *testing.T) {
assert.NilError(t, err) assert.NilError(t, err)
poll.WaitOn(t, serviceIsUpdated(ctx, cli, serviceID), swarm.ServicePoll) poll.WaitOn(t, serviceIsUpdated(ctx, cli, serviceID), swarm.ServicePoll)
netInfo, err = cli.NetworkInspect(ctx, testNet, client.InspectOptions{ netInfo, err = cli.NetworkInspect(ctx, testNet, client.NetworkInspectOptions{
Verbose: true, Verbose: true,
Scope: "swarm", Scope: "swarm",
}) })

View File

@@ -131,8 +131,8 @@ type NetworkAPIClient interface {
NetworkConnect(ctx context.Context, network, container string, config *network.EndpointSettings) error NetworkConnect(ctx context.Context, network, container string, config *network.EndpointSettings) error
NetworkCreate(ctx context.Context, name string, options network.CreateOptions) (network.CreateResponse, error) NetworkCreate(ctx context.Context, name string, options network.CreateOptions) (network.CreateResponse, error)
NetworkDisconnect(ctx context.Context, network, container string, force bool) error NetworkDisconnect(ctx context.Context, network, container string, force bool) error
NetworkInspect(ctx context.Context, network string, options InspectOptions) (network.Inspect, error) NetworkInspect(ctx context.Context, network string, options NetworkInspectOptions) (network.Inspect, error)
NetworkInspectWithRaw(ctx context.Context, network string, options InspectOptions) (network.Inspect, []byte, error) NetworkInspectWithRaw(ctx context.Context, network string, options NetworkInspectOptions) (network.Inspect, []byte, error)
NetworkList(ctx context.Context, options NetworkListOptions) ([]network.Summary, error) NetworkList(ctx context.Context, options NetworkListOptions) ([]network.Summary, error)
NetworkRemove(ctx context.Context, network string) error NetworkRemove(ctx context.Context, network string) error
NetworksPrune(ctx context.Context, pruneFilter filters.Args) (network.PruneReport, error) NetworksPrune(ctx context.Context, pruneFilter filters.Args) (network.PruneReport, error)

View File

@@ -11,13 +11,13 @@ import (
) )
// NetworkInspect returns the information for a specific network configured in the docker host. // NetworkInspect returns the information for a specific network configured in the docker host.
func (cli *Client) NetworkInspect(ctx context.Context, networkID string, options InspectOptions) (network.Inspect, error) { func (cli *Client) NetworkInspect(ctx context.Context, networkID string, options NetworkInspectOptions) (network.Inspect, error) {
networkResource, _, err := cli.NetworkInspectWithRaw(ctx, networkID, options) networkResource, _, err := cli.NetworkInspectWithRaw(ctx, networkID, options)
return networkResource, err return networkResource, err
} }
// NetworkInspectWithRaw returns the information for a specific network configured in the docker host and its raw representation. // NetworkInspectWithRaw returns the information for a specific network configured in the docker host and its raw representation.
func (cli *Client) NetworkInspectWithRaw(ctx context.Context, networkID string, options InspectOptions) (network.Inspect, []byte, error) { func (cli *Client) NetworkInspectWithRaw(ctx context.Context, networkID string, options NetworkInspectOptions) (network.Inspect, []byte, error) {
networkID, err := trimID("network", networkID) networkID, err := trimID("network", networkID)
if err != nil { if err != nil {
return network.Inspect{}, nil, err return network.Inspect{}, nil, err

View File

@@ -1,7 +1,7 @@
package client package client
// InspectOptions holds parameters to inspect network. // NetworkInspectOptions holds parameters to inspect network.
type InspectOptions struct { type NetworkInspectOptions struct {
Scope string Scope string
Verbose bool Verbose bool
} }