Commit Graph

1830 Commits

Author SHA1 Message Date
Sebastiaan van Stijn
425975313a client: merge ContainerInspectWithRaw with ContainerInspect
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-10-24 22:01:23 +02:00
Sebastiaan van Stijn
58356450fa client: remove redundant closing and draining of response
For methods using the decodeWithRaw utility, we were handling closing
of the body twice. The ensureReaderClosed utility also drains the
response to let the transport reuse the connnection. Let's use that
utility in decodeWithRaw as well.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-10-24 19:30:22 +02:00
Sebastiaan van Stijn
ddbb503dc7 client: change Raw fields to be json.RawMessage
These fields store the raw JSON data that we received, and should
never container bytes that are non-JSON (as we'd error out when
failing to unmarshal).

Change the type to a json.RawMessage, which:

- Is more explicit on intent
- Can still be used as a regular []byte in all cases

And, while it's not expected to be marshaled to JSON, doing so will also
print the output in a readable format instead of base64 encoding;

    package main

    import (
        "encoding/json"
        "fmt"
    )

    func main() {
        foo := struct {
            Bytes []byte
            Raw   json.RawMessage
        }{
            Bytes: []byte(`{"hello": "world"}`),
            Raw:   json.RawMessage(`{"hello": "world"}`),
        }

        out, _ := json.MarshalIndent(foo, "", "  ")
        fmt.Println(string(out))
    }

Will print:

    {
      "Bytes": "eyJoZWxsbyI6ICJ3b3JsZCJ9",
      "Raw": {
        "hello": "world"
      }
    }

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-10-24 19:07:26 +02:00
Sebastiaan van Stijn
12123eb592 client: merge ExecInspectResult with ExecInspect
The `ExecInspectResult` type was embedding `ExecInspect`, which is also
defined by the client, so there's no need to abstract it.

While updating, also;

- Rename `ExecID` to `ID`, to match the field-name returned by the API.
- Rename `Pid` to `PID`, to be in the right casing.
- Remove `json` labels, as option-types are not (un)marshaled to JSON.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-10-24 15:05:36 +02:00
Sebastiaan van Stijn
378116a84f client: ImageImportResult: prevent panic on nil reader
This panicked when creating a stub; we need to look for better ways to
allow stubbing these (perhaps we need to expose the rc / body)?

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-10-24 15:05:36 +02:00
Sebastiaan van Stijn
0b7b7625c6 client: rename NodeUpdateOptions.Node to NodeUpdateOptions.Spec
Align with the other swarm-types, which use `Spec` for updates.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-10-24 15:05:35 +02:00
Sebastiaan van Stijn
875c577711 client: consolidate node options with their methods
Move them together, as we did for most of the other options.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-10-24 15:05:35 +02:00
Sebastiaan van Stijn
c6a45784f9 client: VolumeListResult: define local type
The `VolumeListResult.Items` field was a `volume.ListResponse`, which
in itself also had two slices (for volumes, and warnings). The Volumes
field contained a slice of pointers to Volumes.

This patch:

- Re-defines `ImageRemoveResult` as a distinct type, containing the
  content of the `volume.ListResponse.Volumes` and `.Warnings`.
