mirror of
https://github.com/moby/moby.git
synced 2026-07-11 00:58:22 +00:00
The CheckDuplicate option is no longer part of the current API; it's only used by the client when connecting to old API versions, which need to have this field set. This patch: - Removes the CheckDuplicate from the API documentation, as the API describes the current version of the API (which does not have this field). - Moves the CheckDuplicate field to the CreateRequest type; this is the type used for the network create request. The CheckDuplicate is not an option that's set by the user, and set internally by the client, so removing it from the CreateOptions struct moves it entirely internal. - Change the CheckDuplicate field to be a pointer; this makes the "omitempty" become active, and the client will no longer include the field in the request JSON unless it's set (API < 1.44). Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
42 lines
1.3 KiB
Go
42 lines
1.3 KiB
Go
package client // import "github.com/docker/docker/client"
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
|
|
"github.com/docker/docker/api/types/network"
|
|
"github.com/docker/docker/api/types/versions"
|
|
)
|
|
|
|
// NetworkCreate creates a new network in the docker host.
|
|
func (cli *Client) NetworkCreate(ctx context.Context, name string, options network.CreateOptions) (network.CreateResponse, error) {
|
|
var response network.CreateResponse
|
|
|
|
// Make sure we negotiated (if the client is configured to do so),
|
|
// as code below contains API-version specific handling of options.
|
|
//
|
|
// Normally, version-negotiation (if enabled) would not happen until
|
|
// the API request is made.
|
|
if err := cli.checkVersion(ctx); err != nil {
|
|
return response, err
|
|
}
|
|
|
|
networkCreateRequest := network.CreateRequest{
|
|
CreateOptions: options,
|
|
Name: name,
|
|
}
|
|
if versions.LessThan(cli.version, "1.44") {
|
|
enabled := true
|
|
networkCreateRequest.CheckDuplicate = &enabled //nolint:staticcheck // ignore SA1019: CheckDuplicate is deprecated since API v1.44.
|
|
}
|
|
|
|
serverResp, err := cli.post(ctx, "/networks/create", nil, networkCreateRequest, nil)
|
|
defer ensureReaderClosed(serverResp)
|
|
if err != nil {
|
|
return response, err
|
|
}
|
|
|
|
err = json.NewDecoder(serverResp.body).Decode(&response)
|
|
return response, err
|
|
}
|