本文整理汇总了Golang中github.com/tsuru/tsuru/cmd.NewClient函数的典型用法代码示例。如果您正苦于以下问题:Golang NewClient函数的具体用法?Golang NewClient怎么用?Golang NewClient使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewClient函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: TestListNodesInTheSchedulerCmdRunWithFilters
func (s *S) TestListNodesInTheSchedulerCmdRunWithFilters(c *check.C) {
var buf bytes.Buffer
context := cmd.Context{Stdout: &buf}
trans := &cmdtest.ConditionalTransport{
Transport: cmdtest.Transport{Message: `{
"machines": [{"Id": "m-id-1", "Address": "localhost2"}],
"nodes": [
{"Address": "http://localhost1:8080", "Status": "disabled", "Metadata": {"meta1": "foo", "meta2": "bar"}},
{"Address": "http://localhost2:9090", "Status": "disabled", "Metadata": {"meta1": "foo"}}
]
}`, Status: http.StatusOK},
CondFunc: func(req *http.Request) bool {
return req.URL.Path == "/1.0/docker/node"
},
}
manager := cmd.Manager{}
client := cmd.NewClient(&http.Client{Transport: trans}, nil, &manager)
cmd := listNodesInTheSchedulerCmd{}
cmd.Flags().Parse(true, []string{"--filter", "meta1=foo", "-f", "meta2=bar"})
err := cmd.Run(&context, client)
c.Assert(err, check.IsNil)
expected := `+------------------------+---------+----------+-----------+
| Address | IaaS ID | Status | Metadata |
+------------------------+---------+----------+-----------+
| http://localhost1:8080 | | disabled | meta1=foo |
| | | | meta2=bar |
+------------------------+---------+----------+-----------+
`
c.Assert(buf.String(), check.Equals, expected)
}
示例2: TestServiceDocRun
func (s *S) TestServiceDocRun(c *gocheck.C) {
var stdout, stderr bytes.Buffer
result := `This is a test doc for a test service.
Service test is foo bar.
`
expected := result
ctx := cmd.Context{
Args: []string{"foo"},
Stdout: &stdout,
Stderr: &stderr,
}
transport := testing.ConditionalTransport{
Transport: testing.Transport{
Message: result,
Status: http.StatusOK,
},
CondFunc: func(r *http.Request) bool {
return r.Method == "GET" && r.URL.Path == "/services/foo/doc"
},
}
client := cmd.NewClient(&http.Client{Transport: &transport}, nil, manager)
err := (&ServiceDoc{}).Run(&ctx, client)
c.Assert(err, gocheck.IsNil)
obtained := stdout.String()
c.Assert(obtained, gocheck.Equals, expected)
}
示例3: TestServiceBind
func (s *S) TestServiceBind(c *gocheck.C) {
var (
called bool
stdout, stderr bytes.Buffer
)
ctx := cmd.Context{
Args: []string{"my-mysql"},
Stdout: &stdout,
Stderr: &stderr,
}
trans := &testing.ConditionalTransport{
Transport: testing.Transport{Message: `["DATABASE_HOST","DATABASE_USER","DATABASE_PASSWORD"]`, Status: http.StatusOK},
CondFunc: func(req *http.Request) bool {
called = true
return req.Method == "PUT" && req.URL.Path == "/services/instances/my-mysql/g1"
},
}
client := cmd.NewClient(&http.Client{Transport: trans}, nil, manager)
command := ServiceBind{}
command.Flags().Parse(true, []string{"-a", "g1"})
err := command.Run(&ctx, client)
c.Assert(err, gocheck.IsNil)
c.Assert(called, gocheck.Equals, true)
expected := `Instance "my-mysql" is now bound to the app "g1".
The following environment variables are now available for use in your app:
- DATABASE_HOST
- DATABASE_USER
- DATABASE_PASSWORD
For more details, please check the documentation for the service, using service-doc command.
`
c.Assert(stdout.String(), gocheck.Equals, expected)
}
示例4: TestListPoolsInTheSchedulerCmdRun
func (s *S) TestListPoolsInTheSchedulerCmdRun(c *check.C) {
var buf bytes.Buffer
pool := provision.Pool{Name: "pool1", Teams: []string{"tsuruteam", "ateam"}}
publicPool := provision.Pool{Name: "pool2", Public: true}
defaultPool := provision.Pool{Name: "pool3", Default: true}
pools := []provision.Pool{pool, publicPool, defaultPool}
poolsJson, _ := json.Marshal(pools)
ctx := cmd.Context{Stdout: &buf}
trans := &cmdtest.ConditionalTransport{
Transport: cmdtest.Transport{Message: string(poolsJson), Status: http.StatusOK},
CondFunc: func(req *http.Request) bool {
return req.URL.Path == "/pool"
},
}
manager := cmd.Manager{}
client := cmd.NewClient(&http.Client{Transport: trans}, nil, &manager)
err := listPoolsInTheSchedulerCmd{}.Run(&ctx, client)
c.Assert(err, check.IsNil)
expected := `+-----------------+------------------+---------+
| Pools | Teams | Public |
+-----------------+------------------+---------+
| pool1 | tsuruteam, ateam | |
| pool2 | | X |
| pool3 (default) | | |
+-----------------+------------------+---------+
`
c.Assert(buf.String(), check.Equals, expected)
}
示例5: TestServiceList
func (s *S) TestServiceList(c *gocheck.C) {
var stdout, stderr bytes.Buffer
output := `[{"service": "mysql", "instances": ["mysql01", "mysql02"]}, {"service": "oracle", "instances": []}]`
expectedPrefix := `+---------+------------------+
| Service | Instances |`
lineMysql := "| mysql | mysql01, mysql02 |"
lineOracle := "| oracle | |"
ctx := cmd.Context{
Args: []string{},
Stdout: &stdout,
Stderr: &stderr,
}
trans := &testing.ConditionalTransport{
Transport: testing.Transport{Message: output, Status: http.StatusOK},
CondFunc: func(req *http.Request) bool {
return req.URL.Path == "/services/instances"
},
}
client := cmd.NewClient(&http.Client{Transport: trans}, nil, manager)
err := (&ServiceList{}).Run(&ctx, client)
c.Assert(err, gocheck.IsNil)
table := stdout.String()
c.Assert(table, gocheck.Matches, "^"+expectedPrefix+".*")
c.Assert(table, gocheck.Matches, "^.*"+lineMysql+".*")
c.Assert(table, gocheck.Matches, "^.*"+lineOracle+".*")
}
示例6: TestListHealingHistoryCmdRunEmpty
func (s *S) TestListHealingHistoryCmdRunEmpty(c *check.C) {
var buf bytes.Buffer
context := cmd.Context{Stdout: &buf}
trans := &cmdtest.ConditionalTransport{
Transport: cmdtest.Transport{Message: `[]`, Status: http.StatusOK},
CondFunc: func(req *http.Request) bool {
return req.URL.Path == "/docker/healing"
},
}
manager := cmd.Manager{}
client := cmd.NewClient(&http.Client{Transport: trans}, nil, &manager)
healing := &ListHealingHistoryCmd{}
err := healing.Run(&context, client)
c.Assert(err, check.IsNil)
expected := `Node:
+-------+--------+---------+---------+---------+-------+
| Start | Finish | Success | Failing | Created | Error |
+-------+--------+---------+---------+---------+-------+
Container:
+-------+--------+---------+---------+---------+-------+
| Start | Finish | Success | Failing | Created | Error |
+-------+--------+---------+---------+---------+-------+
`
c.Assert(buf.String(), check.Equals, expected)
}
示例7: TestUpdatePoolToTheSchedulerCmd
func (s *S) TestUpdatePoolToTheSchedulerCmd(c *check.C) {
var buf bytes.Buffer
context := cmd.Context{Args: []string{"poolTest"}, Stdout: &buf}
trans := &cmdtest.ConditionalTransport{
Transport: cmdtest.Transport{Message: "", Status: http.StatusOK},
CondFunc: func(req *http.Request) bool {
defer req.Body.Close()
body, err := ioutil.ReadAll(req.Body)
c.Assert(err, check.IsNil)
expected := map[string]interface{}{
"default": interface{}(nil),
"public": true,
}
result := map[string]interface{}{}
err = json.Unmarshal(body, &result)
c.Assert(expected, check.DeepEquals, result)
return req.URL.Path == "/pool/poolTest" && req.URL.Query().Get("force") == "false"
},
}
manager := cmd.Manager{}
client := cmd.NewClient(&http.Client{Transport: trans}, nil, &manager)
cmd := updatePoolToSchedulerCmd{}
cmd.Flags().Parse(true, []string{"--public", "true"})
err := cmd.Run(&context, client)
c.Assert(err, check.IsNil)
}
示例8: TestAppLogWithNoSource
func (s *S) TestAppLogWithNoSource(c *check.C) {
var stdout, stderr bytes.Buffer
t := time.Now()
logs := []log{
{Date: t, Message: "GET /", Source: "web"},
{Date: t.Add(2 * time.Hour), Message: "POST /", Source: "web"},
}
result, err := json.Marshal(logs)
c.Assert(err, check.IsNil)
t = t.In(time.Local)
tfmt := "2006-01-02 15:04:05 -0700"
expected := cmd.Colorfy(t.Format(tfmt)+":", "blue", "", "") + " GET /\n"
expected = expected + cmd.Colorfy(t.Add(2*time.Hour).Format(tfmt)+":", "blue", "", "") + " POST /\n"
context := cmd.Context{
Stdout: &stdout,
Stderr: &stderr,
}
fake := &cmdtest.FakeGuesser{Name: "hitthelights"}
command := appLog{GuessingCommand: cmd.GuessingCommand{G: fake}}
command.Flags().Parse(true, []string{"--lines", "12", "-f", "--no-source"})
trans := &cmdtest.ConditionalTransport{
Transport: cmdtest.Transport{Message: string(result), Status: http.StatusOK},
CondFunc: func(req *http.Request) bool {
return req.URL.Query().Get("lines") == "12" && req.URL.Query().Get("follow") == "1"
},
}
client := cmd.NewClient(&http.Client{Transport: trans}, nil, manager)
err = command.Run(&context, client)
c.Assert(err, check.IsNil)
c.Assert(stdout.String(), check.Equals, expected)
}
示例9: TestAppLogWithUnparsableData
func (s *S) TestAppLogWithUnparsableData(c *check.C) {
var stdout, stderr bytes.Buffer
t := time.Now()
logs := []log{
{Date: t, Message: "creating app lost", Source: "tsuru"},
}
result, err := json.Marshal(logs)
c.Assert(err, check.IsNil)
t = t.In(time.Local)
tfmt := "2006-01-02 15:04:05 -0700"
context := cmd.Context{
Stdout: &stdout,
Stderr: &stderr,
}
command := appLog{}
transport := cmdtest.Transport{
Message: string(result) + "\nunparseable data",
Status: http.StatusOK,
}
client := cmd.NewClient(&http.Client{Transport: &transport}, nil, manager)
command.Flags().Parse(true, []string{"--app", "appName"})
err = command.Run(&context, client)
c.Assert(err, check.IsNil)
expected := cmd.Colorfy(t.Format(tfmt)+" [tsuru]:", "blue", "", "") + " creating app lost\n"
expected += "Error: unparseable data"
c.Assert(stdout.String(), check.Equals, expected)
}
示例10: TestAppLog
func (s *S) TestAppLog(c *gocheck.C) {
var stdout, stderr bytes.Buffer
t := time.Now()
logs := []log{
{Date: t, Message: "creating app lost", Source: "tsuru"},
{Date: t.Add(2 * time.Hour), Message: "app lost successfully created", Source: "app", Unit: "abcdef"},
}
result, err := json.Marshal(logs)
c.Assert(err, gocheck.IsNil)
t = t.In(time.Local)
tfmt := "2006-01-02 15:04:05 -0700"
expected := cmd.Colorfy(t.Format(tfmt)+" [tsuru]:", "blue", "", "") + " creating app lost\n"
expected = expected + cmd.Colorfy(t.Add(2*time.Hour).Format(tfmt)+" [app][abcdef]:", "blue", "", "") + " app lost successfully created\n"
context := cmd.Context{
Stdout: &stdout,
Stderr: &stderr,
}
command := AppLog{}
transport := testing.Transport{
Message: string(result),
Status: http.StatusOK,
}
client := cmd.NewClient(&http.Client{Transport: &transport}, nil, manager)
command.Flags().Parse(true, []string{"--app", "appName"})
err = command.Run(&context, client)
c.Assert(err, gocheck.IsNil)
c.Assert(stdout.String(), gocheck.Equals, expected)
}
示例11: TestPoolListRun
func (s *S) TestPoolListRun(c *check.C) {
var stdout, stderr bytes.Buffer
result := `{"pools_by_team": [{"team": "test", "pools": ["pool"]}], "public_pools": [{"name": "public"}],"default_pool": [{"name": "default"}]}}`
context := cmd.Context{
Args: []string{},
Stdout: &stdout,
Stderr: &stderr,
}
expected := `+------+-------+
| Team | Pools |
+------+-------+
| test | pool |
+------+-------+
+--------------+
| Public Pools |
+--------------+
| public |
+--------------+
+--------------+
| Default Pool |
+--------------+
| default |
+--------------+
`
client := cmd.NewClient(&http.Client{Transport: &cmdtest.Transport{Message: result, Status: http.StatusOK}}, nil, manager)
command := poolList{}
err := command.Run(&context, client)
c.Assert(err, check.IsNil)
c.Assert(stdout.String(), check.Equals, expected)
}
示例12: TestAppLogByUnit
func (s *S) TestAppLogByUnit(c *gocheck.C) {
var stdout, stderr bytes.Buffer
t := time.Now()
logs := []log{
{Date: t, Message: "creating app lost", Source: "tsuru", Unit: "api"},
{Date: t.Add(2 * time.Hour), Message: "app lost successfully created", Source: "tsuru", Unit: "api"},
}
result, err := json.Marshal(logs)
c.Assert(err, gocheck.IsNil)
t = t.In(time.Local)
tfmt := "2006-01-02 15:04:05 -0700"
expected := cmd.Colorfy(t.Format(tfmt)+" [tsuru][api]:", "blue", "", "") + " creating app lost\n"
expected = expected + cmd.Colorfy(t.Add(2*time.Hour).Format(tfmt)+" [tsuru][api]:", "blue", "", "") + " app lost successfully created\n"
context := cmd.Context{
Stdout: &stdout,
Stderr: &stderr,
}
fake := &FakeGuesser{name: "hitthelights"}
command := AppLog{GuessingCommand: GuessingCommand{G: fake}}
command.Flags().Parse(true, []string{"--unit", "api"})
trans := &testing.ConditionalTransport{
Transport: testing.Transport{Message: string(result), Status: http.StatusOK},
CondFunc: func(req *http.Request) bool {
return req.URL.Query().Get("unit") == "api"
},
}
client := cmd.NewClient(&http.Client{Transport: trans}, nil, manager)
err = command.Run(&context, client)
c.Assert(err, gocheck.IsNil)
c.Assert(stdout.String(), gocheck.Equals, expected)
}
示例13: TestDockerLogUpdateRun
func (s *S) TestDockerLogUpdateRun(c *check.C) {
var stdout, stderr bytes.Buffer
context := cmd.Context{
Stdout: &stdout,
Stderr: &stderr,
}
msg := tsuruIo.SimpleJsonMessage{Message: "success!!!"}
result, _ := json.Marshal(msg)
trans := &cmdtest.ConditionalTransport{
Transport: cmdtest.Transport{Message: string(result), Status: http.StatusNoContent},
CondFunc: func(req *http.Request) bool {
defer req.Body.Close()
body, err := ioutil.ReadAll(req.Body)
c.Assert(err, check.IsNil)
expected := provision.ScopedConfig{
Envs: []provision.Entry{{Name: "a", Value: "1"}, {Name: "b", Value: "2"}, {Name: "log-driver", Value: "x"}},
}
var data logsSetData
err = json.Unmarshal(body, &data)
c.Assert(err, check.IsNil)
sort.Sort(provision.ConfigEntryList(data.Config.Envs))
c.Assert(data.Config, check.DeepEquals, expected)
return req.URL.Path == "/1.0/docker/logs" && req.Method == "POST"
},
}
manager := cmd.NewManager("admin", "0.1", "admin-ver", &stdout, &stderr, nil, nil)
client := cmd.NewClient(&http.Client{Transport: trans}, nil, manager)
cmd := dockerLogUpdate{}
err := cmd.Flags().Parse(true, []string{"--log-driver", "x", "--log-opt", "a=1", "--log-opt", "b=2"})
c.Assert(err, check.IsNil)
err = cmd.Run(&context, client)
c.Assert(err, check.IsNil)
c.Assert(stdout.String(), check.Equals, "success!!!")
}
示例14: TestUpdateNodeToTheSchedulerCmdRun
func (s *S) TestUpdateNodeToTheSchedulerCmdRun(c *check.C) {
var buf bytes.Buffer
context := cmd.Context{Args: []string{"http://localhost:1111", "x=y", "y=z"}, Stdout: &buf}
expectedBody := map[string]string{
"address": "http://localhost:1111",
"x": "y",
"y": "z",
}
trans := &cmdtest.ConditionalTransport{
Transport: cmdtest.Transport{Message: "", Status: http.StatusOK},
CondFunc: func(req *http.Request) bool {
body, _ := ioutil.ReadAll(req.Body)
var parsed map[string]string
err := json.Unmarshal(body, &parsed)
c.Assert(err, check.IsNil)
c.Assert(parsed, check.DeepEquals, expectedBody)
return req.URL.Path == "/1.0/docker/node" && req.Method == "PUT" && req.URL.Query().Get("disabled") == "false"
},
}
manager := cmd.Manager{}
client := cmd.NewClient(&http.Client{Transport: trans}, nil, &manager)
cmd := updateNodeToSchedulerCmd{}
err := cmd.Run(&context, client)
c.Assert(err, check.IsNil)
c.Assert(buf.String(), check.Equals, "Node successfully updated.\n")
}
示例15: TestAutoScaleHistoryInProgressEndTimeCmdRun
func (s *S) TestAutoScaleHistoryInProgressEndTimeCmdRun(c *check.C) {
var buf bytes.Buffer
context := cmd.Context{Stdout: &buf}
msg := fmt.Sprintf(`[{
"StartTime": "2015-10-23T08:00:00.000Z",
"EndTime": "%s",
"Successful": true,
"Action": "add",
"Reason": "",
"MetadataValue": "poolx",
"Error": ""
}]`, time.Time{}.Format(time.RFC3339))
trans := &cmdtest.ConditionalTransport{
Transport: cmdtest.Transport{Message: msg, Status: http.StatusOK},
CondFunc: func(req *http.Request) bool {
return req.URL.Path == "/1.0/docker/autoscale"
},
}
manager := cmd.Manager{}
client := cmd.NewClient(&http.Client{Transport: trans}, nil, &manager)
autoscale := &listAutoScaleHistoryCmd{}
err := autoscale.Run(&context, client)
c.Assert(err, check.IsNil)
timeFormat, err := time.Parse(time.RFC3339, "2015-10-23T08:00:00.000Z")
c.Assert(err, check.IsNil)
startTime := timeFormat.Local().Format(time.Stamp)
expected := fmt.Sprintf(`+-----------------+-------------+---------+----------+--------+--------+-------+
| Start | Finish | Success | Metadata | Action | Reason | Error |
+-----------------+-------------+---------+----------+--------+--------+-------+
| %s | in progress | true | poolx | add | | |
+-----------------+-------------+---------+----------+--------+--------+-------+
`, startTime)
c.Assert(buf.String(), check.Equals, expected)
}