// Manifold returns a dependency manifold that runs a logger // worker, using the resource names defined in the supplied config. func Manifold(config ManifoldConfig) dependency.Manifold { newWorker := func(a agent.Agent, apiCaller base.APICaller) (worker.Worker, error) { return New(config.LogSource, logsender.NewAPI(apiCaller)), nil } return util.PostUpgradeManifold(config.PostUpgradeManifoldConfig, newWorker) }
func (s *LogSenderSuite) TestNewAPIWriteLogError(c *gc.C) { conn := &mockConnector{ c: c, connectError: errors.New("foo"), } a := logsender.NewAPI(conn) w, err := a.LogWriter() c.Assert(err, gc.ErrorMatches, "cannot connect to /logsink: foo") c.Assert(w, gc.Equals, nil) }
func (s *LogSenderSuite) TestNewAPIWriteError(c *gc.C) { conn := &mockConnector{ c: c, writeError: errors.New("foo"), } a := logsender.NewAPI(conn) w, err := a.LogWriter() c.Assert(err, gc.IsNil) err = w.WriteLog(new(params.LogRecord)) c.Assert(err, gc.ErrorMatches, "cannot send log message: foo") c.Assert(conn.written, gc.HasLen, 0) }
// Manifold returns a dependency manifold that runs a logger // worker, using the resource names defined in the supplied config. func Manifold(config ManifoldConfig) dependency.Manifold { return dependency.Manifold{ Inputs: []string{ config.APICallerName, }, Start: func(getResource dependency.GetResourceFunc) (worker.Worker, error) { var apiCaller base.APICaller if err := getResource(config.APICallerName, &apiCaller); err != nil { return nil, err } return New(config.LogSource, logsender.NewAPI(apiCaller)), nil }, } }
// Manifold returns a dependency manifold that runs a logger // worker, using the resource names defined in the supplied config. func Manifold(config ManifoldConfig) dependency.Manifold { return dependency.Manifold{ Inputs: []string{ config.APICallerName, }, Start: func(getResource dependency.GetResourceFunc) (worker.Worker, error) { if !feature.IsDbLogEnabled() { logger.Warningf("log sender manifold disabled by feature flag") return nil, dependency.ErrMissing } var apiCaller base.APICaller if err := getResource(config.APICallerName, &apiCaller); err != nil { return nil, err } return New(config.LogSource, logsender.NewAPI(apiCaller)), nil }, } }
func (s *LogSenderSuite) TestNewAPI(c *gc.C) { conn := &mockConnector{ c: c, } a := logsender.NewAPI(conn) w, err := a.LogWriter() c.Assert(err, gc.IsNil) msg := new(params.LogRecord) err = w.WriteLog(msg) c.Assert(err, gc.IsNil) c.Assert(conn.written, gc.HasLen, 1) c.Assert(conn.written[0], gc.Equals, msg) err = w.Close() c.Assert(err, gc.IsNil) c.Assert(conn.closeCount, gc.Equals, 1) }
func (config ManifoldConfig) newWorker(apiCaller base.APICaller) (worker.Worker, error) { return New(config.LogSource, logsender.NewAPI(apiCaller)), nil }
func (s *workerSuite) logSenderAPI() *apilogsender.API { return apilogsender.NewAPI(s.APIState) }