diff --git a/Dockerfile b/Dockerfile index 0b98e13c5a..202a710e45 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,3 +1,3 @@ FROM golang:onbuild EXPOSE 4243 -ENTRYPOINT libcluster \ No newline at end of file +ENTRYPOINT ["swarm"] \ No newline at end of file diff --git a/api/api.go b/api/api.go index b679ed9548..9b01c3ad9a 100644 --- a/api/api.go +++ b/api/api.go @@ -13,14 +13,14 @@ import ( "strings" log "github.com/Sirupsen/logrus" - "github.com/docker/libcluster/scheduler" - "github.com/docker/libcluster/swarm" + "github.com/docker/swarm/cluster" + "github.com/docker/swarm/scheduler" "github.com/gorilla/mux" "github.com/samalba/dockerclient" ) type context struct { - cluster *swarm.Cluster + cluster *cluster.Cluster scheduler *scheduler.Scheduler eventsHandler *eventsHandler debug bool @@ -316,7 +316,7 @@ func createRouter(c *context, enableCors bool) (*mux.Router, error) { return r, nil } -func ListenAndServe(c *swarm.Cluster, s *scheduler.Scheduler, addr string) error { +func ListenAndServe(c *cluster.Cluster, s *scheduler.Scheduler, addr string) error { context := &context{ cluster: c, scheduler: s, diff --git a/api/events.go b/api/events.go index c4ddc8e884..7fe583c17f 100644 --- a/api/events.go +++ b/api/events.go @@ -6,7 +6,7 @@ import ( "net/http" "sync" - "github.com/docker/libcluster/swarm" + "github.com/docker/swarm/cluster" ) type eventsHandler struct { @@ -15,7 +15,7 @@ type eventsHandler struct { cs map[string]chan struct{} } -func (eh *eventsHandler) Handle(e *swarm.Event) error { +func (eh *eventsHandler) Handle(e *cluster.Event) error { eh.RLock() str := fmt.Sprintf("{%q:%q,%q:%q,%q:%q,%q:%d}", "status", e.Type, "id", e.Container.Id, "from", e.Container.Image+" node:"+e.Node.ID, "time", e.Time.Unix()) diff --git a/swarm/cluster.go b/cluster/cluster.go similarity index 99% rename from swarm/cluster.go rename to cluster/cluster.go index 6e9ea1dc35..b0a0592ec4 100644 --- a/swarm/cluster.go +++ b/cluster/cluster.go @@ -1,4 +1,4 @@ -package swarm +package cluster import ( "errors" diff --git a/swarm/container.go b/cluster/container.go similarity index 97% rename from swarm/container.go rename to cluster/container.go index 75a40d22d0..6348070c47 100644 --- a/swarm/container.go +++ b/cluster/container.go @@ -1,4 +1,4 @@ -package swarm +package cluster import "github.com/samalba/dockerclient" diff --git a/swarm/event.go b/cluster/event.go similarity index 91% rename from swarm/event.go rename to cluster/event.go index 2d95169d0e..7414604031 100644 --- a/swarm/event.go +++ b/cluster/event.go @@ -1,4 +1,4 @@ -package swarm +package cluster import "time" diff --git a/swarm/node.go b/cluster/node.go similarity index 99% rename from swarm/node.go rename to cluster/node.go index 22f6b58cb5..b1c2a44cf2 100644 --- a/swarm/node.go +++ b/cluster/node.go @@ -1,4 +1,4 @@ -package swarm +package cluster import ( "crypto/tls" diff --git a/swarm/node_test.go b/cluster/node_test.go similarity index 99% rename from swarm/node_test.go rename to cluster/node_test.go index d7f941fd95..5b25268d4e 100644 --- a/swarm/node_test.go +++ b/cluster/node_test.go @@ -1,4 +1,4 @@ -package swarm +package cluster import ( "errors" diff --git a/join.go b/join.go index 54d70e39a1..b0417f14d8 100644 --- a/join.go +++ b/join.go @@ -5,7 +5,7 @@ import ( log "github.com/Sirupsen/logrus" "github.com/codegangsta/cli" - "github.com/docker/libcluster/discovery" + "github.com/docker/swarm/discovery" ) func join(c *cli.Context) { diff --git a/main.go b/main.go index cbf68e2155..45704b8869 100644 --- a/main.go +++ b/main.go @@ -7,14 +7,14 @@ import ( log "github.com/Sirupsen/logrus" "github.com/codegangsta/cli" - "github.com/docker/libcluster/discovery" - "github.com/docker/libcluster/swarm" + "github.com/docker/swarm/cluster" + "github.com/docker/swarm/discovery" ) type logHandler struct { } -func (h *logHandler) Handle(e *swarm.Event) error { +func (h *logHandler) Handle(e *cluster.Event) error { log.Printf("event -> type: %q time: %q image: %q container: %q", e.Type, e.Time.Format(time.RubyDate), e.Container.Image, e.Container.Id) return nil } diff --git a/manage.go b/manage.go index 0271421d9e..f3fbc8ec6e 100644 --- a/manage.go +++ b/manage.go @@ -5,24 +5,24 @@ import ( "time" "github.com/codegangsta/cli" - "github.com/docker/libcluster/api" - "github.com/docker/libcluster/discovery" - "github.com/docker/libcluster/scheduler" - "github.com/docker/libcluster/scheduler/filter" - "github.com/docker/libcluster/scheduler/strategy" - "github.com/docker/libcluster/swarm" + "github.com/docker/swarm/api" + "github.com/docker/swarm/cluster" + "github.com/docker/swarm/discovery" + "github.com/docker/swarm/scheduler" + "github.com/docker/swarm/scheduler/filter" + "github.com/docker/swarm/scheduler/strategy" ) func manage(c *cli.Context) { - refresh := func(cluster *swarm.Cluster, nodes []string) error { + refresh := func(c *cluster.Cluster, nodes []string) error { for _, addr := range nodes { - if cluster.Node(addr) == nil { - n := swarm.NewNode(addr, addr) + if c.Node(addr) == nil { + n := cluster.NewNode(addr, addr) if err := n.Connect(nil); err != nil { return err } - if err := cluster.AddNode(n); err != nil { + if err := c.AddNode(n); err != nil { return err } } @@ -30,7 +30,7 @@ func manage(c *cli.Context) { return nil } - cluster := swarm.NewCluster() + cluster := cluster.NewCluster() cluster.Events(&logHandler{}) if c.String("token") != "" { diff --git a/scheduler/filter/filter.go b/scheduler/filter/filter.go index 411df0cabf..c995b7cdf7 100644 --- a/scheduler/filter/filter.go +++ b/scheduler/filter/filter.go @@ -1,17 +1,17 @@ package filter import ( - "github.com/docker/libcluster/swarm" + "github.com/docker/swarm/cluster" "github.com/samalba/dockerclient" ) type Filter interface { // Return a subset of nodes that were accepted by the filtering policy. - Filter(*dockerclient.ContainerConfig, []*swarm.Node) ([]*swarm.Node, error) + Filter(*dockerclient.ContainerConfig, []*cluster.Node) ([]*cluster.Node, error) } // Apply a set of filters in batch. -func ApplyFilters(filters []Filter, config *dockerclient.ContainerConfig, nodes []*swarm.Node) ([]*swarm.Node, error) { +func ApplyFilters(filters []Filter, config *dockerclient.ContainerConfig, nodes []*cluster.Node) ([]*cluster.Node, error) { var err error for _, filter := range filters { diff --git a/scheduler/scheduler.go b/scheduler/scheduler.go index 910ef8baef..471112a02e 100644 --- a/scheduler/scheduler.go +++ b/scheduler/scheduler.go @@ -4,21 +4,21 @@ import ( "fmt" "sync" - "github.com/docker/libcluster/scheduler/filter" - "github.com/docker/libcluster/scheduler/strategy" - "github.com/docker/libcluster/swarm" + "github.com/docker/swarm/cluster" + "github.com/docker/swarm/scheduler/filter" + "github.com/docker/swarm/scheduler/strategy" "github.com/samalba/dockerclient" ) type Scheduler struct { sync.Mutex - cluster *swarm.Cluster + cluster *cluster.Cluster strategy strategy.PlacementStrategy filters []filter.Filter } -func NewScheduler(cluster *swarm.Cluster, strategy strategy.PlacementStrategy, filters []filter.Filter) *Scheduler { +func NewScheduler(cluster *cluster.Cluster, strategy strategy.PlacementStrategy, filters []filter.Filter) *Scheduler { return &Scheduler{ cluster: cluster, strategy: strategy, @@ -27,8 +27,8 @@ func NewScheduler(cluster *swarm.Cluster, strategy strategy.PlacementStrategy, f } // Find a nice home for our container. -func (s *Scheduler) selectNodeForContainer(config *dockerclient.ContainerConfig) (*swarm.Node, error) { - candidates := []*swarm.Node{} +func (s *Scheduler) selectNodeForContainer(config *dockerclient.ContainerConfig) (*cluster.Node, error) { + candidates := []*cluster.Node{} for _, node := range s.cluster.Nodes() { candidates = append(candidates, node) } @@ -42,7 +42,7 @@ func (s *Scheduler) selectNodeForContainer(config *dockerclient.ContainerConfig) } // Schedule a brand new container into the cluster. -func (s *Scheduler) CreateContainer(config *dockerclient.ContainerConfig, name string) (*swarm.Container, error) { +func (s *Scheduler) CreateContainer(config *dockerclient.ContainerConfig, name string) (*cluster.Container, error) { s.Lock() defer s.Unlock() @@ -59,7 +59,7 @@ func (s *Scheduler) CreateContainer(config *dockerclient.ContainerConfig, name s // Remove a container from the cluster. Containers should always be destroyed // through the scheduler to guarantee atomicity. -func (s *Scheduler) RemoveContainer(container *swarm.Container, force bool) error { +func (s *Scheduler) RemoveContainer(container *cluster.Container, force bool) error { s.Lock() defer s.Unlock() diff --git a/scheduler/strategy/binpacking.go b/scheduler/strategy/binpacking.go index fbfd480adb..d6e1bfd25f 100644 --- a/scheduler/strategy/binpacking.go +++ b/scheduler/strategy/binpacking.go @@ -4,7 +4,7 @@ import ( "errors" "sort" - "github.com/docker/libcluster/swarm" + "github.com/docker/swarm/cluster" "github.com/samalba/dockerclient" ) @@ -15,7 +15,7 @@ var ( type BinPackingPlacementStrategy struct { } -func (p *BinPackingPlacementStrategy) PlaceContainer(config *dockerclient.ContainerConfig, nodes []*swarm.Node) (*swarm.Node, error) { +func (p *BinPackingPlacementStrategy) PlaceContainer(config *dockerclient.ContainerConfig, nodes []*cluster.Node) (*cluster.Node, error) { scores := scores{} for _, node := range nodes { @@ -50,7 +50,7 @@ func (p *BinPackingPlacementStrategy) PlaceContainer(config *dockerclient.Contai } type score struct { - node *swarm.Node + node *cluster.Node score float64 } diff --git a/scheduler/strategy/random.go b/scheduler/strategy/random.go index 56986d8dfd..ea44bc39d1 100644 --- a/scheduler/strategy/random.go +++ b/scheduler/strategy/random.go @@ -5,7 +5,7 @@ import ( "math/rand" "time" - "github.com/docker/libcluster/swarm" + "github.com/docker/swarm/cluster" "github.com/samalba/dockerclient" ) @@ -17,7 +17,7 @@ func init() { type RandomPlacementStrategy struct { } -func (p *RandomPlacementStrategy) PlaceContainer(config *dockerclient.ContainerConfig, nodes []*swarm.Node) (*swarm.Node, error) { +func (p *RandomPlacementStrategy) PlaceContainer(config *dockerclient.ContainerConfig, nodes []*cluster.Node) (*cluster.Node, error) { n := rand.Intn(len(nodes)) for i, node := range nodes { if i == n { diff --git a/scheduler/strategy/strategy.go b/scheduler/strategy/strategy.go index bd2a6b9849..fc1459be47 100644 --- a/scheduler/strategy/strategy.go +++ b/scheduler/strategy/strategy.go @@ -1,12 +1,12 @@ package strategy import ( - "github.com/docker/libcluster/swarm" + "github.com/docker/swarm/cluster" "github.com/samalba/dockerclient" ) type PlacementStrategy interface { // Given a container configuration and a set of nodes, select the target // node where the container should be scheduled. - PlaceContainer(config *dockerclient.ContainerConfig, nodes []*swarm.Node) (*swarm.Node, error) + PlaceContainer(config *dockerclient.ContainerConfig, nodes []*cluster.Node) (*cluster.Node, error) }