func loadOrFindTenantID(env azure.Environment, subscriptionID string) (string, error) {
	var tenantID string

	log.Debug("Looking up AAD Tenant ID.", logutil.Fields{
		"subs": subscriptionID})

	// Load from cache
	fp := tenantIDPath(subscriptionID)
	b, err := ioutil.ReadFile(fp)
	if err == nil {
		tenantID = strings.TrimSpace(string(b))
		log.Debugf("Tenant ID loaded from file: %s", fp)
	} else if os.IsNotExist(err) {
		log.Debugf("Tenant ID file not found: %s", fp)
	} else {
		return "", fmt.Errorf("Failed to load tenant ID file: %v", err)
	}

	// Handle cache miss
	if tenantID == "" {
		log.Debug("Making API call to find tenant ID")
		t, err := findTenantID(env, subscriptionID)
		if err != nil {
			return "", err
		}
		tenantID = t

		// Cache the result
		if err := saveTenantID(fp, tenantID); err != nil {
			return "", fmt.Errorf("Failed to save tenant ID: %v", err)
		}
		log.Debugf("Cached tenant ID to file: %s", fp)
	}
	log.Debug("Found AAD Tenant ID.", logutil.Fields{
		"tenant": tenantID,
		"subs":   subscriptionID})
	return tenantID, nil
}
func loadOrFindTenantID(env azure.Environment, subscriptionID string) (string, error) {
	var tenantID string

	log.Debug("Looking up AAD Tenant ID.", logutil.Fields{
		"subs": subscriptionID})

	// Load from cache
	fp := tenantIDPath(subscriptionID)
	b, err := ioutil.ReadFile(fp)
	if err == nil {
		tenantID = strings.TrimSpace(string(b))
		log.Debugf("Tenant ID loaded from file: %s", fp)
	} else if os.IsNotExist(err) {
		log.Debugf("Tenant ID file not found: %s", fp)
	} else {
		return "", fmt.Errorf("Failed to load tenant ID file: %v", err)
	}

	// Handle cache miss
	if tenantID == "" {
		log.Debug("Making API call to find tenant ID")
		t, err := findTenantID(env, subscriptionID)
		if err != nil {
			return "", err
		}
		tenantID = t

		// Cache the result
		if err := saveTenantID(fp, tenantID); err != nil {
			return "", fmt.Errorf("Failed to save tenant ID: %v", err)
		}
		log.Debugf("Cached tenant ID to file: %s", fp)
	}
	log.Debug("Found AAD Tenant ID.", logutil.Fields{
		"tenant": tenantID,
		"subs":   subscriptionID})
	return tenantID, nil
}
func loadOrFindTenantID ( env azure . Environment , subscriptionID string ) ( string , error ) { var tenantID string log . Debug ( " " , logutil . Fields { " " : subscriptionID } ) // Load from cache fp := tenantIDPath ( subscriptionID ) b , err := ioutil . ReadFile ( fp ) if err == nil { tenantID = strings . TrimSpace ( string ( b ) ) log . Debugf ( " " , fp ) } else if os . IsNotExist ( err ) { log . Debugf ( " " , fp ) } else { return " " , fmt . Errorf ( " " , err ) } // Handle cache miss if tenantID == " " { log . Debug ( " " ) t , err := findTenantID ( env , subscriptionID ) if err != nil { return " " , err } tenantID = t // Cache the result if err := saveTenantID ( fp , tenantID ) ; err != nil { return " " , fmt . Errorf ( " " , err ) } log . Debugf ( " " , fp ) } log . Debug ( " " , logutil . Fields { " " : tenantID , " " : subscriptionID } ) return tenantID , nil }
// loadOrFindTenantID figures out the AAD tenant ID of the subscription by first
// looking at the cache file, if not exists, makes a network call to load it and
// cache it for future use.
loadOrFindTenantID figures out the AAD tenant ID of the subscription by first looking at the cache file if not exists makes a network call to load it and cache it for future use .