func()

in internal/provider/provider.go [82:136]


func (p *ModuleTelemetryProvider) Configure(ctx context.Context, req provider.ConfigureRequest, resp *provider.ConfigureResponse) {
	var data ModuleTelemetryProviderModel

	resp.Diagnostics.Append(req.Config.Get(ctx, &data)...)

	if resp.Diagnostics.HasError() {
		return
	}
	enabled := true
	if !data.Enabled.IsNull() {
		enabled = data.Enabled.ValueBool()
	}
	var once sync.Once
	endpoint := ""
	endpointEnv := os.Getenv("MODTM_ENDPOINT")

	c := providerConfig{
		endpointFunc: func() string {
			once.Do(func() {
				if !data.Endpoint.IsNull() {
					endpoint = readEndpointFromProviderBlock(data)
					traceLog(ctx, fmt.Sprintf("Load provider's endpoint from provider block: %s", endpoint))
				} else if endpointEnv != "" {
					endpoint = endpointEnv
					traceLog(ctx, fmt.Sprintf("Load provider's endpoint from environment variable: %s", endpoint))
				} else {
					e, err := readEndpointFromBlob()
					if err != nil {
						endpoint = ""
						traceLog(ctx, "Failed to load provider's endpoint from default blob storage")
						return
					}
					endpoint = e
					traceLog(ctx, fmt.Sprintf("Load provider's endpoint from default blob storage: %s", endpoint))
				}

			})
			return endpoint
		},
		enabled: enabled,
	}

	if !data.ModuleSourceRegex.IsNull() {
		for _, value := range data.ModuleSourceRegex.Elements() {
			c.moduleSourceRegex = append(c.moduleSourceRegex, regexp.MustCompile(value.(basetypes.StringValue).ValueString()))
		}
	}
	if len(c.moduleSourceRegex) == 0 {
		c.moduleSourceRegex = append(c.moduleSourceRegex, regexp.MustCompile(".*"))
	}

	c.defaultEndpoint = data.Endpoint.IsNull() && endpointEnv == ""
	resp.DataSourceData = c
	resp.ResourceData = resp.DataSourceData
}