本文整理汇总了Golang中github.com/marmelab/gaudi/maestro.Maestro.InitFromString方法的典型用法代码示例。如果您正苦于以下问题:Golang Maestro.InitFromString方法的具体用法?Golang Maestro.InitFromString怎么用?Golang Maestro.InitFromString使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/marmelab/gaudi/maestro.Maestro
的用法示例。
在下文中一共展示了Maestro.InitFromString方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: TestStartApplicationShouldCleanAndBuildThem
func (s *MaestroTestSuite) TestStartApplicationShouldCleanAndBuildThem(c *C) {
// Create a gomock controller, and arrange for it's finish to be called
ctrl := gomock.NewController(c)
defer ctrl.Finish()
// Setup the docker mock package
docker.MOCK().SetController(ctrl)
docker.EXPECT().Kill(gomock.Any()).Return().Times(2)
docker.EXPECT().Remove(gomock.Any()).Return().Times(2)
docker.EXPECT().Build(gomock.Any(), gomock.Any()).Return().Times(2)
docker.EXPECT().Start(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return("123").Times(2)
docker.EXPECT().Inspect(gomock.Any()).Return([]byte("[{\"ID\": \"123\", \"State\":{\"Running\": false}, \"NetworkSettings\": {\"IPAddress\": \"172.17.0.10\"}}]"), nil).Times(4)
m := maestro.Maestro{}
m.InitFromString(`
applications:
app:
type: php-fpm
links: [db]
db:
type: mysql
ports:
3306: 9000
`, "")
c.Assert(len(m.Applications), Equals, 2)
m.Start()
c.Assert(m.GetContainer("db").IsRunning(), Equals, true)
c.Assert(m.GetContainer("app").IsRunning(), Equals, true)
}
示例2: TestInitFromStringShouldCreateAMaestro
func (s *MaestroTestSuite) TestInitFromStringShouldCreateAMaestro(c *C) {
m := maestro.Maestro{}
m.InitFromString(`
applications:
app:
type: php-fpm
links: [db]
db:
type: mysql
ports:
3306: 9000
`, "")
// Create a gomock controller, and arrange for it's finish to be called
ctrl := gomock.NewController(c)
defer ctrl.Finish()
docker.MOCK().SetController(ctrl)
docker.EXPECT().Inspect(gomock.Any()).Return([]byte("[{\"ID\": \"123\", \"State\":{\"Running\": false}, \"NetworkSettings\": {\"IPAddress\": \"\"}}]"), nil)
c.Assert(len(m.Applications), Equals, 2)
c.Assert(m.GetContainer("app").Name, Equals, "app")
c.Assert(m.GetContainer("app").Type, Equals, "php-fpm")
c.Assert(m.GetContainer("app").Dependencies[0].Name, Equals, "db")
c.Assert(m.GetContainer("db").GetFirstPort(), Equals, "3306")
c.Assert(m.GetContainer("db").IsRunning(), Equals, false)
}
示例3: TestInitFromStringShouldTrowAndErrorOnMalformedYmlContent
func (s *MaestroTestSuite) TestInitFromStringShouldTrowAndErrorOnMalformedYmlContent(c *C) {
m := maestro.Maestro{}
c.Assert(func() {
m.InitFromString(`
applications:
tabulated:
type: varnish
`, "")
}, PanicMatches, "YAML error: line 1: found character that cannot start any token")
}
示例4: TestCheckRunningContainerShouldUseDockerPs
func (s *MaestroTestSuite) TestCheckRunningContainerShouldUseDockerPs(c *C) {
// Create a gomock controller, and arrange for it's finish to be called
ctrl := gomock.NewController(c)
defer ctrl.Finish()
// Setup the docker mock package
docker.MOCK().SetController(ctrl)
// Setup the mockfmt mock package
mockfmt.MOCK().SetController(ctrl)
psResult := make(map[string]string)
psResult["gaudi/lb"] = "123"
psResult["gaudi/front1"] = "124"
psResult["gaudi/db"] = "125"
docker.EXPECT().SnapshotProcesses().Return(psResult, nil)
docker.EXPECT().Inspect("123").Return([]byte("[{\"ID\": \"123\", \"State\":{\"Running\": true}, \"NetworkSettings\": {\"IPAddress\": \"123.124.125.126\"}}]"), nil)
docker.EXPECT().Inspect("124").Return([]byte("[{\"ID\": \"123\", \"State\":{\"Running\": true}, \"NetworkSettings\": {\"IPAddress\": \"123.124.125.127\"}}]"), nil)
docker.EXPECT().Inspect("125").Return([]byte("[{\"ID\": \"123\", \"State\":{\"Running\": true}, \"NetworkSettings\": {\"IPAddress\": \"123.124.125.128\"}}]"), nil)
mockfmt.EXPECT().Println("Application", "lb", "is running", "(123.124.125.126:)")
mockfmt.EXPECT().Println("Application", "front1", "is running", "(123.124.125.127:)")
mockfmt.EXPECT().Println("Application", "db", "is running", "(123.124.125.128:3306)")
m := maestro.Maestro{}
m.InitFromString(`
applications:
lb:
links: [front1]
type: varnish
front1:
type: apache
db:
type: mysql
ports:
3306: 9000
`, "")
m.Check()
}
示例5: TestStartApacheShouldStartedItCorrectly
// Apache
func (s *MaestroTestSuite) TestStartApacheShouldStartedItCorrectly(c *C) {
m := maestro.Maestro{}
m.InitFromString(`
applications:
front:
type: apache
ports:
80: 80
`, "")
c.Assert(len(m.Applications), Equals, 1)
m.Start()
// Test apache is running
resp, err := http.Get("http://" + m.GetContainer("front").Ip)
defer resp.Body.Close()
c.Check(err, Equals, nil)
c.Check(resp.StatusCode, Equals, 200)
}
示例6: TestStartPhpAndApacheShouldStartedThemCorrectly
// Apache + php-fpm
func (s *MaestroTestSuite) TestStartPhpAndApacheShouldStartedThemCorrectly(c *C) {
err := os.MkdirAll("/tmp/php", 0775)
ioutil.WriteFile("/tmp/php/ok.php", []byte("<?php echo 'ok';"), 0775)
m := maestro.Maestro{}
m.InitFromString(`
applications:
front:
type: apache
links: [app]
ports:
80: 80
volumes:
/tmp/php: /var/www
custom:
fastCgi: app
app:
type: php-fpm
ports:
9000: 9000
volumes:
/tmp/php: /var/www
`, "")
c.Assert(len(m.Applications), Equals, 2)
m.Start()
time.Sleep(2 * time.Second)
// Test apache is running
resp, err := http.Get("http://" + m.GetContainer("front").Ip + "/ok.php")
defer resp.Body.Close()
content, _ := ioutil.ReadAll(resp.Body)
c.Check(err, Equals, nil)
c.Check(resp.StatusCode, Equals, 200)
c.Check(string(content), Equals, "ok")
}
示例7: TestStartApplicationShouldStartThemByOrderOfDependencies
func (s *MaestroTestSuite) TestStartApplicationShouldStartThemByOrderOfDependencies(c *C) {
// Create a gomock controller, and arrange for it's finish to be called
ctrl := gomock.NewController(c)
defer ctrl.Finish()
// Setup the docker mock package
docker.MOCK().SetController(ctrl)
m := maestro.Maestro{}
m.InitFromString(`
applications:
lb:
links: [front1, front2]
type: varnish
front1:
links: [app]
type: apache
front2:
links: [app]
type: apache
app:
links: [db]
type: php-fpm
db:
type: mysql
`, "")
c.Assert(len(m.Applications), Equals, 5)
docker.EXPECT().Kill(gomock.Any()).Return().Times(5)
docker.EXPECT().Remove(gomock.Any()).Return().Times(5)
docker.EXPECT().Build(gomock.Any(), gomock.Any()).Return().Times(5)
gomock.InOrder(
docker.EXPECT().Inspect("db").Return([]byte("[{\"ID\": \"100\", \"State\":{\"Running\": false}, \"NetworkSettings\": {\"IPAddress\": \"172.17.0.10\"}}]"), nil),
docker.EXPECT().Start("db", gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return("100"),
docker.EXPECT().Inspect("100").Return([]byte("[{\"ID\": \"100\", \"State\":{\"Running\": true}, \"NetworkSettings\": {\"IPAddress\": \"172.17.0.10\"}}]"), nil),
docker.EXPECT().Inspect("app").Return([]byte("[{\"ID\": \"101\", \"State\":{\"Running\": false}, \"NetworkSettings\": {\"IPAddress\": \"172.17.0.10\"}}]"), nil),
docker.EXPECT().Start("app", gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return("101"),
docker.EXPECT().Inspect("101").Return([]byte("[{\"ID\": \"101\", \"State\":{\"Running\": true}, \"NetworkSettings\": {\"IPAddress\": \"172.17.0.10\"}}]"), nil),
docker.EXPECT().Inspect("front1").Return([]byte("[{\"ID\": \"102\", \"State\":{\"Running\": false}, \"NetworkSettings\": {\"IPAddress\": \"172.17.0.10\"}}]"), nil),
docker.EXPECT().Start("front1", gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return("102"),
docker.EXPECT().Inspect("front2").Return([]byte("[{\"ID\": \"103\", \"State\":{\"Running\": false}, \"NetworkSettings\": {\"IPAddress\": \"172.17.0.10\"}}]"), nil),
docker.EXPECT().Start("front2", gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return("103"),
docker.EXPECT().Inspect("102").Return([]byte("[{\"ID\": \"102\", \"State\":{\"Running\": true}, \"NetworkSettings\": {\"IPAddress\": \"172.17.0.10\"}}]"), nil),
docker.EXPECT().Inspect("103").Return([]byte("[{\"ID\": \"103\", \"State\":{\"Running\": true}, \"NetworkSettings\": {\"IPAddress\": \"172.17.0.10\"}}]"), nil),
docker.EXPECT().Inspect("lb").Return([]byte("[{\"ID\": \"104\", \"State\":{\"Running\": false}, \"NetworkSettings\": {\"IPAddress\": \"172.17.0.10\"}}]"), nil),
docker.EXPECT().Start("lb", gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return("104"),
docker.EXPECT().Inspect("104").Return([]byte("[{\"ID\": \"104\", \"State\":{\"Running\": true}, \"NetworkSettings\": {\"IPAddress\": \"172.17.0.10\"}}]"), nil),
)
m.Start()
}
示例8: TestInitFromStringShouldTrowAndErrorOnWrongContent
func (s *MaestroTestSuite) TestInitFromStringShouldTrowAndErrorOnWrongContent(c *C) {
m := maestro.Maestro{}
c.Assert(func() { m.InitFromString("<oldFormat>Skrew you, i'm not yml</oldFormat>", "") }, PanicMatches, "No application to start")
}