Fix: Abstraction of getting env variable or file content

This commit is contained in:
Daniel Hougaard
2024-06-16 07:39:57 +02:00
parent dbae6968c9
commit 6bad13738f
+23 -63
View File
@@ -214,17 +214,6 @@ func ReadFile(filePath string) ([]byte, error) {
return ioutil.ReadFile(filePath) return ioutil.ReadFile(filePath)
} }
func ReadFileAsString(filePath string) (string, error) {
fileBytes, err := ReadFile(filePath)
if err != nil {
return "", err
}
return string(fileBytes), nil
}
func ExecuteCommandWithTimeout(command string, timeout int64) error { func ExecuteCommandWithTimeout(command string, timeout int64) error {
shell := [2]string{"sh", "-c"} shell := [2]string{"sh", "-c"}
@@ -508,26 +497,17 @@ func (tm *AgentManager) FetchUniversalAuthAccessToken() (credential infisicalSdk
return infisicalSdk.MachineIdentityCredential{}, fmt.Errorf("unable to parse auth config due to error: %v", err) return infisicalSdk.MachineIdentityCredential{}, fmt.Errorf("unable to parse auth config due to error: %v", err)
} }
clientID := os.Getenv(util.INFISICAL_UNIVERSAL_AUTH_CLIENT_ID_NAME) clientID, err := util.GetEnvVarOrFileContent(util.INFISICAL_UNIVERSAL_AUTH_CLIENT_ID_NAME, universalAuthConfig.ClientIDPath)
if clientID == "" { if err != nil {
clientId, err := ReadFileAsString(universalAuthConfig.ClientIDPath) return infisicalSdk.MachineIdentityCredential{}, fmt.Errorf("unable to get client id: %v", err)
if err != nil {
return infisicalSdk.MachineIdentityCredential{}, fmt.Errorf("unable to read client id from file path '%s' due to error: %v", universalAuthConfig.ClientIDPath, err)
}
clientID = clientId
} }
clientSecret := os.Getenv("INFISICAL_UNIVERSAL_CLIENT_SECRET") clientSecret, err := util.GetEnvVarOrFileContent("INFISICAL_UNIVERSAL_CLIENT_SECRET", universalAuthConfig.ClientSecretPath)
if clientSecret == "" { if err != nil {
secret, err := ReadFileAsString(universalAuthConfig.ClientSecretPath) if len(tm.cachedUniversalAuthClientSecret) == 0 {
if err != nil { return infisicalSdk.MachineIdentityCredential{}, fmt.Errorf("unable to get client secret: %v", err)
if len(tm.cachedUniversalAuthClientSecret) == 0 {
return infisicalSdk.MachineIdentityCredential{}, fmt.Errorf("unable to read client secret from file and no cached client secret found: %v", err)
} else {
secret = tm.cachedUniversalAuthClientSecret
}
} }
clientSecret = secret clientSecret = tm.cachedUniversalAuthClientSecret
} }
tm.cachedUniversalAuthClientSecret = clientSecret tm.cachedUniversalAuthClientSecret = clientSecret
@@ -546,13 +526,9 @@ func (tm *AgentManager) FetchKubernetesAuthAccessToken() (credential infisicalSd
return infisicalSdk.MachineIdentityCredential{}, fmt.Errorf("unable to parse auth config due to error: %v", err) return infisicalSdk.MachineIdentityCredential{}, fmt.Errorf("unable to parse auth config due to error: %v", err)
} }
identityId := os.Getenv(util.INFISICAL_KUBERNETES_IDENTITY_ID_NAME) identityId, err := util.GetEnvVarOrFileContent(util.INFISICAL_MACHINE_IDENTITY_ID_NAME, kubernetesAuthConfig.IdentityID)
if identityId == "" { if err != nil {
identityId, err = ReadFileAsString(kubernetesAuthConfig.IdentityID) return infisicalSdk.MachineIdentityCredential{}, fmt.Errorf("unable to get identity id: %v", err)
if err != nil {
return infisicalSdk.MachineIdentityCredential{}, fmt.Errorf("unable to read identity id from file path '%s' due to error: %v", kubernetesAuthConfig.IdentityID, err)
}
} }
serviceAccountTokenPath := os.Getenv(util.INFISICAL_KUBERNETES_SERVICE_ACCOUNT_TOKEN_NAME) serviceAccountTokenPath := os.Getenv(util.INFISICAL_KUBERNETES_SERVICE_ACCOUNT_TOKEN_NAME)
@@ -574,13 +550,9 @@ func (tm *AgentManager) FetchAzureAuthAccessToken() (credential infisicalSdk.Mac
return infisicalSdk.MachineIdentityCredential{}, fmt.Errorf("unable to parse auth config due to error: %v", err) return infisicalSdk.MachineIdentityCredential{}, fmt.Errorf("unable to parse auth config due to error: %v", err)
} }
identityId := os.Getenv(util.INFISICAL_AZURE_AUTH_IDENTITY_ID_NAME) identityId, err := util.GetEnvVarOrFileContent(util.INFISICAL_MACHINE_IDENTITY_ID_NAME, azureAuthConfig.IdentityID)
if identityId == "" { if err != nil {
identityId, err = ReadFileAsString(azureAuthConfig.IdentityID) return infisicalSdk.MachineIdentityCredential{}, fmt.Errorf("unable to get identity id: %v", err)
if err != nil {
return infisicalSdk.MachineIdentityCredential{}, fmt.Errorf("unable to read identity id from file path '%s' due to error: %v", azureAuthConfig.IdentityID, err)
}
} }
return tm.infisicalClient.Auth().AzureAuthLogin(identityId) return tm.infisicalClient.Auth().AzureAuthLogin(identityId)
@@ -594,13 +566,9 @@ func (tm *AgentManager) FetchGcpIdTokenAuthAccessToken() (credential infisicalSd
return infisicalSdk.MachineIdentityCredential{}, fmt.Errorf("unable to parse auth config due to error: %v", err) return infisicalSdk.MachineIdentityCredential{}, fmt.Errorf("unable to parse auth config due to error: %v", err)
} }
identityId := os.Getenv(util.INFISICAL_GCP_AUTH_IDENTITY_ID_NAME) identityId, err := util.GetEnvVarOrFileContent(util.INFISICAL_MACHINE_IDENTITY_ID_NAME, gcpIdTokenAuthConfig.IdentityID)
if identityId == "" { if err != nil {
identityId, err = ReadFileAsString(gcpIdTokenAuthConfig.IdentityID) return infisicalSdk.MachineIdentityCredential{}, fmt.Errorf("unable to get identity id: %v", err)
if err != nil {
return infisicalSdk.MachineIdentityCredential{}, fmt.Errorf("unable to read identity id from file path '%s' due to error: %v", gcpIdTokenAuthConfig.IdentityID, err)
}
} }
return tm.infisicalClient.Auth().GcpIdTokenAuthLogin(identityId) return tm.infisicalClient.Auth().GcpIdTokenAuthLogin(identityId)
@@ -614,14 +582,9 @@ func (tm *AgentManager) FetchGcpIamAuthAccessToken() (credential infisicalSdk.Ma
return infisicalSdk.MachineIdentityCredential{}, fmt.Errorf("unable to parse auth config due to error: %v", err) return infisicalSdk.MachineIdentityCredential{}, fmt.Errorf("unable to parse auth config due to error: %v", err)
} }
identityId := os.Getenv(util.INFISICAL_GCP_AUTH_IDENTITY_ID_NAME) identityId, err := util.GetEnvVarOrFileContent(util.INFISICAL_MACHINE_IDENTITY_ID_NAME, gcpIamAuthConfig.IdentityID)
if identityId == "" { if err != nil {
identityId, err = ReadFileAsString(gcpIamAuthConfig.IdentityID) return infisicalSdk.MachineIdentityCredential{}, fmt.Errorf("unable to get identity id: %v", err)
if err != nil {
return infisicalSdk.MachineIdentityCredential{}, fmt.Errorf("unable to read identity id from file path '%s' due to error: %v", gcpIamAuthConfig.IdentityID, err)
}
} }
serviceAccountKeyPath := os.Getenv(util.INFISICAL_GCP_IAM_SERVICE_ACCOUNT_KEY_FILE_PATH_NAME) serviceAccountKeyPath := os.Getenv(util.INFISICAL_GCP_IAM_SERVICE_ACCOUNT_KEY_FILE_PATH_NAME)
@@ -644,13 +607,10 @@ func (tm *AgentManager) FetchAwsIamAuthAccessToken() (credential infisicalSdk.Ma
return infisicalSdk.MachineIdentityCredential{}, fmt.Errorf("unable to parse auth config due to error: %v", err) return infisicalSdk.MachineIdentityCredential{}, fmt.Errorf("unable to parse auth config due to error: %v", err)
} }
identityId := os.Getenv(util.INFISICAL_AWS_IAM_AUTH_IDENTITY_ID_NAME) identityId, err := util.GetEnvVarOrFileContent(util.INFISICAL_MACHINE_IDENTITY_ID_NAME, awsIamAuthConfig.IdentityID)
if identityId == "" {
identityId, err = ReadFileAsString(awsIamAuthConfig.IdentityID)
if err != nil { if err != nil {
return infisicalSdk.MachineIdentityCredential{}, fmt.Errorf("unable to read identity id from file path '%s' due to error: %v", awsIamAuthConfig.IdentityID, err) return infisicalSdk.MachineIdentityCredential{}, fmt.Errorf("unable to get identity id: %v", err)
}
} }
return tm.infisicalClient.Auth().AwsIamAuthLogin(identityId) return tm.infisicalClient.Auth().AwsIamAuthLogin(identityId)