本文整理汇总了Golang中github.com/globocom/docker-cluster/cluster.New函数的典型用法代码示例。如果您正苦于以下问题:Golang New函数的具体用法?Golang New怎么用?Golang New使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了New函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: dockerCluster
func dockerCluster() *cluster.Cluster {
cmutex.Lock()
defer cmutex.Unlock()
if dCluster == nil {
if segregate, _ := config.GetBool("docker:segregate"); segregate {
dCluster, _ = cluster.New(segScheduler)
} else {
clusterNodes = make(map[string]string)
servers, _ := config.GetList("docker:servers")
if len(servers) < 1 {
log.Fatal(`Tsuru is misconfigured. Setting "docker:servers" is mandatory`)
}
nodes := make([]cluster.Node, len(servers))
for index, server := range servers {
id := fmt.Sprintf("server%d", index)
node := cluster.Node{
ID: id,
Address: server,
}
nodes[index] = node
clusterNodes[id] = server
}
dCluster, _ = cluster.New(nil, nodes...)
}
if redisServer, err := config.GetString("docker:scheduler:redis-server"); err == nil {
prefix, _ := config.GetString("docker:scheduler:redis-prefix")
if password, err := config.GetString("docker:scheduler:redis-password"); err == nil {
dCluster.SetStorage(storage.AuthenticatedRedis(redisServer, password, prefix))
} else {
dCluster.SetStorage(storage.Redis(redisServer, prefix))
}
}
}
return dCluster
}
开发者ID:prodigeni,项目名称:tsuru,代码行数:35,代码来源:docker.go
示例2: TestPushImage
func (s *S) TestPushImage(c *gocheck.C) {
var request *http.Request
server, err := dtesting.NewServer(func(r *http.Request) {
request = r
})
c.Assert(err, gocheck.IsNil)
defer server.Stop()
config.Set("docker:registry", "localhost:3030")
defer config.Unset("docker:registry")
var storage mapStorage
storage.StoreImage("localhost:3030/base", "server0")
cmutex.Lock()
oldDockerCluster := dCluster
dCluster, _ = cluster.New(nil, &storage,
cluster.Node{ID: "server0", Address: server.URL()})
cmutex.Unlock()
defer func() {
cmutex.Lock()
defer cmutex.Unlock()
dCluster = oldDockerCluster
}()
err = newImage("localhost:3030/base", "http://index.docker.io")
c.Assert(err, gocheck.IsNil)
err = pushImage("localhost:3030/base")
c.Assert(err, gocheck.IsNil)
c.Assert(request.URL.Path, gocheck.Matches, ".*/images/localhost:3030/base/push$")
}
开发者ID:richardsonlima,项目名称:tsuru,代码行数:27,代码来源:docker_test.go
示例3: TestReplicateImage
func (s *S) TestReplicateImage(c *gocheck.C) {
var request *http.Request
var requests int32
server, err := dtesting.NewServer(func(r *http.Request) {
v := atomic.AddInt32(&requests, 1)
if v == 2 {
request = r
}
})
c.Assert(err, gocheck.IsNil)
defer server.Stop()
config.Set("docker:registry", "localhost:3030")
defer config.Unset("docker:registry")
cmutex.Lock()
oldDockerCluster := dCluster
dCluster, _ = cluster.New(nil, storage.Redis("localhost:6379", "tests"), cluster.Node{ID: "server0", Address: server.URL()})
cmutex.Unlock()
defer func() {
cmutex.Lock()
defer cmutex.Unlock()
dCluster = oldDockerCluster
}()
err = newImage("localhost:3030/base", "http://index.docker.io")
c.Assert(err, gocheck.IsNil)
cleanup := insertImage("localhost:3030/base", "server0", c)
defer cleanup()
err = replicateImage("localhost:3030/base")
c.Assert(err, gocheck.IsNil)
c.Assert(atomic.LoadInt32(&requests), gocheck.Equals, int32(3))
c.Assert(request.URL.Path, gocheck.Matches, ".*/images/localhost:3030/base/push$")
}
开发者ID:karlpilkington,项目名称:golang-devops-stuff,代码行数:31,代码来源:docker_test.go
示例4: TestContainerHostPortNotFound
func (s *S) TestContainerHostPortNotFound(c *gocheck.C) {
inspectOut := `{
"NetworkSettings": {
"IpAddress": "10.10.10.10",
"IpPrefixLen": 8,
"Gateway": "10.65.41.1",
"PortMapping": {
"8889": "59322"
}
}
}`
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if strings.Contains(r.URL.Path, "/containers/") {
w.Write([]byte(inspectOut))
}
}))
defer server.Close()
oldCluster := dockerCluster()
var err error
dCluster, err = cluster.New(
cluster.Node{ID: "server", Address: server.URL},
)
c.Assert(err, gocheck.IsNil)
defer func() {
dCluster = oldCluster
}()
container := container{ID: "c-01", Port: "8888"}
port, err := container.hostPort()
c.Assert(port, gocheck.Equals, "")
c.Assert(err, gocheck.NotNil)
c.Assert(err.Error(), gocheck.Equals, "Container port 8888 is not mapped to any host port")
}
开发者ID:paulopatto,项目名称:tsuru,代码行数:32,代码来源:docker_test.go
示例5: SetUpSuite
func (s *S) SetUpSuite(c *gocheck.C) {
s.collName = "docker_unit"
s.imageCollName = "docker_image"
s.gitHost = "my.gandalf.com"
s.repoNamespace = "tsuru"
s.sshUser = "root"
config.Set("git:ro-host", s.gitHost)
config.Set("database:url", "127.0.0.1:27017")
config.Set("database:name", "docker_provision_tests_s")
config.Set("docker:repository-namespace", s.repoNamespace)
config.Set("docker:router", "fake")
config.Set("docker:collection", s.collName)
config.Set("docker:deploy-cmd", "/var/lib/tsuru/deploy")
config.Set("docker:run-cmd:bin", "/usr/local/bin/circusd /etc/circus/circus.ini")
config.Set("docker:run-cmd:port", "8888")
config.Set("docker:ssh:add-key-cmd", "/var/lib/tsuru/add-key")
config.Set("docker:ssh:user", s.sshUser)
config.Set("queue", "fake")
s.deployCmd = "/var/lib/tsuru/deploy"
s.runBin = "/usr/local/bin/circusd"
s.runArgs = "/etc/circus/circus.ini"
s.port = "8888"
fsystem = &ftesting.RecordingFs{}
f, err := fsystem.Create(os.ExpandEnv("${HOME}/.ssh/id_rsa.pub"))
c.Assert(err, gocheck.IsNil)
f.Write([]byte("key-content"))
f.Close()
s.server, err = dtesting.NewServer(nil)
c.Assert(err, gocheck.IsNil)
dCluster, _ = cluster.New(nil,
cluster.Node{ID: "server", Address: s.server.URL()},
)
}
开发者ID:nemx,项目名称:tsuru,代码行数:33,代码来源:suite_test.go
示例6: TestContainerNetworkInfoNotFound
func (s *S) TestContainerNetworkInfoNotFound(c *gocheck.C) {
inspectOut := `{
"NetworkSettings": {
"IpAddress": "10.10.10.10",
"IpPrefixLen": 8,
"Gateway": "10.65.41.1",
"Ports": {}
}
}`
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if strings.Contains(r.URL.Path, "/containers/") {
w.Write([]byte(inspectOut))
}
}))
defer server.Close()
oldCluster := dockerCluster()
var err error
dCluster, err = cluster.New(nil, storage.Redis("localhost:6379", "tests"),
cluster.Node{ID: "server", Address: server.URL},
)
c.Assert(err, gocheck.IsNil)
defer func() {
dCluster = oldCluster
removeClusterNodes([]string{"server"}, c)
}()
container := container{ID: "c-01"}
clean := createFakeContainers([]string{"c-01"}, c)
defer clean()
ip, port, err := container.networkInfo()
c.Assert(ip, gocheck.Equals, "")
c.Assert(port, gocheck.Equals, "")
c.Assert(err, gocheck.NotNil)
c.Assert(err.Error(), gocheck.Equals, "Container port 8888 is not mapped to any host port")
}
开发者ID:karlpilkington,项目名称:golang-devops-stuff,代码行数:34,代码来源:docker_test.go
示例7: SetUpTest
func (s *S) SetUpTest(c *gocheck.C) {
var err error
dCluster, err = cluster.New(nil, storage.Redis("localhost:6379", "tests"),
cluster.Node{ID: "server", Address: s.server.URL()},
)
c.Assert(err, gocheck.IsNil)
}
开发者ID:pdaniel,项目名称:tsuru,代码行数:7,代码来源:suite_test.go
示例8: TestReplicateImage
func (s *S) TestReplicateImage(c *gocheck.C) {
var requests int32
server, err := dtesting.NewServer(func(*http.Request) {
atomic.AddInt32(&requests, 1)
})
c.Assert(err, gocheck.IsNil)
defer server.Stop()
config.Set("docker:registry", "http://localhost:3030")
defer config.Unset("docker:registry")
cmutext.Lock()
oldDockerCluster := dCluster
dCluster, _ = cluster.New(cluster.Node{ID: "server0", Address: server.URL()})
cmutext.Unlock()
defer func() {
cmutext.Lock()
defer cmutext.Unlock()
dCluster = oldDockerCluster
}()
var buf bytes.Buffer
err = dCluster.PullImage(dockerClient.PullImageOptions{Repository: "base", Registry: "http://index.docker.io"}, &buf)
c.Assert(err, gocheck.IsNil)
err = replicateImage("base")
c.Assert(err, gocheck.IsNil)
c.Assert(atomic.LoadInt32(&requests), gocheck.Equals, int32(3))
}
开发者ID:paulopatto,项目名称:tsuru,代码行数:25,代码来源:docker_test.go
示例9: TestListContainersHandler
func (s *HandlersSuite) TestListContainersHandler(c *gocheck.C) {
var result []container
coll := collection()
dCluster, _ = cluster.New(segScheduler, nil)
err := coll.Insert(container{ID: "blabla", Type: "python", HostAddr: "http://cittavld1182.globoi.com"})
c.Assert(err, gocheck.IsNil)
defer coll.Remove(bson.M{"id": "blabla"})
err = coll.Insert(container{ID: "bleble", Type: "java", HostAddr: "http://cittavld1182.globoi.com"})
c.Assert(err, gocheck.IsNil)
defer coll.Remove(bson.M{"id": "bleble"})
req, err := http.NewRequest("GET", "/node/cittavld1182.globoi.com/containers?:address=http://cittavld1182.globoi.com", nil)
rec := httptest.NewRecorder()
err = listContainersHandler(rec, req, nil)
c.Assert(err, gocheck.IsNil)
body, err := ioutil.ReadAll(rec.Body)
c.Assert(err, gocheck.IsNil)
err = json.Unmarshal(body, &result)
c.Assert(err, gocheck.IsNil)
c.Assert(result[0].ID, gocheck.DeepEquals, "blabla")
c.Assert(result[0].Type, gocheck.DeepEquals, "python")
c.Assert(result[0].HostAddr, gocheck.DeepEquals, "http://cittavld1182.globoi.com")
c.Assert(result[1].ID, gocheck.DeepEquals, "bleble")
c.Assert(result[1].Type, gocheck.DeepEquals, "java")
c.Assert(result[1].HostAddr, gocheck.DeepEquals, "http://cittavld1182.globoi.com")
}
开发者ID:jayakumark,项目名称:tsuru,代码行数:25,代码来源:handlers_test.go
示例10: TestReplicateImageWithoutRegistryInTheImageName
func (s *S) TestReplicateImageWithoutRegistryInTheImageName(c *gocheck.C) {
var request *http.Request
var requests int32
server, err := dtesting.NewServer(func(r *http.Request) {
v := atomic.AddInt32(&requests, 1)
if v == 2 {
request = r
}
})
c.Assert(err, gocheck.IsNil)
defer server.Stop()
config.Set("docker:registry", "localhost:3030")
defer config.Unset("docker:registry")
cmutext.Lock()
oldDockerCluster := dCluster
dCluster, _ = cluster.New(nil, cluster.Node{ID: "server0", Address: server.URL()})
cmutext.Unlock()
defer func() {
cmutext.Lock()
defer cmutext.Unlock()
dCluster = oldDockerCluster
}()
var buf bytes.Buffer
opts := dockerClient.PullImageOptions{
Repository: "localhost:3030/base",
Registry: "http://index.docker.io",
}
err = dCluster.PullImage(opts, &buf)
c.Assert(err, gocheck.IsNil)
err = replicateImage("base")
c.Assert(err, gocheck.IsNil)
c.Assert(atomic.LoadInt32(&requests), gocheck.Equals, int32(3))
c.Assert(request.URL.Path, gocheck.Matches, ".*/images/localhost:3030/base/push$")
}
开发者ID:nemx,项目名称:tsuru,代码行数:34,代码来源:docker_test.go
示例11: SetUpTest
func (s *S) SetUpTest(c *gocheck.C) {
var err error
cmutex.Lock()
defer cmutex.Unlock()
dCluster, err = cluster.New(nil, &mapStorage{},
cluster.Node{ID: "server", Address: s.server.URL()},
)
c.Assert(err, gocheck.IsNil)
}
开发者ID:jayakumark,项目名称:tsuru,代码行数:9,代码来源:suite_test.go
示例12: TestDockerCluster
func (s *S) TestDockerCluster(c *gocheck.C) {
config.Set("docker:servers", []string{"http://localhost:4243", "http://10.10.10.10:4243"})
defer config.Unset("docker:servers")
expected, _ := cluster.New(nil, nil,
cluster.Node{ID: "server0", Address: "http://localhost:4243"},
cluster.Node{ID: "server1", Address: "http://10.10.10.10:4243"},
)
nodes, err := dCluster.Nodes()
c.Assert(err, gocheck.IsNil)
cmutex.Lock()
dCluster = nil
cmutex.Unlock()
defer func() {
cmutex.Lock()
defer cmutex.Unlock()
dCluster, err = cluster.New(nil, &mapStorage{}, nodes...)
c.Assert(err, gocheck.IsNil)
}()
cluster := dockerCluster()
c.Assert(cluster, gocheck.DeepEquals, expected)
}
开发者ID:richardsonlima,项目名称:tsuru,代码行数:21,代码来源:docker_test.go
示例13: TestAddNodeHandler
func (s *HandlersSuite) TestAddNodeHandler(c *gocheck.C) {
dCluster, _ = cluster.New(segScheduler, nil)
b := bytes.NewBufferString(`{"address": "host.com:4243", "ID": "server01", "teams": "myteam"}`)
req, err := http.NewRequest("POST", "/node/add", b)
c.Assert(err, gocheck.IsNil)
rec := httptest.NewRecorder()
err = addNodeHandler(rec, req)
c.Assert(err, gocheck.IsNil)
defer s.conn.Collection(schedulerCollection).RemoveId("server01")
n, err := s.conn.Collection(schedulerCollection).FindId("server01").Count()
c.Assert(err, gocheck.IsNil)
c.Assert(n, gocheck.Equals, 1)
}
开发者ID:nightshade427,项目名称:tsuru,代码行数:13,代码来源:handlers_test.go
示例14: dockerCluster
func dockerCluster() *cluster.Cluster {
cmutex.Lock()
defer cmutex.Unlock()
var clusterStorage cluster.Storage
if dCluster == nil {
if redisServer, err := config.GetString("docker:scheduler:redis-server"); err == nil {
prefix, _ := config.GetString("docker:scheduler:redis-prefix")
if password, err := config.GetString("docker:scheduler:redis-password"); err == nil {
clusterStorage = storage.AuthenticatedRedis(redisServer, password, prefix)
} else {
clusterStorage = storage.Redis(redisServer, prefix)
}
}
var nodes []cluster.Node
if segregate, _ := config.GetBool("docker:segregate"); segregate {
dCluster, _ = cluster.New(segScheduler, clusterStorage)
} else {
nodes = getDockerServers()
dCluster, _ = cluster.New(nil, clusterStorage, nodes...)
}
}
return dCluster
}
开发者ID:nightshade427,项目名称:tsuru,代码行数:23,代码来源:docker.go
示例15: SetUpSuite
func (s *HealerSuite) SetUpSuite(c *gocheck.C) {
var err error
var server *httptest.Server
s.healer = &ContainerHealer{}
s.cleanup, server = startDockerTestServer("4567", &s.calls)
storage := mapStorage{}
storage.StoreContainer("8dfafdbc3a40", "server")
storage.StoreContainer("dca19cd9bb9e", "server")
storage.StoreContainer("3fd99cd9bb84", "server")
cmutex.Lock()
defer cmutex.Unlock()
dCluster, err = cluster.New(nil, &storage,
cluster.Node{ID: "server", Address: server.URL},
)
c.Assert(err, gocheck.IsNil)
}
开发者ID:jayakumark,项目名称:tsuru,代码行数:16,代码来源:healer_test.go
示例16: TestDockerClusterSegregated
func (s *S) TestDockerClusterSegregated(c *gocheck.C) {
config.Set("docker:segregate", true)
defer config.Unset("docker:segregate")
expected, _ := cluster.New(segScheduler, nil)
oldDockerCluster := dCluster
cmutex.Lock()
dCluster = nil
cmutex.Unlock()
defer func() {
cmutex.Lock()
defer cmutex.Unlock()
dCluster = oldDockerCluster
}()
cluster := dockerCluster()
c.Assert(cluster, gocheck.DeepEquals, expected)
}
开发者ID:richardsonlima,项目名称:tsuru,代码行数:16,代码来源:docker_test.go
示例17: TestCollectStatusFixContainer
func (s *S) TestCollectStatusFixContainer(c *gocheck.C) {
coll := collection()
defer coll.Close()
err := coll.Insert(
container{
ID: "9930c24f1c4x",
AppName: "makea",
Type: "python",
Status: "running",
IP: "127.0.0.4",
HostPort: "9025",
HostAddr: "127.0.0.1",
},
)
c.Assert(err, gocheck.IsNil)
defer coll.RemoveAll(bson.M{"appname": "makea"})
expected := []provision.Unit{
{
Name: "9930c24f1c4x",
AppName: "makea",
Type: "python",
Machine: 0,
Ip: "127.0.0.1",
Status: provision.StatusUnreachable,
},
}
cleanup, server := startDocker()
defer cleanup()
var storage mapStorage
storage.StoreContainer("9930c24f1c4x", "server0")
cmutex.Lock()
dCluster, err = cluster.New(nil, &storage,
cluster.Node{ID: "server0", Address: server.URL},
)
cmutex.Unlock()
c.Assert(err, gocheck.IsNil)
var p dockerProvisioner
units, err := p.CollectStatus()
c.Assert(err, gocheck.IsNil)
sortUnits(units)
sortUnits(expected)
c.Assert(units, gocheck.DeepEquals, expected)
cont, err := getContainer("9930c24f1c4x")
c.Assert(err, gocheck.IsNil)
c.Assert(cont.IP, gocheck.Equals, "127.0.0.9")
c.Assert(cont.HostPort, gocheck.Equals, "9999")
}
开发者ID:jayakumark,项目名称:tsuru,代码行数:47,代码来源:collector_test.go
示例18: TestDockerCluster
func (s *S) TestDockerCluster(c *gocheck.C) {
config.Set("docker:servers", []string{"http://localhost:4243", "http://10.10.10.10:4243"})
expected, _ := cluster.New(
cluster.Node{ID: "server0", Address: "http://localhost:4243"},
cluster.Node{ID: "server1", Address: "http://10.10.10.10:4243"},
)
oldDockerCluster := dCluster
cmutext.Lock()
dCluster = nil
cmutext.Unlock()
defer func() {
cmutext.Lock()
defer cmutext.Unlock()
dCluster = oldDockerCluster
}()
cluster := dockerCluster()
c.Assert(cluster, gocheck.DeepEquals, expected)
}
开发者ID:paulopatto,项目名称:tsuru,代码行数:18,代码来源:docker_test.go
示例19: startDocker
func startDocker() (func(), *httptest.Server) {
output := `{
"State": {
"Running": true,
"Pid": 2785,
"ExitCode": 0,
"StartedAt": "2013-08-15T03:38:45.709874216-03:00",
"Ghost": false
},
"Image": "b750fe79269d2ec9a3c593ef05b4332b1d1a02a62b4accb2c21d589ff2f5f2dc",
"NetworkSettings": {
"IpAddress": "127.0.0.9",
"IpPrefixLen": 8,
"Gateway": "10.65.41.1",
"Ports": {
"8888/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "9999"
}
]
}
}
}`
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if strings.Contains(r.URL.Path, "/containers/9930c24f1c4x") {
w.Write([]byte(output))
}
}))
var err error
oldCluster := dockerCluster()
dCluster, err = cluster.New(nil, storage.Redis("localhost:6379", "tests"),
cluster.Node{ID: "server", Address: server.URL},
)
if err != nil {
panic(err)
}
return func() {
server.Close()
dCluster = oldCluster
}, server
}
开发者ID:johntdyer,项目名称:golang-devops-stuff,代码行数:42,代码来源:collector_test.go
示例20: TestReplicateImageNoRegistry
func (s *S) TestReplicateImageNoRegistry(c *gocheck.C) {
var requests int32
server, err := dtesting.NewServer(func(*http.Request) {
atomic.AddInt32(&requests, 1)
})
c.Assert(err, gocheck.IsNil)
defer server.Stop()
cmutext.Lock()
oldDockerCluster := dCluster
dCluster, _ = cluster.New(cluster.Node{ID: "server0", Address: server.URL()})
cmutext.Unlock()
defer func() {
cmutext.Lock()
defer cmutext.Unlock()
dCluster = oldDockerCluster
}()
err = replicateImage("tsuru/python")
c.Assert(err, gocheck.IsNil)
c.Assert(atomic.LoadInt32(&requests), gocheck.Equals, int32(0))
}
开发者ID:paulopatto,项目名称:tsuru,代码行数:20,代码来源:docker_test.go
注:本文中的github.com/globocom/docker-cluster/cluster.New函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论