provider.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package secretserver
  2. import (
  3. "encoding/json"
  4. "github.com/DelineaXPM/tss-sdk-go/v3/server"
  5. "github.com/external-secrets/external-secrets-e2e/framework"
  6. "github.com/onsi/gomega"
  7. )
  8. type secretStoreProvider struct {
  9. api *server.Server
  10. cfg *config
  11. framework *framework.Framework
  12. secretID map[string]int
  13. }
  14. func (p *secretStoreProvider) init(cfg *config, f *framework.Framework) {
  15. p.cfg = cfg
  16. p.secretID = make(map[string]int)
  17. p.framework = f
  18. secretserverClient, err := server.New(server.Configuration{
  19. Credentials: server.UserCredential{
  20. Username: cfg.username,
  21. Password: cfg.password,
  22. },
  23. ServerURL: cfg.serverURL,
  24. })
  25. gomega.Expect(err).ToNot(gomega.HaveOccurred())
  26. p.api = secretserverClient
  27. }
  28. func (p *secretStoreProvider) CreateSecret(key string, val framework.SecretEntry) {
  29. var data map[string]interface{}
  30. err := json.Unmarshal([]byte(val.Value), &data)
  31. gomega.Expect(err).ToNot(gomega.HaveOccurred())
  32. fields := make([]server.SecretField, 1)
  33. fields[0].FieldID = 329 // Data
  34. fields[0].ItemValue = val.Value
  35. s, err := p.api.CreateSecret(server.Secret{
  36. SecretTemplateID: 6051, // custom template
  37. SiteID: 1,
  38. FolderID: 10,
  39. Name: key,
  40. Fields: fields,
  41. })
  42. gomega.Expect(err).ToNot(gomega.HaveOccurred())
  43. p.secretID[key] = s.ID
  44. }
  45. func (p *secretStoreProvider) DeleteSecret(key string) {
  46. err := p.api.DeleteSecret(p.secretID[key])
  47. gomega.Expect(err).ToNot(gomega.HaveOccurred())
  48. }