get.porter.sh/porter@v1.3.0/pkg/secrets/plugin_adapter.go (about) 1 package secrets 2 3 import ( 4 "context" 5 "io" 6 7 "get.porter.sh/porter/pkg/secrets/plugins" 8 ) 9 10 var _ Store = PluginAdapter{} 11 12 // PluginAdapter converts between the low-level plugins.SecretsProtocol and 13 // the secrets.Store interface. 14 type PluginAdapter struct { 15 plugin plugins.SecretsProtocol 16 } 17 18 // NewPluginAdapter wraps the specified storage plugin. 19 func NewPluginAdapter(plugin plugins.SecretsProtocol) PluginAdapter { 20 return PluginAdapter{plugin: plugin} 21 } 22 23 func (a PluginAdapter) Close() error { 24 if closer, ok := a.plugin.(io.Closer); ok { 25 return closer.Close() 26 } 27 return nil 28 } 29 30 func (a PluginAdapter) Resolve(ctx context.Context, keyName string, keyValue string) (string, error) { 31 return a.plugin.Resolve(ctx, keyName, keyValue) 32 } 33 34 func (a PluginAdapter) Create(ctx context.Context, keyName string, keyValue string, value string) error { 35 return a.plugin.Create(ctx, keyName, keyValue, value) 36 }