diff --git a/api/types/swarm/config.go b/api/types/swarm/config.go index f8e7f4a6f9..b029f2af85 100644 --- a/api/types/swarm/config.go +++ b/api/types/swarm/config.go @@ -2,8 +2,6 @@ package swarm import ( "os" - - "github.com/moby/moby/api/types/filters" ) // Config represents a config. @@ -55,8 +53,3 @@ type ConfigCreateResponse struct { // ID is the id of the created config. ID string } - -// ConfigListOptions holds parameters to list configs -type ConfigListOptions struct { - Filters filters.Args -} diff --git a/client/client_interfaces.go b/client/client_interfaces.go index f24da421d7..c962122902 100644 --- a/client/client_interfaces.go +++ b/client/client_interfaces.go @@ -215,7 +215,7 @@ type SecretAPIClient interface { // ConfigAPIClient defines API client methods for configs type ConfigAPIClient interface { - ConfigList(ctx context.Context, options swarm.ConfigListOptions) ([]swarm.Config, error) + ConfigList(ctx context.Context, options ConfigListOptions) ([]swarm.Config, error) ConfigCreate(ctx context.Context, config swarm.ConfigSpec) (swarm.ConfigCreateResponse, error) ConfigRemove(ctx context.Context, id string) error ConfigInspectWithRaw(ctx context.Context, name string) (swarm.Config, []byte, error) diff --git a/client/config_list.go b/client/config_list.go index aae9c0d4e3..b32b361b8a 100644 --- a/client/config_list.go +++ b/client/config_list.go @@ -10,7 +10,7 @@ import ( ) // ConfigList returns the list of configs. -func (cli *Client) ConfigList(ctx context.Context, options swarm.ConfigListOptions) ([]swarm.Config, error) { +func (cli *Client) ConfigList(ctx context.Context, options ConfigListOptions) ([]swarm.Config, error) { if err := cli.NewVersionError(ctx, "1.30", "config list"); err != nil { return nil, err } diff --git a/client/config_list_test.go b/client/config_list_test.go index 6c578f6b8c..95ce3ec8fb 100644 --- a/client/config_list_test.go +++ b/client/config_list_test.go @@ -22,7 +22,7 @@ func TestConfigListUnsupported(t *testing.T) { version: "1.29", client: &http.Client{}, } - _, err := client.ConfigList(context.Background(), swarm.ConfigListOptions{}) + _, err := client.ConfigList(context.Background(), ConfigListOptions{}) assert.Check(t, is.Error(err, `"config list" requires API version 1.30, but the Docker daemon API version is 1.29`)) } @@ -32,7 +32,7 @@ func TestConfigListError(t *testing.T) { client: newMockClient(errorMock(http.StatusInternalServerError, "Server error")), } - _, err := client.ConfigList(context.Background(), swarm.ConfigListOptions{}) + _, err := client.ConfigList(context.Background(), ConfigListOptions{}) assert.Check(t, is.ErrorType(err, cerrdefs.IsInternal)) } @@ -40,17 +40,17 @@ func TestConfigList(t *testing.T) { expectedURL := "/v1.30/configs" listCases := []struct { - options swarm.ConfigListOptions + options ConfigListOptions expectedQueryParams map[string]string }{ { - options: swarm.ConfigListOptions{}, + options: ConfigListOptions{}, expectedQueryParams: map[string]string{ "filters": "", }, }, { - options: swarm.ConfigListOptions{ + options: ConfigListOptions{ Filters: filters.NewArgs( filters.Arg("label", "label1"), filters.Arg("label", "label2"), diff --git a/client/swarm_config_list_options.go b/client/swarm_config_list_options.go new file mode 100644 index 0000000000..91d4690c6a --- /dev/null +++ b/client/swarm_config_list_options.go @@ -0,0 +1,8 @@ +package client + +import "github.com/moby/moby/api/types/filters" + +// ConfigListOptions holds parameters to list configs +type ConfigListOptions struct { + Filters filters.Args +} diff --git a/daemon/cluster/configs.go b/daemon/cluster/configs.go index d3c91c77e9..d775037714 100644 --- a/daemon/cluster/configs.go +++ b/daemon/cluster/configs.go @@ -5,6 +5,7 @@ import ( types "github.com/moby/moby/api/types/swarm" "github.com/moby/moby/v2/daemon/cluster/convert" + "github.com/moby/moby/v2/daemon/server/swarmbackend" swarmapi "github.com/moby/swarmkit/v2/api" "google.golang.org/grpc" ) @@ -27,7 +28,7 @@ func (c *Cluster) GetConfig(input string) (types.Config, error) { } // GetConfigs returns all configs of a managed swarm cluster. -func (c *Cluster) GetConfigs(options types.ConfigListOptions) ([]types.Config, error) { +func (c *Cluster) GetConfigs(options swarmbackend.ConfigListOptions) ([]types.Config, error) { c.mu.RLock() defer c.mu.RUnlock() diff --git a/daemon/server/router/swarm/backend.go b/daemon/server/router/swarm/backend.go index d8aa3b2eb7..6e035dd9f3 100644 --- a/daemon/server/router/swarm/backend.go +++ b/daemon/server/router/swarm/backend.go @@ -6,6 +6,7 @@ import ( "github.com/moby/moby/api/types/container" "github.com/moby/moby/api/types/swarm" "github.com/moby/moby/v2/daemon/server/backend" + "github.com/moby/moby/v2/daemon/server/swarmbackend" ) // Backend abstracts a swarm manager. @@ -34,7 +35,7 @@ type Backend interface { RemoveSecret(idOrName string) error GetSecret(id string) (swarm.Secret, error) UpdateSecret(idOrName string, version uint64, spec swarm.SecretSpec) error - GetConfigs(opts swarm.ConfigListOptions) ([]swarm.Config, error) + GetConfigs(opts swarmbackend.ConfigListOptions) ([]swarm.Config, error) CreateConfig(s swarm.ConfigSpec) (string, error) RemoveConfig(id string) error GetConfig(id string) (swarm.Config, error) diff --git a/daemon/server/router/swarm/cluster_routes.go b/daemon/server/router/swarm/cluster_routes.go index f9bb3f8a59..fe3b87eaf8 100644 --- a/daemon/server/router/swarm/cluster_routes.go +++ b/daemon/server/router/swarm/cluster_routes.go @@ -13,6 +13,7 @@ import ( "github.com/moby/moby/api/types/versions" "github.com/moby/moby/v2/daemon/server/backend" "github.com/moby/moby/v2/daemon/server/httputils" + "github.com/moby/moby/v2/daemon/server/swarmbackend" "github.com/moby/moby/v2/errdefs" "github.com/pkg/errors" ) @@ -486,7 +487,7 @@ func (sr *swarmRouter) getConfigs(ctx context.Context, w http.ResponseWriter, r return err } - configs, err := sr.backend.GetConfigs(types.ConfigListOptions{Filters: filters}) + configs, err := sr.backend.GetConfigs(swarmbackend.ConfigListOptions{Filters: filters}) if err != nil { return err } diff --git a/daemon/server/swarmbackend/swarm.go b/daemon/server/swarmbackend/swarm.go new file mode 100644 index 0000000000..5d7a6280ca --- /dev/null +++ b/daemon/server/swarmbackend/swarm.go @@ -0,0 +1,7 @@ +package swarmbackend + +import "github.com/moby/moby/api/types/filters" + +type ConfigListOptions struct { + Filters filters.Args +} diff --git a/integration/config/config_test.go b/integration/config/config_test.go index 0f332d8d52..827a3158a5 100644 --- a/integration/config/config_test.go +++ b/integration/config/config_test.go @@ -56,7 +56,7 @@ func TestConfigList(t *testing.T) { defer c.Close() // This test case is ported from the original TestConfigsEmptyList - configs, err := c.ConfigList(ctx, swarmtypes.ConfigListOptions{}) + configs, err := c.ConfigList(ctx, client.ConfigListOptions{}) assert.NilError(t, err) assert.Check(t, is.Equal(len(configs), 0)) @@ -71,7 +71,7 @@ func TestConfigList(t *testing.T) { config1ID := createConfig(ctx, t, c, testName1, []byte("TESTINGDATA1"), map[string]string{"type": "production"}) // test by `config ls` - entries, err := c.ConfigList(ctx, swarmtypes.ConfigListOptions{}) + entries, err := c.ConfigList(ctx, client.ConfigListOptions{}) assert.NilError(t, err) assert.Check(t, is.DeepEqual(configNamesFromList(entries), testNames)) @@ -109,7 +109,7 @@ func TestConfigList(t *testing.T) { for _, tc := range testCases { t.Run(tc.desc, func(t *testing.T) { ctx := testutil.StartSpan(ctx, t) - entries, err = c.ConfigList(ctx, swarmtypes.ConfigListOptions{ + entries, err = c.ConfigList(ctx, client.ConfigListOptions{ Filters: tc.filters, }) assert.NilError(t, err) @@ -356,7 +356,7 @@ func TestConfigCreateResolve(t *testing.T) { fakeName := configID fakeID := createConfig(ctx, t, c, fakeName, []byte("fake foo"), nil) - entries, err := c.ConfigList(ctx, swarmtypes.ConfigListOptions{}) + entries, err := c.ConfigList(ctx, client.ConfigListOptions{}) assert.NilError(t, err) assert.Assert(t, is.Contains(configNamesFromList(entries), configName)) assert.Assert(t, is.Contains(configNamesFromList(entries), fakeName)) @@ -365,7 +365,7 @@ func TestConfigCreateResolve(t *testing.T) { assert.NilError(t, err) // Fake one will remain - entries, err = c.ConfigList(ctx, swarmtypes.ConfigListOptions{}) + entries, err = c.ConfigList(ctx, client.ConfigListOptions{}) assert.NilError(t, err) assert.Assert(t, is.DeepEqual(configNamesFromList(entries), []string{fakeName})) @@ -377,14 +377,14 @@ func TestConfigCreateResolve(t *testing.T) { // - Partial ID (prefix) err = c.ConfigRemove(ctx, configID[:5]) assert.Assert(t, err != nil) - entries, err = c.ConfigList(ctx, swarmtypes.ConfigListOptions{}) + entries, err = c.ConfigList(ctx, client.ConfigListOptions{}) assert.NilError(t, err) assert.Assert(t, is.DeepEqual(configNamesFromList(entries), []string{fakeName})) // Remove based on ID prefix of the fake one should succeed err = c.ConfigRemove(ctx, fakeID[:5]) assert.NilError(t, err) - entries, err = c.ConfigList(ctx, swarmtypes.ConfigListOptions{}) + entries, err = c.ConfigList(ctx, client.ConfigListOptions{}) assert.NilError(t, err) assert.Assert(t, is.Equal(0, len(entries))) } diff --git a/testutil/daemon/config.go b/testutil/daemon/config.go index a82dee4777..8469e740c6 100644 --- a/testutil/daemon/config.go +++ b/testutil/daemon/config.go @@ -5,6 +5,7 @@ import ( "testing" "github.com/moby/moby/api/types/swarm" + "github.com/moby/moby/client" "gotest.tools/v3/assert" ) @@ -28,7 +29,7 @@ func (d *Daemon) ListConfigs(t testing.TB) []swarm.Config { cli := d.NewClientT(t) defer cli.Close() - configs, err := cli.ConfigList(context.Background(), swarm.ConfigListOptions{}) + configs, err := cli.ConfigList(context.Background(), client.ConfigListOptions{}) assert.NilError(t, err) return configs } diff --git a/vendor/github.com/moby/moby/api/types/swarm/config.go b/vendor/github.com/moby/moby/api/types/swarm/config.go index f8e7f4a6f9..b029f2af85 100644 --- a/vendor/github.com/moby/moby/api/types/swarm/config.go +++ b/vendor/github.com/moby/moby/api/types/swarm/config.go @@ -2,8 +2,6 @@ package swarm import ( "os" - - "github.com/moby/moby/api/types/filters" ) // Config represents a config. @@ -55,8 +53,3 @@ type ConfigCreateResponse struct { // ID is the id of the created config. ID string } - -// ConfigListOptions holds parameters to list configs -type ConfigListOptions struct { - Filters filters.Args -} diff --git a/vendor/github.com/moby/moby/client/client_interfaces.go b/vendor/github.com/moby/moby/client/client_interfaces.go index f24da421d7..c962122902 100644 --- a/vendor/github.com/moby/moby/client/client_interfaces.go +++ b/vendor/github.com/moby/moby/client/client_interfaces.go @@ -215,7 +215,7 @@ type SecretAPIClient interface { // ConfigAPIClient defines API client methods for configs type ConfigAPIClient interface { - ConfigList(ctx context.Context, options swarm.ConfigListOptions) ([]swarm.Config, error) + ConfigList(ctx context.Context, options ConfigListOptions) ([]swarm.Config, error) ConfigCreate(ctx context.Context, config swarm.ConfigSpec) (swarm.ConfigCreateResponse, error) ConfigRemove(ctx context.Context, id string) error ConfigInspectWithRaw(ctx context.Context, name string) (swarm.Config, []byte, error) diff --git a/vendor/github.com/moby/moby/client/config_list.go b/vendor/github.com/moby/moby/client/config_list.go index aae9c0d4e3..b32b361b8a 100644 --- a/vendor/github.com/moby/moby/client/config_list.go +++ b/vendor/github.com/moby/moby/client/config_list.go @@ -10,7 +10,7 @@ import ( ) // ConfigList returns the list of configs. -func (cli *Client) ConfigList(ctx context.Context, options swarm.ConfigListOptions) ([]swarm.Config, error) { +func (cli *Client) ConfigList(ctx context.Context, options ConfigListOptions) ([]swarm.Config, error) { if err := cli.NewVersionError(ctx, "1.30", "config list"); err != nil { return nil, err } diff --git a/vendor/github.com/moby/moby/client/swarm_config_list_options.go b/vendor/github.com/moby/moby/client/swarm_config_list_options.go new file mode 100644 index 0000000000..91d4690c6a --- /dev/null +++ b/vendor/github.com/moby/moby/client/swarm_config_list_options.go @@ -0,0 +1,8 @@ +package client + +import "github.com/moby/moby/api/types/filters" + +// ConfigListOptions holds parameters to list configs +type ConfigListOptions struct { + Filters filters.Args +}