@@ -170,16 +170,17 @@ func (s *composeService) getPluginBinaryPath(provider string) (path string, err
170
170
}
171
171
172
172
func (s * composeService ) setupPluginCommand (ctx context.Context , project * types.Project , service types.ServiceConfig , path , command string ) (* exec.Cmd , error ) {
173
- cmdOptionsMetadata := s .getPluginMetadata (path , service .Provider .Type )
173
+ cmdOptionsMetadata := s .getPluginMetadata (path , service .Provider .Type , project )
174
174
var currentCommandMetadata CommandMetadata
175
175
switch command {
176
176
case "up" :
177
177
currentCommandMetadata = cmdOptionsMetadata .Up
178
178
case "down" :
179
179
currentCommandMetadata = cmdOptionsMetadata .Down
180
180
}
181
- commandMetadataIsEmpty := len ( currentCommandMetadata . Parameters ) == 0
181
+
182
182
provider := * service .Provider
183
+ commandMetadataIsEmpty := cmdOptionsMetadata .IsEmpty ()
183
184
if err := currentCommandMetadata .CheckRequiredParameters (provider ); ! commandMetadataIsEmpty && err != nil {
184
185
return nil , err
185
186
}
@@ -203,8 +204,13 @@ func (s *composeService) setupPluginCommand(ctx context.Context, project *types.
203
204
return cmd , nil
204
205
}
205
206
206
- func (s * composeService ) getPluginMetadata (path , command string ) ProviderMetadata {
207
+ func (s * composeService ) getPluginMetadata (path , command string , project * types. Project ) ProviderMetadata {
207
208
cmd := exec .Command (path , "compose" , "metadata" )
209
+ err := s .prepareShellOut (context .Background (), project , cmd )
210
+ if err != nil {
211
+ logrus .Debugf ("failed to prepare plugin metadata command: %v" , err )
212
+ return ProviderMetadata {}
213
+ }
208
214
stdout := & bytes.Buffer {}
209
215
cmd .Stdout = stdout
210
216
@@ -239,6 +245,10 @@ type ProviderMetadata struct {
239
245
Down CommandMetadata `json:"down"`
240
246
}
241
247
248
+ func (p ProviderMetadata ) IsEmpty () bool {
249
+ return p .Description == "" && p .Up .Parameters == nil && p .Down .Parameters == nil
250
+ }
251
+
242
252
type CommandMetadata struct {
243
253
Parameters []ParameterMetadata `json:"parameters"`
244
254
}
0 commit comments