Chore: Add CloudWatch HTTP API tests (#29691)

* CloudWatch: Add HTTP API tests

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
This commit is contained in:
Arve Knudsen
2021-01-07 11:36:13 +01:00
committed by GitHub
parent b6efebd92c
commit 25048ebdf8
33 changed files with 1286 additions and 191 deletions
+12 -42
View File
@@ -13,7 +13,6 @@ import (
"sync"
"time"
"github.com/facebookgo/inject"
"golang.org/x/sync/errgroup"
"github.com/grafana/grafana/pkg/api"
@@ -43,7 +42,6 @@ import (
_ "github.com/grafana/grafana/pkg/services/search"
_ "github.com/grafana/grafana/pkg/services/sqlstore"
"github.com/grafana/grafana/pkg/setting"
"github.com/grafana/grafana/pkg/util/errutil"
)
// Config contains parameters for the New function.
@@ -75,11 +73,11 @@ func New(cfg Config) (*Server, error) {
version: cfg.Version,
commit: cfg.Commit,
buildBranch: cfg.BuildBranch,
listener: cfg.Listener,
}
if cfg.Listener != nil {
if err := s.init(&cfg); err != nil {
return nil, err
}
if err := s.init(); err != nil {
return nil, err
}
return s, nil
@@ -96,6 +94,7 @@ type Server struct {
shutdownInProgress bool
isInitialized bool
mtx sync.Mutex
listener net.Listener
configFile string
homePath string
@@ -108,7 +107,7 @@ type Server struct {
}
// init initializes the server and its services.
func (s *Server) init(cfg *Config) error {
func (s *Server) init() error {
s.mtx.Lock()
defer s.mtx.Unlock()
@@ -131,25 +130,15 @@ func (s *Server) init(cfg *Config) error {
return err
}
// Initialize services.
for _, service := range services {
if registry.IsDisabled(service.Instance) {
continue
}
if cfg != nil {
if s.listener != nil {
for _, service := range services {
if httpS, ok := service.Instance.(*api.HTTPServer); ok {
// Configure the api.HTTPServer if necessary
// Hopefully we can find a better solution, maybe with a more advanced DI framework, f.ex. Dig?
if cfg.Listener != nil {
s.log.Debug("Using provided listener for HTTP server")
httpS.Listener = cfg.Listener
}
s.log.Debug("Using provided listener for HTTP server")
httpS.Listener = s.listener
}
}
if err := service.Instance.Init(); err != nil {
return errutil.Wrapf(err, "Service init failed")
}
}
return nil
@@ -158,7 +147,7 @@ func (s *Server) init(cfg *Config) error {
// Run initializes and starts services. This will block until all services have
// exited. To initiate shutdown, call the Shutdown method in another goroutine.
func (s *Server) Run() (err error) {
if err = s.init(nil); err != nil {
if err = s.init(); err != nil {
return
}
@@ -278,26 +267,7 @@ func (s *Server) buildServiceGraph(services []*registry.Descriptor) error {
localcache.New(5*time.Minute, 10*time.Minute),
s,
}
for _, service := range services {
objs = append(objs, service.Instance)
}
var serviceGraph inject.Graph
// Provide services and their dependencies to the graph.
for _, obj := range objs {
if err := serviceGraph.Provide(&inject.Object{Value: obj}); err != nil {
return errutil.Wrapf(err, "Failed to provide object to the graph")
}
}
// Resolve services and their dependencies.
if err := serviceGraph.Populate(); err != nil {
return errutil.Wrapf(err, "Failed to populate service dependencies")
}
return nil
return registry.BuildServiceGraph(objs, services)
}
// loadConfiguration loads settings and configuration from config files.