From fa8a06685bfca31b29b43a402ae2dffce64c033a Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Mon, 16 Feb 2015 15:18:50 -0800 Subject: [PATCH] remove events from the cluster interface Signed-off-by: Victor Vieux --- api/server.go | 5 ++--- cluster/cluster.go | 1 - cluster/mesos/mesos.go | 4 ---- cluster/options.go | 1 + cluster/swarm/swarm.go | 6 ++---- manage.go | 4 +++- 6 files changed, 8 insertions(+), 13 deletions(-) diff --git a/api/server.go b/api/server.go index e3ea4e4b22..7c710decba 100644 --- a/api/server.go +++ b/api/server.go @@ -28,13 +28,12 @@ func newListener(proto, addr string, tlsConfig *tls.Config) (net.Listener, error return l, nil } -func ListenAndServe(c cluster.Cluster, hosts []string, enableCors bool, tlsConfig *tls.Config) error { +func ListenAndServe(c cluster.Cluster, hosts []string, enableCors bool, tlsConfig *tls.Config, eventsHandler *eventsHandler) error { context := &context{ cluster: c, - eventsHandler: NewEventsHandler(), + eventsHandler: eventsHandler, tlsConfig: tlsConfig, } - c.Events(context.eventsHandler) r := createRouter(context, enableCors) chErrors := make(chan error, len(hosts)) diff --git a/cluster/cluster.go b/cluster/cluster.go index b9fc5df0e8..e7585c0f5a 100644 --- a/cluster/cluster.go +++ b/cluster/cluster.go @@ -6,7 +6,6 @@ type Cluster interface { CreateContainer(config *dockerclient.ContainerConfig, name string) (*Container, error) RemoveContainer(container *Container, force bool) error - Events(eventsHandler EventHandler) Nodes() []*Node Containers() []*Container Container(IdOrName string) *Container diff --git a/cluster/mesos/mesos.go b/cluster/mesos/mesos.go index d840f4a9a6..9560393461 100644 --- a/cluster/mesos/mesos.go +++ b/cluster/mesos/mesos.go @@ -59,10 +59,6 @@ func (s *MesosCluster) RemoveContainer(container *cluster.Container, force bool) return ErrNotImplemented } -func (s *MesosCluster) Events(eventsHandler cluster.EventHandler) { - s.nodes.Events(eventsHandler) -} - func (s *MesosCluster) Nodes() []*cluster.Node { return s.nodes.List() } diff --git a/cluster/options.go b/cluster/options.go index 59a8147266..a762ff8fb9 100644 --- a/cluster/options.go +++ b/cluster/options.go @@ -7,4 +7,5 @@ type Options struct { OvercommitRatio float64 Discovery string Heartbeat int + EventsHandler EventHandler } diff --git a/cluster/swarm/swarm.go b/cluster/swarm/swarm.go index ab66174e25..cdd2422edf 100644 --- a/cluster/swarm/swarm.go +++ b/cluster/swarm/swarm.go @@ -30,6 +30,8 @@ func NewCluster(scheduler *scheduler.Scheduler, store *state.Store, options *clu store: store, } + cluster.nodes.Events(options.EventsHandler) + // get the list of entries from the discovery service go func() { d, err := discovery.New(options.Discovery, options.Heartbeat) @@ -113,10 +115,6 @@ func (s *SwarmCluster) newEntries(entries []*discovery.Entry) { } } -func (s *SwarmCluster) Events(eventsHandler cluster.EventHandler) { - s.nodes.Events(eventsHandler) -} - func (s *SwarmCluster) Nodes() []*cluster.Node { return s.nodes.List() } diff --git a/manage.go b/manage.go index fab7ce388d..eabdd91ff9 100644 --- a/manage.go +++ b/manage.go @@ -120,11 +120,13 @@ func manage(c *cli.Context) { sched := scheduler.New(s, fs) + eventsHandler := api.NewEventsHandler() options := &cluster.Options{ TLSConfig: tlsConfig, OvercommitRatio: c.Float64("overcommit"), Discovery: dflag, Heartbeat: c.Int("heartbeat"), + EventsHandler: eventsHandler, } var cluster cluster.Cluster @@ -143,5 +145,5 @@ func manage(c *cli.Context) { if c.IsSet("host") || c.IsSet("H") { hosts = hosts[1:] } - log.Fatal(api.ListenAndServe(cluster, hosts, c.Bool("cors"), tlsConfig)) + log.Fatal(api.ListenAndServe(cluster, hosts, c.Bool("cors"), tlsConfig, eventsHandler)) }