provider.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package delinea
  2. import (
  3. "encoding/json"
  4. "github.com/DelineaXPM/dsv-sdk-go/v2/vault"
  5. "github.com/external-secrets/external-secrets-e2e/framework"
  6. "github.com/onsi/gomega"
  7. )
  8. type secretStoreProvider struct {
  9. api *vault.Vault
  10. cfg *config
  11. }
  12. func (p *secretStoreProvider) init(cfg *config) {
  13. p.cfg = cfg
  14. dsvClient, err := vault.New(vault.Configuration{
  15. Credentials: vault.ClientCredential{
  16. ClientID: cfg.clientID,
  17. ClientSecret: cfg.clientSecret,
  18. },
  19. Tenant: cfg.tenant,
  20. URLTemplate: cfg.urlTemplate,
  21. TLD: cfg.tld,
  22. })
  23. gomega.Expect(err).ToNot(gomega.HaveOccurred())
  24. p.api = dsvClient
  25. }
  26. func (p *secretStoreProvider) CreateSecret(key string, val framework.SecretEntry) {
  27. var data map[string]any
  28. err := json.Unmarshal([]byte(val.Value), &data)
  29. gomega.Expect(err).ToNot(gomega.HaveOccurred())
  30. _, err = p.api.CreateSecret(key, &vault.SecretCreateRequest{
  31. Data: data,
  32. })
  33. gomega.Expect(err).ToNot(gomega.HaveOccurred())
  34. }
  35. func (p *secretStoreProvider) DeleteSecret(key string) {
  36. err := p.api.DeleteSecret(key)
  37. gomega.Expect(err).ToNot(gomega.HaveOccurred())
  38. }