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  }