in mmv1/api/resource/sweeper.go [153:242]
func (s Sweeper) EnvVarInterpolate(value string) string {
// For exact matches, return the function directly
switch value {
case "ORG_ID":
return "envvar.GetTestOrgFromEnv(t)"
case "ORG_DOMAIN":
return "envvar.GetTestOrgDomainFromEnv(t)"
case "CREDENTIALS":
return "envvar.GetTestCredsFromEnv(t)"
case "REGION":
return "envvar.GetTestRegionFromEnv()"
case "ORG_TARGET":
return "envvar.GetTestOrgTargetFromEnv(t)"
case "BILLING_ACCT":
return "envvar.GetTestBillingAccountFromEnv(t)"
case "MASTER_BILLING_ACCT":
return "envvar.GetTestMasterBillingAccountFromEnv(t)"
case "SERVICE_ACCT":
return "envvar.GetTestServiceAccountFromEnv(t)"
case "PROJECT_NAME":
return "envvar.GetTestProjectFromEnv()"
case "PROJECT_NUMBER":
return "envvar.GetTestProjectNumberFromEnv()"
case "CUST_ID":
return "envvar.GetTestCustIdFromEnv(t)"
case "IDENTITY_USER":
return "envvar.GetTestIdentityUserFromEnv(t)"
case "PAP_DESCRIPTION":
return "envvar.GetTestPublicAdvertisedPrefixDescriptionFromEnv(t)"
case "CHRONICLE_ID":
return "envvar.GetTestChronicleInstanceIdFromEnv(t)"
case "VMWAREENGINE_PROJECT":
return "envvar.GetTestVmwareengineProjectFromEnv(t)"
case "ZONE":
return "envvar.GetTestZoneFromEnv()"
}
// Check if the string contains any patterns that need to be replaced
hasPattern := false
for _, pattern := range []string{
"${ORG_ID}", "${ORG_DOMAIN}", "${CREDENTIALS}", "${REGION}",
"${ORG_TARGET}", "${BILLING_ACCT}", "${MASTER_BILLING_ACCT}",
"${SERVICE_ACCT}", "${PROJECT_NAME}", "${PROJECT_NUMBER}",
"${CUST_ID}", "${IDENTITY_USER}", "${PAP_DESCRIPTION}",
"${CHRONICLE_ID}", "${VMWAREENGINE_PROJECT}", "${ZONE}",
} {
if strings.Contains(value, pattern) {
hasPattern = true
break
}
}
// If no patterns found, return as a string literal
if !hasPattern {
return fmt.Sprintf("%q", value)
}
// Start with the string as a literal
result := fmt.Sprintf("%q", value)
// Replace each pattern with the corresponding function call
replacements := map[string]string{
"${ORG_ID}": "\" + envvar.GetTestOrgFromEnv(t) + \"",
"${ORG_DOMAIN}": "\" + envvar.GetTestOrgDomainFromEnv(t) + \"",
"${CREDENTIALS}": "\" + envvar.GetTestCredsFromEnv(t) + \"",
"${REGION}": "\" + envvar.GetTestRegionFromEnv() + \"",
"${ORG_TARGET}": "\" + envvar.GetTestOrgTargetFromEnv(t) + \"",
"${BILLING_ACCT}": "\" + envvar.GetTestBillingAccountFromEnv(t) + \"",
"${MASTER_BILLING_ACCT}": "\" + envvar.GetTestMasterBillingAccountFromEnv(t) + \"",
"${SERVICE_ACCT}": "\" + envvar.GetTestServiceAccountFromEnv(t) + \"",
"${PROJECT_NAME}": "\" + envvar.GetTestProjectFromEnv() + \"",
"${PROJECT_NUMBER}": "\" + envvar.GetTestProjectNumberFromEnv() + \"",
"${CUST_ID}": "\" + envvar.GetTestCustIdFromEnv(t) + \"",
"${IDENTITY_USER}": "\" + envvar.GetTestIdentityUserFromEnv(t) + \"",
"${PAP_DESCRIPTION}": "\" + envvar.GetTestPublicAdvertisedPrefixDescriptionFromEnv(t) + \"",
"${CHRONICLE_ID}": "\" + envvar.GetTestChronicleInstanceIdFromEnv(t) + \"",
"${VMWAREENGINE_PROJECT}": "\" + envvar.GetTestVmwareengineProjectFromEnv(t) + \"",
"${ZONE}": "\" + envvar.GetTestZoneFromEnv() + \"",
}
for pattern, replacement := range replacements {
result = strings.Replace(result, pattern, replacement, -1)
}
// Clean up unnecessary concatenations like "" + and + ""
result = strings.Replace(result, "\"\" + ", "", -1)
result = strings.Replace(result, " + \"\"", "", -1)
return result
}