Browse Source

commiting initial e2e testing code

Signed-off-by: Bill Hamilton <bill.hamilton@delinea.com>
Bill Hamilton 2 years ago
parent
commit
ec4d6625fc

+ 1 - 0
e2e/go.mod

@@ -87,6 +87,7 @@ require (
 	github.com/Azure/go-autorest/logger v0.2.1 // indirect
 	github.com/Azure/go-autorest/tracing v0.6.0 // indirect
 	github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect
+	github.com/DelineaXPM/tss-sdk-go/v2 v2.0.1 // indirect
 	github.com/Masterminds/goutils v1.1.1 // indirect
 	github.com/Masterminds/semver/v3 v3.2.1 // indirect
 	github.com/Masterminds/sprig/v3 v3.2.3 // indirect

+ 2 - 0
e2e/go.sum

@@ -94,6 +94,8 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03
 github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
 github.com/DelineaXPM/dsv-sdk-go/v2 v2.1.2 h1:cmX2QC9s5kPqmghWLLZP8YRFO1ZD/C59BpNH2ujP99w=
 github.com/DelineaXPM/dsv-sdk-go/v2 v2.1.2/go.mod h1:tNlpIXJlIwQlRbobXDPme4qv/Rc8+a1GbuUhE3m4JhQ=
+github.com/DelineaXPM/tss-sdk-go/v2 v2.0.1 h1:/rzzzaBuj/FYTcbt8sYZ9IzlnENqcgh5zKqBhHiBBm4=
+github.com/DelineaXPM/tss-sdk-go/v2 v2.0.1/go.mod h1:xz6FXP2Do88Vc5Hx7OamZgZC1W45yfmLy4+iDKxlGXo=
 github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI=
 github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
 github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ=

+ 1 - 0
e2e/suites/provider/cases/import.go

@@ -27,4 +27,5 @@ import (
 	_ "github.com/external-secrets/external-secrets-e2e/suites/provider/cases/template"
 	_ "github.com/external-secrets/external-secrets-e2e/suites/provider/cases/vault"
 	_ "github.com/external-secrets/external-secrets-e2e/suites/provider/cases/conjur"
+	_ "github.com/external-secrets/external-secrets-e2e/suites/provider/cases/secretserver"
 )

+ 28 - 6
e2e/suites/provider/cases/secretserver/provider.go

@@ -1,7 +1,9 @@
-package delinea
+package secretserver
 
 import (
 	"encoding/json"
+	"fmt"
+	"strconv"
 
 	"github.com/DelineaXPM/tss-sdk-go/v2/server"
 /*	"github.com/DelineaXPM/dsv-sdk-go/v2/vault"*/
@@ -19,8 +21,8 @@ func (p *secretStoreProvider) init(cfg *config) {
 	p.cfg = cfg
 
 	secretserverClient, err := server.New(server.Configuration{
-		Credentials: vault.ClientCredential{
-			Username:     cfg.username,
+		Credentials: server.UserCredential{
+			Username: cfg.username,
 			Password: cfg.password,
 		},
 		ServerURL:      cfg.serverURL,
@@ -34,13 +36,33 @@ func (p *secretStoreProvider) CreateSecret(key string, val framework.SecretEntry
 	var data map[string]interface{}
 	err := json.Unmarshal([]byte(val.Value), &data)
 	gomega.Expect(err).ToNot(gomega.HaveOccurred())
-	_, err = p.api.CreateSecret(key, &vault.SecretCreateRequest{
-		Data: data,
+
+	fields := make([]server.SecretField, 3)
+		fields[0].FieldID = 108 // machine
+		fields[0].ItemValue = "Secret Server TEST MACHINE"
+		fields[1].FieldID = 111 // username
+		fields[1].ItemValue = "secretserver_username"
+		fields[2].FieldID = 110 // password
+		fields[2].ItemValue = "secretserver_password"
+
+	_, err = p.api.CreateSecret(server.Secret{
+		SecretTemplateID: 6007,
+		SiteID: 1,
+		FolderID: 73,
+		Name: key,
+		Fields: fields,
 	})
 	gomega.Expect(err).ToNot(gomega.HaveOccurred())
 }
 
 func (p *secretStoreProvider) DeleteSecret(key string) {
-	err := p.api.DeleteSecret(key)
+	fmt.Println("DELETE SECRET KEY = ", key)
+	id, _ := strconv.Atoi(key)
+/*
+	if err != nil {
+		return nil, errors.New("incorrect string to integer conversion")
+	}
+*/
+	err := p.api.DeleteSecret(id)
 	gomega.Expect(err).ToNot(gomega.HaveOccurred())
 }

+ 10 - 23
e2e/suites/provider/cases/secretserver/delinea.go → e2e/suites/provider/cases/secretserver/secretserver.go

@@ -2,7 +2,7 @@ package secretserver
 
 import (
 	"context"
-
+	"fmt"
 	"github.com/external-secrets/external-secrets-e2e/framework"
 	"github.com/external-secrets/external-secrets-e2e/suites/provider/cases/common"
 	esv1beta1 "github.com/external-secrets/external-secrets/apis/externalsecrets/v1beta1"
@@ -26,13 +26,16 @@ var _ = ginkgo.Describe("[secretserver]", ginkgo.Label("secretserver"), func() {
 		gomega.Expect(err).ToNot(gomega.HaveOccurred())
 
 		provider.init(cfg)
-
 		createResources(context.Background(), f, cfg)
+
+		fmt.Printf("\n\n\nCONFIG HERE **************** %+v\n\n\n", cfg)
+
 	})
 
 	ginkgo.DescribeTable("sync secrets", framework.TableFuncWithExternalSecret(f, provider),
 
 		ginkgo.Entry(common.JSONDataWithProperty(f)),
+/*
 		ginkgo.Entry(common.JSONDataWithoutTargetName(f)),
 		ginkgo.Entry(common.JSONDataWithTemplate(f)),
 		ginkgo.Entry(common.JSONDataWithTemplateFromLiteral(f)),
@@ -44,31 +47,14 @@ var _ = ginkgo.Describe("[secretserver]", ginkgo.Label("secretserver"), func() {
 		ginkgo.Entry(common.DataPropertyDockerconfigJSON(f)),
 		ginkgo.Entry(common.SSHKeySyncDataProperty(f)),
 		ginkgo.Entry(common.DecodingPolicySync(f)),
-
-		// V1Alpha1 is not supported.
-		// ginkgo.Entry(common.SyncV1Alpha1(f)),
-
-		// Non-JSON values are not supported by DSV.
-		// ginkgo.Entry(common.SimpleDataSync(f)),
-		// ginkgo.Entry(common.SyncWithoutTargetName(f)),
-		// ginkgo.Entry(common.SSHKeySync(f)),
-		// ginkgo.Entry(common.DeletionPolicyDelete(f)),
-
-		// FindByName is not supported.
-		// ginkgo.Entry(common.FindByName(f)),
-		// ginkgo.Entry(common.FindByNameAndRewrite(f)),
-		// ginkgo.Entry(common.FindByNameWithPath(f)),
-
-		// FindByTag is not supported.
-		// ginkgo.Entry(common.FindByTag(f)),
-		// ginkgo.Entry(common.FindByTagWithPath(f)),
+*/
 	)
 })
 
 func createResources(ctx context.Context, f *framework.Framework, cfg *config) {
 
 	secretName := "secretserver-credential"
-	secretKey := "password
+	secretKey := "password"
 	// Creating a secret to hold the Delinea client secret.
 	secretSpec := v1.Secret{
 		ObjectMeta: metav1.ObjectMeta{
@@ -76,7 +62,7 @@ func createResources(ctx context.Context, f *framework.Framework, cfg *config) {
 			Namespace: f.Namespace.Name,
 		},
 		StringData: map[string]string{
-			key: cfg.password,
+			secretKey: cfg.password,
 		},
 	}
 
@@ -91,7 +77,7 @@ func createResources(ctx context.Context, f *framework.Framework, cfg *config) {
 		},
 		Spec: esv1beta1.SecretStoreSpec{
 			Provider: &esv1beta1.SecretStoreProvider{
-				Delinea: &esv1beta1.SecretServerProvider{
+				SecretServer: &esv1beta1.SecretServerProvider{
 					ServerURL:      cfg.serverURL,
 					Username: &esv1beta1.SecretServerProviderRef{
 						Value: cfg.username,
@@ -107,6 +93,7 @@ func createResources(ctx context.Context, f *framework.Framework, cfg *config) {
 		},
 	}
 
+	fmt.Printf("SECRET SPEC ************************ %+v", secretStoreSpec)
 	err = f.CRClient.Create(ctx, &secretStoreSpec)
 	gomega.Expect(err).ToNot(gomega.HaveOccurred())
 }