code: 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
  }
docs: // 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.