Skip to content

Commit

Permalink
refactor: add functions to get parameters and add constants (#896)
Browse files Browse the repository at this point in the history
* refactor: add functions to get parameters and add constants

Signed-off-by: Anish Ramasekar <anish.ramasekar@gmail.com>

* review feedback

Signed-off-by: Anish Ramasekar <anish.ramasekar@gmail.com>
  • Loading branch information
aramase committed May 24, 2022
1 parent e0ff59e commit 82385a5
Show file tree
Hide file tree
Showing 14 changed files with 923 additions and 241 deletions.
163 changes: 48 additions & 115 deletions pkg/provider/provider.go

Large diffs are not rendered by default.

13 changes: 7 additions & 6 deletions pkg/provider/provider_test.go
Expand Up @@ -20,6 +20,7 @@ import (
"github.com/stretchr/testify/assert"

"github.com/Azure/secrets-store-csi-driver-provider-azure/pkg/auth"
"github.com/Azure/secrets-store-csi-driver-provider-azure/pkg/provider/types"
"github.com/Azure/secrets-store-csi-driver-provider-azure/pkg/version"
)

Expand Down Expand Up @@ -429,19 +430,19 @@ func TestGetContentBytes(t *testing.T) {
func TestFormatKeyVaultObject(t *testing.T) {
cases := []struct {
desc string
keyVaultObject KeyVaultObject
expectedKeyVaultObject KeyVaultObject
keyVaultObject types.KeyVaultObject
expectedKeyVaultObject types.KeyVaultObject
}{
{
desc: "leading and trailing whitespace trimmed from all fields",
keyVaultObject: KeyVaultObject{
keyVaultObject: types.KeyVaultObject{
ObjectName: "secret1 ",
ObjectVersion: "",
ObjectEncoding: "base64 ",
ObjectType: " secret",
ObjectAlias: "",
},
expectedKeyVaultObject: KeyVaultObject{
expectedKeyVaultObject: types.KeyVaultObject{
ObjectName: "secret1",
ObjectVersion: "",
ObjectEncoding: "base64",
Expand All @@ -451,14 +452,14 @@ func TestFormatKeyVaultObject(t *testing.T) {
},
{
desc: "no data loss for already sanitized object",
keyVaultObject: KeyVaultObject{
keyVaultObject: types.KeyVaultObject{
ObjectName: "secret1",
ObjectVersion: "version1",
ObjectEncoding: "base64",
ObjectType: "secret",
ObjectAlias: "alias",
},
expectedKeyVaultObject: KeyVaultObject{
expectedKeyVaultObject: types.KeyVaultObject{
ObjectName: "secret1",
ObjectVersion: "version1",
ObjectEncoding: "base64",
Expand Down
83 changes: 83 additions & 0 deletions pkg/provider/types/parameters.go
@@ -0,0 +1,83 @@
package types

import (
"strconv"
"strings"

"gopkg.in/yaml.v2"
)

// GetKeyVaultName returns the key vault name
func GetKeyVaultName(parameters map[string]string) string {
return strings.TrimSpace(parameters[KeyVaultNameParameter])
}

// GetCloudName returns the cloud name
func GetCloudName(parameters map[string]string) string {
return strings.TrimSpace(parameters[CloudNameParameter])
}

// GetUsePodIdentity returns if pod identity is enabled
func GetUsePodIdentity(parameters map[string]string) (bool, error) {
str := strings.TrimSpace(parameters[UsePodIdentityParameter])
if str == "" {
return false, nil
}
return strconv.ParseBool(str)
}

// GetUseVMManagedIdentity returns if VM managed identity is enabled
func GetUseVMManagedIdentity(parameters map[string]string) (bool, error) {
str := strings.TrimSpace(parameters[UseVMManagedIdentityParameter])
if str == "" {
return false, nil
}
return strconv.ParseBool(str)
}

// GetUserAssignedIdentityID returns the user assigned identity ID
func GetUserAssignedIdentityID(parameters map[string]string) string {
return strings.TrimSpace(parameters[UserAssignedIdentityIDParameter])
}

// GetTenantID returns the tenant ID
func GetTenantID(parameters map[string]string) string {
return strings.TrimSpace(parameters[TenantIDParameter])
}

// GetCloudEnvFileName returns the cloud env file name
func GetCloudEnvFileName(parameters map[string]string) string {
return strings.TrimSpace(parameters[CloudEnvFileNameParameter])
}

// GetPodName returns the pod name
func GetPodName(parameters map[string]string) string {
return strings.TrimSpace(parameters[CSIAttributePodName])
}

// GetPodNamespace returns the pod namespace
func GetPodNamespace(parameters map[string]string) string {
return strings.TrimSpace(parameters[CSIAttributePodNamespace])
}

// GetClientID returns the client ID
func GetClientID(parameters map[string]string) string {
return strings.TrimSpace(parameters[ClientIDParameter])
}

// GetServiceAccountTokens returns the service account tokens
func GetServiceAccountTokens(parameters map[string]string) string {
return strings.TrimSpace(parameters[CSIAttributeServiceAccountTokens])
}

// GetObjects returns the key vault objects
func GetObjects(parameters map[string]string) string {
return strings.TrimSpace(parameters[ObjectsParameter])
}

// GetObjectsArray returns the key vault objects array
func GetObjectsArray(objects string) (StringArray, error) {
var a StringArray
err := yaml.Unmarshal([]byte(objects), &a)
return a, err
}

0 comments on commit 82385a5

Please sign in to comment.