Exemple #1
0
//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
}