dataproxy.go 834 B

123456789101112131415161718192021222324252627282930313233
  1. package api
  2. import (
  3. "github.com/grafana/grafana/pkg/api/pluginproxy"
  4. "github.com/grafana/grafana/pkg/bus"
  5. "github.com/grafana/grafana/pkg/metrics"
  6. "github.com/grafana/grafana/pkg/middleware"
  7. m "github.com/grafana/grafana/pkg/models"
  8. )
  9. func getDatasource(id int64, orgId int64) (*m.DataSource, error) {
  10. query := m.GetDataSourceByIdQuery{Id: id, OrgId: orgId}
  11. if err := bus.Dispatch(&query); err != nil {
  12. return nil, err
  13. }
  14. return query.Result, nil
  15. }
  16. func ProxyDataSourceRequest(c *middleware.Context) {
  17. c.TimeRequest(metrics.M_DataSource_ProxyReq_Timer)
  18. ds, err := getDatasource(c.ParamsInt64(":id"), c.OrgId)
  19. if err != nil {
  20. c.JsonApiErr(500, "Unable to load datasource meta data", err)
  21. return
  22. }
  23. proxyPath := c.Params("*")
  24. proxy := pluginproxy.NewDataSourceProxy(ds, c, proxyPath)
  25. proxy.HandleRequest()
  26. }