- The `VolumeListResult` doesn't use a pointer for the volumes to make
  it slightly easier to deal with (possibly the API type could be
  changed as well, which could allow us to simplify the client code.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-10-24 15:05:30 +02:00
Sebastiaan van Stijn
c246639baa client: rename ImageRemoveResult.Deleted to ImageRemoveResult.Items
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-10-24 14:07:10 +02:00
Sebastiaan van Stijn
f9082484c9 Merge pull request #51278 from vvoland/client-container-opts2
client_(attach,commit,create,diff): Wrap result and options
2025-10-24 13:41:23 +02:00
Paweł Gronowski
ea59a8d74e Merge pull request #51114 from dperny/memory_flags_for_swarm
Add support for memory swap settings for services
2025-10-24 10:04:17 +02:00
Austin Vazquez
f40e1a7582 api: move types/versions to client/pkg and daemon/internal
This change moves the api/types/versions package out into client and daemon versions.

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Austin Vazquez <austin.vazquez@docker.com>
2025-10-23 19:22:31 -05:00
Austin Vazquez
c9b3c65f37 vendor: github.com/aws/aws-sdk-go-v2/config@v1.31.15
Signed-off-by: Austin Vazquez <austin.vazquez@docker.com>
2025-10-23 15:41:34 -05:00
Austin Vazquez
b3129817a7 vendor: github.com/aws/aws-sdk-go-v2/credentials v1.18.19
Signed-off-by: Austin Vazquez <austin.vazquez@docker.com>
2025-10-23 15:41:34 -05:00
Austin Vazquez
7f7588be22 vendor: github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.11
Signed-off-by: Austin Vazquez <austin.vazquez@docker.com>
2025-10-23 15:41:33 -05:00
Austin Vazquez
f82fa7a4b2 vendor: github.com/aws/aws-sdk-go-v2 v1.39.4
Signed-off-by: Austin Vazquez <austin.vazquez@docker.com>
2025-10-23 15:41:33 -05:00
Austin Vazquez
529076c7b4 vendor: github.com/aws/smith-go v1.23.1
Signed-off-by: Austin Vazquez <austin.vazquez@docker.com>
2025-10-23 15:41:33 -05:00
Paweł Gronowski
8fb561ca9a client/container_create: Add Image outside of Config
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-10-23 21:11:30 +02:00
Paweł Gronowski
3340c86db9 client/container_create: Rename ContainerName to Name
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-10-23 21:11:30 +02:00
Paweł Gronowski
bd31b8b1c7 client_(attach,commit,create,diff): Wrap result and options
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-10-23 21:11:30 +02:00
Sebastiaan van Stijn
3a43b5b559 client: refactor ServiceCreate, ServiceUpdate, SwarmUpdate
Put the version and spec in the options-struct, as we did for other
swarm-related methods.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-10-23 15:40:18 +02:00
Sebastiaan van Stijn
a315437e1c client: rename transportFunc -> testRoundTripper
Rename it so that it's clearer that it's intended for test-purposes,
and adding a `skipConfigureTransport()` method to the signature to
prevent IDEs considering is a redundant convert, and to be more explicit
on intent.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-10-23 13:01:33 +02:00
Sebastiaan van Stijn
d9c950f824 Merge pull request #51275 from thaJeztah/client_deadcode
client: remove unused hasEndpointSpecificMacAddress utility
2025-10-23 08:25:02 +02:00
Sebastiaan van Stijn
0049df8315 Merge pull request #51273 from austinvazquez/refactor-client-service-list
client: rename `ServiceListResult.Services` to `ServiceListResult.Items`
2025-10-23 00:19:30 +02:00
Sebastiaan van Stijn
f733b411a1 client: remove unused hasEndpointSpecificMacAddress utility
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-10-22 23:16:37 +02:00
Sebastiaan van Stijn
f2412e7ab4 Merge pull request #51262 from vvoland/client-containerexec-opts
client/container_exec: Wrap options and result
2025-10-22 23:08:50 +02:00
Austin Vazquez
5a5d39205c client: rename ServiceListResult.Services to ServiceListResult.Items
Signed-off-by: Austin Vazquez <austin.vazquez@docker.com>
2025-10-22 15:55:03 -05:00
Paweł Gronowski
94ab385eb5 client/container_exec: Wrap options and result, rename to Exec
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-10-22 22:48:59 +02:00
Sebastiaan van Stijn
4ae709eaa4 Merge pull request #51264 from vvoland/client-distrib-opts
client/distribution_inspect: Wrap options and result
2025-10-22 15:12:22 +02:00
Sebastiaan van Stijn
c1ab6eb5f9 Merge pull request #51256 from austinvazquez/refactor-client-plugin
client: refactor plugin api client functions to define options/result…
2025-10-22 15:11:39 +02:00
Sebastiaan van Stijn
c7fe7136d2 client: gofumpt
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-10-22 14:01:01 +02:00
Austin Vazquez
909e32b27d client: refactor plugin api client functions to define options/results structs
Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Austin Vazquez <austin.vazquez@docker.com>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-10-22 13:45:03 +02:00
Paweł Gronowski
ee49bbabb3 Merge pull request #51261 from thaJeztah/fix_api_godoc
api/types: fix godoc
2025-10-22 13:35:09 +02:00
Paweł Gronowski
eddf1a1ad6 Merge pull request #51260 from vvoland/client-node-opts
client/node: Wrap options and output
2025-10-22 13:09:21 +02:00
Paweł Gronowski
362e9d088f client/distribution_inspect: Wrap options and result
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-10-22 13:00:44 +02:00
Sebastiaan van Stijn
78d228b84e Merge pull request #51258 from thaJeztah/client_ping
api/types: move Ping and swarm.Status to client
2025-10-22 12:47:42 +02:00
Sebastiaan van Stijn
f09ca78b45 api/types: fix godoc
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-10-22 12:09:04 +02:00
Paweł Gronowski
7ceea4148a client/node: Wrap options and output
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-10-22 12:02:05 +02:00
Sebastiaan van Stijn
25c509b026 Merge pull request #51251 from thaJeztah/secret_refactor
client/secrets: Wrap results and options
2025-10-22 11:50:01 +02:00
Sebastiaan van Stijn
8dc5d1e64d api/types: move Ping and swarm.Status to client
The API does not produce these as a response; the fields in the Ping
struct, including the Swarm status are propagated from headers returned
by the /_ping endpoint.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-10-22 11:05:08 +02:00
Austin Vazquez
9821df9b8e Merge pull request #51227 from vvoland/client-image-opts
client/image: Wrap result and options in structs
2025-10-21 20:42:14 -05:00
Paweł Gronowski
6819a9fc1e client/image_tag: Wrap options and result
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-10-21 19:38:12 -05:00
Paweł Gronowski
347693a580 client/image_remove&search: Wrap options and result
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-10-21 19:37:18 -05:00
Paweł Gronowski
b3974f07f5 client/image_list: Wrap options and result
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
Signed-off-by: Austin Vazquez <austin.vazquez@docker.com>
2025-10-21 19:37:12 -05:00
Paweł Gronowski
a7f409014f client/image_create&import: Wrap options and result
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-10-21 19:27:46 -05:00
Paweł Gronowski
5cc1e5f800 client/build_cancel: Wrap options and result
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-10-21 19:27:46 -05:00
Paweł Gronowski
51ed1a9a37 client/image_build: Rename output to ImageBuildResult
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-10-21 19:27:46 -05:00
Austin Vazquez
cd08b79c02 client: refactor service api client functions for defined options/result structs
Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Austin Vazquez <austin.vazquez@docker.com>
2025-10-21 19:18:07 -05:00
Austin Vazquez
13374b5a72 Merge pull request #51254 from thaJeztah/refactor_plugin_inspect
client: PluginInspectWithRaw: refactor and rename to PluginInspect
2025-10-21 17:48:02 -05:00
Sebastiaan van Stijn
e3c6dc2a91 client: VolumeInspect: add options struct
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-10-21 23:36:20 +02:00