Procházet zdrojové kódy

continue with ValidateStore for Oracle

Marcin Kubica před 4 roky
rodič
revize
326c27a730
2 změnil soubory, kde provedl 52 přidání a 2 odebrání
  1. 15 0
      pkg/provider/oracle/oracle.go
  2. 37 2
      pkg/provider/oracle/oracle_test.go

+ 15 - 0
pkg/provider/oracle/oracle.go

@@ -241,6 +241,21 @@ func (vms *VaultManagementService) ValidateStore(store esv1beta1.GenericStore) e
 		return fmt.Errorf("region cannot be empty")
 	}
 
+	auth := oracleSpec.Auth
+	if auth == nil {
+		return nil
+	}
+
+	user := oracleSpec.Auth.User
+	if user == "" {
+		return fmt.Errorf("user cannot be empty")
+	}
+
+	tenant := oracleSpec.Auth.Tenancy
+	if tenant == "" {
+		return fmt.Errorf("tenant cannot be empty")
+	}
+
 	return nil
 }
 

+ 37 - 2
pkg/provider/oracle/oracle_test.go

@@ -178,8 +178,10 @@ func ErrorContains(out error, want string) bool {
 	return strings.Contains(out.Error(), want)
 }
 
-func makeSecretStore(vault, region string) *esv1beta1.SecretStore {
-	return &esv1beta1.SecretStore{
+type storeModifier func(*esv1beta1.SecretStore) *esv1beta1.SecretStore
+
+func makeSecretStore(vault, region string, fn ...storeModifier) *esv1beta1.SecretStore {
+	store := &esv1beta1.SecretStore{
 		Spec: esv1beta1.SecretStoreSpec{
 			Provider: &esv1beta1.SecretStoreProvider{
 				Oracle: &esv1beta1.OracleProvider{
@@ -189,6 +191,11 @@ func makeSecretStore(vault, region string) *esv1beta1.SecretStore {
 			},
 		},
 	}
+
+	for _, f := range fn {
+		store = f(store)
+	}
+	return store
 }
 
 func TestValidateStoreNoVault(t *testing.T) {
@@ -218,3 +225,31 @@ func TestValidateStoreSuccess(t *testing.T) {
 		t.Errorf("want nil got err")
 	}
 }
+
+func withSecretAuth(user, tenancy string) storeModifier {
+	return func(store *esv1beta1.SecretStore) *esv1beta1.SecretStore {
+		store.Spec.Provider.Oracle.Auth = &esv1beta1.OracleAuth{
+			User:    user,
+			Tenancy: tenancy,
+		}
+		return store
+	}
+}
+
+func TestSecretAuthNoUser(t *testing.T) {
+	p := VaultManagementService{}
+	store := makeSecretStore("some-OICD", "some-region", withSecretAuth("", "a-tenant"))
+	err := p.ValidateStore(store)
+	if err == nil {
+		t.Errorf("want err got nil")
+	}
+}
+
+func TestSecretAuthNoTenancy(t *testing.T) {
+	p := VaultManagementService{}
+	store := makeSecretStore("some-OICD", "some-region", withSecretAuth("user", ""))
+	err := p.ValidateStore(store)
+	if err == nil {
+		t.Errorf("want err got nil")
+	}
+}