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
}