func getCommonCloudInfo()

in azkustodata/tokenprovider.go [100:127]


func getCommonCloudInfo(kcsb *ConnectionStringBuilder, http func() *http.Client) (*CloudInfo, *azcore.ClientOptions, string, error) {
	client := http()
	if http == nil {
		return nil, nil, "", fmt.Errorf("error: No http client provided")
	}

	cloud, err := GetMetadata(kcsb.DataSource, client)
	if err != nil {
		return nil, nil, "", err
	}
	cliOpts := kcsb.ClientOptions
	appClientId := kcsb.ApplicationClientId
	if cliOpts == nil {
		cliOpts = &azcore.ClientOptions{
			Transport: client,
		}
	}
	if cliOpts.Transport == nil {
		cliOpts.Transport = client
	}
	if isEmpty(cliOpts.Cloud.ActiveDirectoryAuthorityHost) {
		cliOpts.Cloud.ActiveDirectoryAuthorityHost = cloud.LoginEndpoint
	}
	if isEmpty(appClientId) {
		appClientId = cloud.KustoClientAppID
	}
	return &cloud, cliOpts, appClientId, nil
}