github.com/Pankov404/juju@v0.0.0-20150703034450-be266991dceb/worker/logger/manifold.go (about)

     1  // Copyright 2015 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package logger
     5  
     6  import (
     7  	"github.com/juju/juju/api/base"
     8  	"github.com/juju/juju/api/logger"
     9  	"github.com/juju/juju/worker"
    10  	"github.com/juju/juju/worker/agent"
    11  	"github.com/juju/juju/worker/dependency"
    12  	"github.com/juju/juju/worker/util"
    13  )
    14  
    15  // ManifoldConfig defines the names of the manifolds on which a
    16  // Manifold will depend.
    17  type ManifoldConfig util.AgentApiManifoldConfig
    18  
    19  // Manifold returns a dependency manifold that runs a logger
    20  // worker, using the resource names defined in the supplied config.
    21  func Manifold(config ManifoldConfig) dependency.Manifold {
    22  	return util.AgentApiManifold(util.AgentApiManifoldConfig(config), newWorker)
    23  }
    24  
    25  // newWorker trivially wraps NewLogger to specialise an AgentApiManifold.
    26  var newWorker = func(agent agent.Agent, apiCaller base.APICaller) (worker.Worker, error) {
    27  	currentConfig := agent.CurrentConfig()
    28  	loggerFacade := logger.NewState(apiCaller)
    29  	return NewLogger(loggerFacade, currentConfig), nil
    30  }