in pkg/plugin/plugin.go [326:355]
func (d *CloudLoggingDatasource) CheckHealth(ctx context.Context, req *backend.CheckHealthRequest) (*backend.CheckHealthResult, error) {
// log.DefaultLogger.Info("CheckHealth called")
var status = backend.HealthStatusOk
settings := req.PluginContext.DataSourceInstanceSettings
var conf config
if err := json.Unmarshal(settings.JSONData, &conf); err != nil {
return nil, fmt.Errorf("unmarshal: %w", err)
}
if conf.DefaultProject == "" && conf.AuthType == gceAuthentication {
proj, err := utils.GCEDefaultProject(ctx, "")
if err != nil {
return nil, fmt.Errorf("failed to get GCE default project: %w", err)
}
conf.DefaultProject = proj
}
if err := d.client.TestConnection(ctx, conf.DefaultProject); err != nil {
return &backend.CheckHealthResult{
Status: backend.HealthStatusError,
Message: fmt.Sprintf("failed to run test query: %s", err),
}, nil
}
return &backend.CheckHealthResult{
Status: status,
Message: fmt.Sprintf("Successfully queried logs from GCP project %s", conf.DefaultProject),
}, nil
}