mirror of https://github.com/docker/docs.git
fix package name
This commit is contained in:
parent
323cab0581
commit
0f507fb783
|
@ -1,3 +1,3 @@
|
||||||
FROM golang:onbuild
|
FROM golang:onbuild
|
||||||
EXPOSE 4243
|
EXPOSE 4243
|
||||||
ENTRYPOINT libcluster
|
ENTRYPOINT ["swarm"]
|
|
@ -13,14 +13,14 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
log "github.com/Sirupsen/logrus"
|
log "github.com/Sirupsen/logrus"
|
||||||
"github.com/docker/libcluster/scheduler"
|
"github.com/docker/swarm/cluster"
|
||||||
"github.com/docker/libcluster/swarm"
|
"github.com/docker/swarm/scheduler"
|
||||||
"github.com/gorilla/mux"
|
"github.com/gorilla/mux"
|
||||||
"github.com/samalba/dockerclient"
|
"github.com/samalba/dockerclient"
|
||||||
)
|
)
|
||||||
|
|
||||||
type context struct {
|
type context struct {
|
||||||
cluster *swarm.Cluster
|
cluster *cluster.Cluster
|
||||||
scheduler *scheduler.Scheduler
|
scheduler *scheduler.Scheduler
|
||||||
eventsHandler *eventsHandler
|
eventsHandler *eventsHandler
|
||||||
debug bool
|
debug bool
|
||||||
|
@ -316,7 +316,7 @@ func createRouter(c *context, enableCors bool) (*mux.Router, error) {
|
||||||
return r, nil
|
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{
|
context := &context{
|
||||||
cluster: c,
|
cluster: c,
|
||||||
scheduler: s,
|
scheduler: s,
|
||||||
|
|
|
@ -6,7 +6,7 @@ import (
|
||||||
"net/http"
|
"net/http"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"github.com/docker/libcluster/swarm"
|
"github.com/docker/swarm/cluster"
|
||||||
)
|
)
|
||||||
|
|
||||||
type eventsHandler struct {
|
type eventsHandler struct {
|
||||||
|
@ -15,7 +15,7 @@ type eventsHandler struct {
|
||||||
cs map[string]chan struct{}
|
cs map[string]chan struct{}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (eh *eventsHandler) Handle(e *swarm.Event) error {
|
func (eh *eventsHandler) Handle(e *cluster.Event) error {
|
||||||
eh.RLock()
|
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())
|
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())
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package swarm
|
package cluster
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
|
@ -1,4 +1,4 @@
|
||||||
package swarm
|
package cluster
|
||||||
|
|
||||||
import "github.com/samalba/dockerclient"
|
import "github.com/samalba/dockerclient"
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package swarm
|
package cluster
|
||||||
|
|
||||||
import "time"
|
import "time"
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package swarm
|
package cluster
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"crypto/tls"
|
"crypto/tls"
|
|
@ -1,4 +1,4 @@
|
||||||
package swarm
|
package cluster
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
2
join.go
2
join.go
|
@ -5,7 +5,7 @@ import (
|
||||||
|
|
||||||
log "github.com/Sirupsen/logrus"
|
log "github.com/Sirupsen/logrus"
|
||||||
"github.com/codegangsta/cli"
|
"github.com/codegangsta/cli"
|
||||||
"github.com/docker/libcluster/discovery"
|
"github.com/docker/swarm/discovery"
|
||||||
)
|
)
|
||||||
|
|
||||||
func join(c *cli.Context) {
|
func join(c *cli.Context) {
|
||||||
|
|
6
main.go
6
main.go
|
@ -7,14 +7,14 @@ import (
|
||||||
|
|
||||||
log "github.com/Sirupsen/logrus"
|
log "github.com/Sirupsen/logrus"
|
||||||
"github.com/codegangsta/cli"
|
"github.com/codegangsta/cli"
|
||||||
"github.com/docker/libcluster/discovery"
|
"github.com/docker/swarm/cluster"
|
||||||
"github.com/docker/libcluster/swarm"
|
"github.com/docker/swarm/discovery"
|
||||||
)
|
)
|
||||||
|
|
||||||
type logHandler struct {
|
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)
|
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
|
return nil
|
||||||
}
|
}
|
||||||
|
|
22
manage.go
22
manage.go
|
@ -5,24 +5,24 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/codegangsta/cli"
|
"github.com/codegangsta/cli"
|
||||||
"github.com/docker/libcluster/api"
|
"github.com/docker/swarm/api"
|
||||||
"github.com/docker/libcluster/discovery"
|
"github.com/docker/swarm/cluster"
|
||||||
"github.com/docker/libcluster/scheduler"
|
"github.com/docker/swarm/discovery"
|
||||||
"github.com/docker/libcluster/scheduler/filter"
|
"github.com/docker/swarm/scheduler"
|
||||||
"github.com/docker/libcluster/scheduler/strategy"
|
"github.com/docker/swarm/scheduler/filter"
|
||||||
"github.com/docker/libcluster/swarm"
|
"github.com/docker/swarm/scheduler/strategy"
|
||||||
)
|
)
|
||||||
|
|
||||||
func manage(c *cli.Context) {
|
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 {
|
for _, addr := range nodes {
|
||||||
if cluster.Node(addr) == nil {
|
if c.Node(addr) == nil {
|
||||||
n := swarm.NewNode(addr, addr)
|
n := cluster.NewNode(addr, addr)
|
||||||
if err := n.Connect(nil); err != nil {
|
if err := n.Connect(nil); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := cluster.AddNode(n); err != nil {
|
if err := c.AddNode(n); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,7 @@ func manage(c *cli.Context) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
cluster := swarm.NewCluster()
|
cluster := cluster.NewCluster()
|
||||||
cluster.Events(&logHandler{})
|
cluster.Events(&logHandler{})
|
||||||
|
|
||||||
if c.String("token") != "" {
|
if c.String("token") != "" {
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
package filter
|
package filter
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/docker/libcluster/swarm"
|
"github.com/docker/swarm/cluster"
|
||||||
"github.com/samalba/dockerclient"
|
"github.com/samalba/dockerclient"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Filter interface {
|
type Filter interface {
|
||||||
// Return a subset of nodes that were accepted by the filtering policy.
|
// 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.
|
// 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
|
var err error
|
||||||
|
|
||||||
for _, filter := range filters {
|
for _, filter := range filters {
|
||||||
|
|
|
@ -4,21 +4,21 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"github.com/docker/libcluster/scheduler/filter"
|
"github.com/docker/swarm/cluster"
|
||||||
"github.com/docker/libcluster/scheduler/strategy"
|
"github.com/docker/swarm/scheduler/filter"
|
||||||
"github.com/docker/libcluster/swarm"
|
"github.com/docker/swarm/scheduler/strategy"
|
||||||
"github.com/samalba/dockerclient"
|
"github.com/samalba/dockerclient"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Scheduler struct {
|
type Scheduler struct {
|
||||||
sync.Mutex
|
sync.Mutex
|
||||||
|
|
||||||
cluster *swarm.Cluster
|
cluster *cluster.Cluster
|
||||||
strategy strategy.PlacementStrategy
|
strategy strategy.PlacementStrategy
|
||||||
filters []filter.Filter
|
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{
|
return &Scheduler{
|
||||||
cluster: cluster,
|
cluster: cluster,
|
||||||
strategy: strategy,
|
strategy: strategy,
|
||||||
|
@ -27,8 +27,8 @@ func NewScheduler(cluster *swarm.Cluster, strategy strategy.PlacementStrategy, f
|
||||||
}
|
}
|
||||||
|
|
||||||
// Find a nice home for our container.
|
// Find a nice home for our container.
|
||||||
func (s *Scheduler) selectNodeForContainer(config *dockerclient.ContainerConfig) (*swarm.Node, error) {
|
func (s *Scheduler) selectNodeForContainer(config *dockerclient.ContainerConfig) (*cluster.Node, error) {
|
||||||
candidates := []*swarm.Node{}
|
candidates := []*cluster.Node{}
|
||||||
for _, node := range s.cluster.Nodes() {
|
for _, node := range s.cluster.Nodes() {
|
||||||
candidates = append(candidates, node)
|
candidates = append(candidates, node)
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,7 @@ func (s *Scheduler) selectNodeForContainer(config *dockerclient.ContainerConfig)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Schedule a brand new container into the cluster.
|
// 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()
|
s.Lock()
|
||||||
defer s.Unlock()
|
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
|
// Remove a container from the cluster. Containers should always be destroyed
|
||||||
// through the scheduler to guarantee atomicity.
|
// 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()
|
s.Lock()
|
||||||
defer s.Unlock()
|
defer s.Unlock()
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ import (
|
||||||
"errors"
|
"errors"
|
||||||
"sort"
|
"sort"
|
||||||
|
|
||||||
"github.com/docker/libcluster/swarm"
|
"github.com/docker/swarm/cluster"
|
||||||
"github.com/samalba/dockerclient"
|
"github.com/samalba/dockerclient"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ var (
|
||||||
type BinPackingPlacementStrategy struct {
|
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{}
|
scores := scores{}
|
||||||
|
|
||||||
for _, node := range nodes {
|
for _, node := range nodes {
|
||||||
|
@ -50,7 +50,7 @@ func (p *BinPackingPlacementStrategy) PlaceContainer(config *dockerclient.Contai
|
||||||
}
|
}
|
||||||
|
|
||||||
type score struct {
|
type score struct {
|
||||||
node *swarm.Node
|
node *cluster.Node
|
||||||
score float64
|
score float64
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ import (
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/docker/libcluster/swarm"
|
"github.com/docker/swarm/cluster"
|
||||||
"github.com/samalba/dockerclient"
|
"github.com/samalba/dockerclient"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ func init() {
|
||||||
type RandomPlacementStrategy struct {
|
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))
|
n := rand.Intn(len(nodes))
|
||||||
for i, node := range nodes {
|
for i, node := range nodes {
|
||||||
if i == n {
|
if i == n {
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
package strategy
|
package strategy
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/docker/libcluster/swarm"
|
"github.com/docker/swarm/cluster"
|
||||||
"github.com/samalba/dockerclient"
|
"github.com/samalba/dockerclient"
|
||||||
)
|
)
|
||||||
|
|
||||||
type PlacementStrategy interface {
|
type PlacementStrategy interface {
|
||||||
// Given a container configuration and a set of nodes, select the target
|
// Given a container configuration and a set of nodes, select the target
|
||||||
// node where the container should be scheduled.
|
// 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)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue