func()

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
}