(ctx context.Context)
| 232 | } |
| 233 | |
| 234 | func (c client) ListPlugins(ctx context.Context) ([]PluginInfo, error) { |
| 235 | req := connect.NewRequest(pluginsv1.ListPluginsRequest_builder{}.Build()) |
| 236 | resp, err := c.engineClient.ListPlugins(ctx, req) |
| 237 | if isDialError(err) { |
| 238 | return nil, fmt.Errorf("%w: %w", ErrSecretsEngineNotAvailable, err) |
| 239 | } |
| 240 | if err != nil { |
| 241 | return nil, err |
| 242 | } |
| 243 | var result []PluginInfo |
| 244 | for _, item := range resp.Msg.GetPlugins() { |
| 245 | name, err := api.NewName(item.GetName()) |
| 246 | if err != nil { |
| 247 | continue |
| 248 | } |
| 249 | version, err := api.NewVersion(item.GetVersion()) |
| 250 | if err != nil { |
| 251 | continue |
| 252 | } |
| 253 | info := PluginInfo{ |
| 254 | Name: name, |
| 255 | Version: version, |
| 256 | Disabled: item.GetDisabled(), |
| 257 | External: item.GetExternal(), |
| 258 | Configurable: item.GetConfigurable(), |
| 259 | RunStatus: item.GetRunStatus(), |
| 260 | StatusMessage: item.GetStatusMessage(), |
| 261 | } |
| 262 | if sp := item.GetSecretsProvider(); sp != nil { |
| 263 | pattern, err := secrets.ParsePattern(sp.GetPattern()) |
| 264 | if err != nil { |
| 265 | continue |
| 266 | } |
| 267 | info.SecretsProvider = &SecretsProviderMetadata{Pattern: pattern} |
| 268 | } |
| 269 | result = append(result, info) |
| 270 | } |
| 271 | return result, nil |
| 272 | } |
| 273 | |
| 274 | func (c client) EnablePlugin(ctx context.Context, name string) error { |
| 275 | r := pluginsv1.EnablePluginRequest_builder{}.Build() |
nothing calls this directly
no test coverage detected