//func composeEventHub(cfg *config.Config, serfAgent *agent.Agent) (*EventHub, error) { func composeEventHub(cfg *config.Config, serfAgent *agent.Agent) (agent.EventHandler, error) { log.Info("composing new sentinel %#v", cfg) log.Info("setting up sentinel adapter: %s", cfg.Adapter.Plugin) adapterCreator, ok := adapters.Plugins[cfg.Adapter.Plugin] if !ok { return nil, fmt.Errorf("invalid adapter: %s", cfg.Adapter.Plugin) } adapter_, err := adapterCreator(cfg.Adapter.Opts) if err != nil { return nil, err } // setting up common actuator log.Info("setting up sentinel actuator: %s", cfg.Actuator.Plugin) actuatorCreator, ok := actuators.Plugins[cfg.Actuator.Plugin] if !ok { return nil, fmt.Errorf("invalid actuator: %s", cfg.Actuator.Plugin) } actuator_, err := actuatorCreator(adapter_, cfg.Actuator.Opts) if err != nil { return nil, err } return EventHub{ Actuator: actuator_, Self: serfAgent.Serf().LocalMember(), Filters: cfg.Heartbeat.Filters, }, nil }