func New(cfg config.Config) (*Server, error) { mach, err := newMachineFromConfig(cfg) if err != nil { return nil, err } mgr, err := systemd.NewSystemdUnitManager(systemd.DefaultUnitsDirectory) if err != nil { return nil, err } eClient, err := etcd.NewClient(cfg.EtcdServers, http.Transport{}) if err != nil { return nil, err } reg := registry.New(eClient, cfg.EtcdKeyPrefix) a, err := newAgentFromConfig(mach, reg, cfg, mgr) if err != nil { return nil, err } e := engine.New(reg, mach) sStream := systemd.NewEventStream(mgr) rStream, err := registry.NewEventStream(eClient, reg) if err != nil { return nil, err } aHandler := agent.NewEventHandler(a) eHandler := engine.NewEventHandler(e) eBus := event.NewEventBus() eBus.AddListener("engine", eHandler) eBus.AddListener("agent", aHandler) listeners, err := activation.Listeners(false) if err != nil { return nil, err } mux := api.NewServeMux(reg) for _, f := range listeners { go http.Serve(f, mux) } return &Server{a, e, rStream, sStream, eBus, mach, nil}, nil }
func New(cfg config.Config) (*Server, error) { mach, err := newMachineFromConfig(cfg) if err != nil { return nil, err } mgr, err := systemd.NewSystemdUnitManager(systemd.DefaultUnitsDirectory) if err != nil { return nil, err } eClient := etcd.NewClient(cfg.EtcdServers) reg := registry.New(eClient, cfg.EtcdKeyPrefix) a, err := newAgentFromConfig(mach, reg, cfg, mgr) if err != nil { return nil, err } e := engine.New(reg, mach) sStream := systemd.NewEventStream(mgr) rStream, err := registry.NewEventStream(eClient, reg) if err != nil { return nil, err } aHandler := agent.NewEventHandler(a) eHandler := engine.NewEventHandler(e) eBus := event.NewEventBus() eBus.AddListener("engine", eHandler) eBus.AddListener("agent", aHandler) return &Server{a, e, rStream, sStream, eBus, mach, nil}, nil }
func New(cfg config.Config) (*Server, error) { mach, err := newMachineFromConfig(cfg) if err != nil { return nil, err } mgr, err := systemd.NewSystemdUnitManager(systemd.DefaultUnitsDirectory) if err != nil { return nil, err } a, err := newAgentFromConfig(mach, cfg, mgr) if err != nil { return nil, err } e, err := newEngineFromConfig(mach, cfg) if err != nil { return nil, err } sStream := systemd.NewEventStream(mgr) rStream, err := newRegistryEventStreamFromConfig(cfg) if err != nil { return nil, err } aHandler := agent.NewEventHandler(a) eHandler := engine.NewEventHandler(e) eBus := event.NewEventBus() eBus.AddListener("engine", eHandler) eBus.AddListener("agent", aHandler) return &Server{a, e, rStream, sStream, eBus, mach, nil}, nil }