@@ -29,10 +29,10 @@ import (
2929 "google.golang.org/protobuf/proto"
3030
3131 "github.com/docker/secrets-engine/x/api"
32+ enginev1 "github.com/docker/secrets-engine/x/api/engine/v1"
33+ "github.com/docker/secrets-engine/x/api/engine/v1/enginev1connect"
3234 healthv1 "github.com/docker/secrets-engine/x/api/health/v1"
3335 "github.com/docker/secrets-engine/x/api/health/v1/healthv1connect"
34- resolverv1 "github.com/docker/secrets-engine/x/api/resolver/v1"
35- "github.com/docker/secrets-engine/x/api/resolver/v1/resolverv1connect"
3636 "github.com/docker/secrets-engine/x/secrets"
3737 "github.com/docker/secrets-engine/x/testhelper"
3838)
@@ -60,14 +60,14 @@ func mockVersionEngine(t *testing.T, version, date, commitHash string) string {
6060 return socketPath
6161}
6262
63- var _ resolverv1connect. ListServiceHandler = & mockPluginsList {}
63+ var _ enginev1connect. PluginManagementServiceHandler = & mockPluginsList {}
6464
6565type mockPluginsList struct {
6666 list []PluginInfo
6767}
6868
69- func (m mockPluginsList ) ListPlugins (context.Context , * connect.Request [resolverv1 .ListPluginsRequest ]) (* connect.Response [resolverv1 .ListPluginsResponse ], error ) {
70- var plugins []* resolverv1 .Plugin
69+ func (m mockPluginsList ) ListPlugins (_ context.Context , _ * connect.Request [enginev1 .ListPluginsRequest ]) (* connect.Response [enginev1 .ListPluginsResponse ], error ) {
70+ var plugins []* enginev1 .Plugin
7171 for _ , plugin := range m .list {
7272 var name string
7373 if plugin .Name != nil {
@@ -77,23 +77,32 @@ func (m mockPluginsList) ListPlugins(context.Context, *connect.Request[resolverv
7777 if plugin .Version != nil {
7878 version = plugin .Version .String ()
7979 }
80- var pattern string
81- if plugin .Pattern != nil {
82- pattern = plugin .Pattern .String ()
83- }
84- plugins = append (plugins , resolverv1.Plugin_builder {
80+ b := enginev1.Plugin_builder {
8581 Name : proto .String (name ),
8682 Version : proto .String (version ),
87- Pattern : proto .String (pattern ),
8883 External : proto .Bool (plugin .External ),
8984 Configurable : proto .Bool (plugin .Configurable ),
90- }.Build ())
85+ }
86+ if plugin .SecretsProvider != nil {
87+ b .SecretsProvider = enginev1.SecretsProvider_builder {
88+ Pattern : proto .String (plugin .SecretsProvider .Pattern .String ()),
89+ }.Build ()
90+ }
91+ plugins = append (plugins , b .Build ())
9192 }
92- return connect .NewResponse (resolverv1 .ListPluginsResponse_builder {
93+ return connect .NewResponse (enginev1 .ListPluginsResponse_builder {
9394 Plugins : plugins ,
9495 }.Build ()), nil
9596}
9697
98+ func (m mockPluginsList ) EnablePlugin (_ context.Context , _ * connect.Request [enginev1.EnablePluginRequest ]) (* connect.Response [enginev1.EnablePluginResponse ], error ) {
99+ return connect .NewResponse (enginev1.EnablePluginResponse_builder {}.Build ()), nil
100+ }
101+
102+ func (m mockPluginsList ) DisablePlugin (_ context.Context , _ * connect.Request [enginev1.DisablePluginRequest ]) (* connect.Response [enginev1.DisablePluginResponse ], error ) {
103+ return connect .NewResponse (enginev1.DisablePluginResponse_builder {}.Build ()), nil
104+ }
105+
97106type handler struct {
98107 pattern string
99108 handler http.Handler
@@ -133,7 +142,7 @@ func wrapHandler(pattern string, h http.Handler) handler {
133142func mockListPluginsEngine (t * testing.T , plugins []PluginInfo ) string {
134143 t .Helper ()
135144 socketPath := testhelper .RandomShortSocketName ()
136- muxServer (t , socketPath , []handler {wrapHandler (resolverv1connect . NewListServiceHandler (& mockPluginsList {list : plugins }))})
145+ muxServer (t , socketPath , []handler {wrapHandler (enginev1connect . NewPluginManagementServiceHandler (& mockPluginsList {list : plugins }))})
137146 return socketPath
138147}
139148
@@ -142,20 +151,20 @@ func Test_ListPlugins(t *testing.T) {
142151 t .Run ("external and internal configurable plugins" , func (t * testing.T ) {
143152 plugins := []PluginInfo {
144153 {
145- Name : api .MustNewName ("foo" ),
146- Version : api .MustNewVersion ("v1" ),
147- Pattern : secrets .MustParsePattern ("**" ),
148- Configurable : true ,
154+ Name : api .MustNewName ("foo" ),
155+ Version : api .MustNewVersion ("v1" ),
156+ SecretsProvider : & SecretsProviderMetadata { Pattern : secrets .MustParsePattern ("**" )} ,
157+ Configurable : true ,
149158 },
150159 {
151- Name : api .MustNewName ("bar" ),
152- Version : api .MustNewVersion ("v1" ),
153- Pattern : secrets .MustParsePattern ("**" ),
154- External : true ,
160+ Name : api .MustNewName ("bar" ),
161+ Version : api .MustNewVersion ("v1" ),
162+ SecretsProvider : & SecretsProviderMetadata { Pattern : secrets .MustParsePattern ("**" )} ,
163+ External : true ,
155164 },
156165 }
157166 socket := mockListPluginsEngine (t , plugins )
158- client , err := New (WithSocketPath (socket ))
167+ client , err := NewPluginManagement (WithSocketPath (socket ))
159168 require .NoError (t , err )
160169 result , err := client .ListPlugins (t .Context ())
161170 require .NoError (t , err )
@@ -164,7 +173,7 @@ func Test_ListPlugins(t *testing.T) {
164173 t .Run ("no plugins" , func (t * testing.T ) {
165174 var plugins []PluginInfo
166175 socket := mockListPluginsEngine (t , plugins )
167- client , err := New (WithSocketPath (socket ))
176+ client , err := NewPluginManagement (WithSocketPath (socket ))
168177 require .NoError (t , err )
169178 result , err := client .ListPlugins (t .Context ())
170179 require .NoError (t , err )
@@ -176,21 +185,21 @@ func Test_ListPlugins(t *testing.T) {
176185 Name : api .MustNewName ("foo" ),
177186 },
178187 {
179- Name : api .MustNewName ("bar" ),
180- Version : api .MustNewVersion ("v1" ),
181- Pattern : secrets .MustParsePattern ("**" ),
188+ Name : api .MustNewName ("bar" ),
189+ Version : api .MustNewVersion ("v1" ),
190+ SecretsProvider : & SecretsProviderMetadata { Pattern : secrets .MustParsePattern ("**" )} ,
182191 },
183192 }
184193 socket := mockListPluginsEngine (t , plugins )
185- client , err := New (WithSocketPath (socket ))
194+ client , err := NewPluginManagement (WithSocketPath (socket ))
186195 require .NoError (t , err )
187196 result , err := client .ListPlugins (t .Context ())
188197 require .NoError (t , err )
189198 assert .Equal (t , []PluginInfo {
190199 {
191- Name : api .MustNewName ("bar" ),
192- Version : api .MustNewVersion ("v1" ),
193- Pattern : secrets .MustParsePattern ("**" ),
200+ Name : api .MustNewName ("bar" ),
201+ Version : api .MustNewVersion ("v1" ),
202+ SecretsProvider : & SecretsProviderMetadata { Pattern : secrets .MustParsePattern ("**" )} ,
194203 },
195204 }, result )
196205 })
@@ -219,11 +228,14 @@ func Test_Version(t *testing.T) {
219228
220229func TestSecretsEngineUnavailable (t * testing.T ) {
221230 socketPath := testhelper .RandomShortSocketName ()
222- client , err := New (WithSocketPath (socketPath ))
231+ c , err := New (WithSocketPath (socketPath ))
223232 require .NoError (t , err )
224- _ , err = client . ListPlugins (t .Context ())
233+ _ , err = c . GetSecrets (t .Context (), secrets . MustParsePattern ( "**" ))
225234 require .ErrorIs (t , err , ErrSecretsEngineNotAvailable )
226- _ , err = client .GetSecrets (t .Context (), secrets .MustParsePattern ("**" ))
235+
236+ pm , err := NewPluginManagement (WithSocketPath (socketPath ))
237+ require .NoError (t , err )
238+ _ , err = pm .ListPlugins (t .Context ())
227239 require .ErrorIs (t , err , ErrSecretsEngineNotAvailable )
228240}
229241
0 commit comments