本文整理汇总了Golang中github.com/tsuru/tsuru/cmd.Context类的典型用法代码示例。如果您正苦于以下问题:Golang Context类的具体用法?Golang Context怎么用?Golang Context使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Context类的18个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: Run
func (c *moveContainerCmd) Run(context *cmd.Context, client *cmd.Client) error {
context.RawOutput()
url, err := cmd.GetURL(fmt.Sprintf("/docker/container/%s/move", context.Args[0]))
if err != nil {
return err
}
params := map[string]string{
"to": context.Args[1],
}
b, err := json.Marshal(params)
if err != nil {
return err
}
buffer := bytes.NewBuffer(b)
request, err := http.NewRequest("POST", url, buffer)
if err != nil {
return err
}
request.Header.Set("Content-Type", "application/json")
response, err := client.Do(request)
if err != nil {
return err
}
w := tsuruIo.NewStreamWriter(context.Stdout, nil)
for n := int64(1); n > 0 && err == nil; n, err = io.Copy(w, response.Body) {
}
if err != nil {
return err
}
unparsed := w.Remaining()
if len(unparsed) > 0 {
return fmt.Errorf("unparsed message error: %s", string(unparsed))
}
return nil
}
开发者ID:RichardKnop,项目名称:tsuru,代码行数:35,代码来源:admin.go
示例2: Run
func (c *rebalanceContainersCmd) Run(context *cmd.Context, client *cmd.Client) error {
context.RawOutput()
if !c.dry && !c.Confirm(context, "Are you sure you want to rebalance containers?") {
return nil
}
u, err := cmd.GetURL("/docker/containers/rebalance")
if err != nil {
return err
}
opts := rebalanceOptions{
Dry: c.dry,
}
if len(c.metadataFilter) > 0 {
opts.MetadataFilter = c.metadataFilter
}
if len(c.appFilter) > 0 {
opts.AppFilter = c.appFilter
}
v, err := form.EncodeToValues(&opts)
if err != nil {
return err
}
request, err := http.NewRequest("POST", u, bytes.NewBufferString(v.Encode()))
if err != nil {
return err
}
request.Header.Set("Content-Type", "application/x-www-form-urlencoded")
response, err := client.Do(request)
if err != nil {
return err
}
return cmd.StreamJSONResponse(context.Stdout, response)
}
开发者ID:tsuru,项目名称:tsuru,代码行数:33,代码来源:admin.go
示例3: Run
func (c *appRestart) Run(context *cmd.Context, client *cmd.Client) error {
context.RawOutput()
appName, err := c.Guess()
if err != nil {
return err
}
url, err := cmd.GetURL(fmt.Sprintf("/apps/%s/restart?process=%s", appName, c.process))
if err != nil {
return err
}
request, err := http.NewRequest("POST", url, nil)
if err != nil {
return err
}
response, err := client.Do(request)
if err != nil {
return err
}
defer response.Body.Close()
w := tsuruIo.NewStreamWriter(context.Stdout, nil)
for n := int64(1); n > 0 && err == nil; n, err = io.Copy(w, response.Body) {
}
if err != nil {
return err
}
unparsed := w.Remaining()
if len(unparsed) > 0 {
return fmt.Errorf("unparsed message error: %s", string(unparsed))
}
return nil
}
开发者ID:dcarley,项目名称:tsuru-client,代码行数:31,代码来源:apps.go
示例4: Run
func (c *appRun) Run(context *cmd.Context, client *cmd.Client) error {
context.RawOutput()
appName, err := c.Guess()
if err != nil {
return err
}
url, err := cmd.GetURL(fmt.Sprintf("/apps/%s/run?once=%t", appName, c.once))
if err != nil {
return err
}
b := strings.NewReader(strings.Join(context.Args, " "))
request, err := http.NewRequest("POST", url, b)
if err != nil {
return err
}
r, err := client.Do(request)
if err != nil {
return err
}
defer r.Body.Close()
w := tsuruIo.NewStreamWriter(context.Stdout, nil)
for n := int64(1); n > 0 && err == nil; n, err = io.Copy(w, r.Body) {
}
if err != nil {
return err
}
unparsed := w.Remaining()
if len(unparsed) > 0 {
return fmt.Errorf("unparsed message error: %s", string(unparsed))
}
return nil
}
开发者ID:wpjunior,项目名称:tsuru-client,代码行数:32,代码来源:run.go
示例5: Run
func (c *appPlanChange) Run(context *cmd.Context, client *cmd.Client) error {
context.RawOutput()
appName, err := c.Guess()
if err != nil {
return err
}
plan := tsuruapp.Plan{Name: context.Args[0]}
question := fmt.Sprintf("Are you sure you want to change the plan of the application %q to %q?", appName, plan.Name)
if !c.Confirm(context, question) {
return nil
}
url, err := cmd.GetURL(fmt.Sprintf("/apps/%s/plan", appName))
if err != nil {
return err
}
b, err := json.Marshal(plan)
if err != nil {
return err
}
request, err := http.NewRequest("POST", url, bytes.NewReader(b))
if err != nil {
return err
}
response, err := client.Do(request)
if err != nil {
return err
}
return cmd.StreamJSONResponse(context.Stdout, response)
}
开发者ID:axelerant,项目名称:tsuru-client,代码行数:29,代码来源:plan.go
示例6: Run
func (c *rebalanceContainersCmd) Run(context *cmd.Context, client *cmd.Client) error {
context.RawOutput()
if !c.dry && !c.Confirm(context, "Are you sure you want to rebalance containers?") {
return nil
}
url, err := cmd.GetURL("/docker/containers/rebalance")
if err != nil {
return err
}
params := map[string]interface{}{
"dry": fmt.Sprintf("%t", c.dry),
}
if len(c.metadataFilter) > 0 {
params["metadataFilter"] = c.metadataFilter
}
if len(c.appFilter) > 0 {
params["appFilter"] = c.appFilter
}
b, err := json.Marshal(params)
if err != nil {
return err
}
buffer := bytes.NewBuffer(b)
request, err := http.NewRequest("POST", url, buffer)
if err != nil {
return err
}
request.Header.Set("Content-Type", "application/json")
response, err := client.Do(request)
if err != nil {
return err
}
return cmd.StreamJSONResponse(context.Stdout, response)
}
开发者ID:nicolas2bonfils,项目名称:tsuru,代码行数:34,代码来源:admin.go
示例7: Run
func (c *unitAdd) Run(context *cmd.Context, client *cmd.Client) error {
context.RawOutput()
appName, err := c.Guess()
if err != nil {
return err
}
u, err := cmd.GetURL(fmt.Sprintf("/apps/%s/units", appName))
if err != nil {
return err
}
val := url.Values{}
val.Add("units", context.Args[0])
val.Add("process", c.process)
request, err := http.NewRequest("PUT", u, bytes.NewBufferString(val.Encode()))
if err != nil {
return err
}
request.Header.Add("Content-Type", "application/x-www-form-urlencoded")
response, err := client.Do(request)
if err != nil {
return err
}
defer response.Body.Close()
return cmd.StreamJSONResponse(context.Stdout, response)
}
开发者ID:axelerant,项目名称:tsuru-client,代码行数:25,代码来源:apps.go
示例8: Run
func (c *autoScaleRunCmd) Run(context *cmd.Context, client *cmd.Client) error {
context.RawOutput()
if !c.Confirm(context, "Are you sure you want to run auto scaling checks?") {
return nil
}
u, err := cmd.GetURL("/docker/autoscale/run")
if err != nil {
return err
}
request, err := http.NewRequest("POST", u, nil)
if err != nil {
return err
}
response, err := client.Do(request)
if err != nil {
return err
}
w := tsuruIo.NewStreamWriter(context.Stdout, nil)
for n := int64(1); n > 0 && err == nil; n, err = io.Copy(w, response.Body) {
}
if err != nil {
return err
}
unparsed := w.Remaining()
if len(unparsed) > 0 {
return errors.Errorf("unparsed message error: %s", string(unparsed))
}
return nil
}
开发者ID:tsuru,项目名称:tsuru,代码行数:29,代码来源:cmd.go
示例9: Run
func (c *envUnset) Run(context *cmd.Context, client *cmd.Client) error {
context.RawOutput()
appName, err := c.Guess()
if err != nil {
return err
}
url, err := cmd.GetURL(fmt.Sprintf("/apps/%s/env", appName))
if err != nil {
return err
}
var buf bytes.Buffer
json.NewEncoder(&buf).Encode(context.Args)
request, err := http.NewRequest("DELETE", url, &buf)
if err != nil {
return err
}
response, err := client.Do(request)
if err != nil {
return err
}
w := tsuruIo.NewStreamWriter(context.Stdout, nil)
for n := int64(1); n > 0 && err == nil; n, err = io.Copy(w, response.Body) {
}
if err != nil {
return err
}
unparsed := w.Remaining()
if len(unparsed) > 0 {
return fmt.Errorf("unparsed message error: %s", string(unparsed))
}
return nil
}
开发者ID:axelerant,项目名称:tsuru-client,代码行数:32,代码来源:env.go
示例10: Run
func (su *serviceUnbind) Run(ctx *cmd.Context, client *cmd.Client) error {
ctx.RawOutput()
appName, err := su.Guess()
if err != nil {
return err
}
instanceName := ctx.Args[0]
url, err := cmd.GetURL("/services/instances/" + instanceName + "/" + appName)
if err != nil {
return err
}
request, err := http.NewRequest("DELETE", url, nil)
if err != nil {
return err
}
resp, err := client.Do(request)
if err != nil {
return err
}
defer resp.Body.Close()
w := tsuruIo.NewStreamWriter(ctx.Stdout, nil)
for n := int64(1); n > 0 && err == nil; n, err = io.Copy(w, resp.Body) {
}
if err != nil {
return err
}
unparsed := w.Remaining()
if len(unparsed) > 0 {
return fmt.Errorf("unparsed message error: %s", string(unparsed))
}
return nil
}
开发者ID:dcarley,项目名称:tsuru-client,代码行数:32,代码来源:services.go
示例11: Run
func (p *platformUpdate) Run(context *cmd.Context, client *cmd.Client) error {
context.RawOutput()
name := context.Args[0]
if p.disable && p.enable {
return errors.New("Conflicting options: --enable and --disable\n")
}
if !p.disable && !p.enable && p.dockerfile == "" {
return errors.New("Flag is required")
}
disable := ""
if p.enable {
disable = "false"
}
if p.disable {
disable = "true"
}
body := fmt.Sprintf("a=1&dockerfile=%s", p.dockerfile)
url, err := cmd.GetURL(fmt.Sprintf("/platforms/%s?disabled=%s", name, disable))
request, err := http.NewRequest("PUT", url, strings.NewReader(body))
if err != nil {
return err
}
request.Header.Add("Content-Type", "application/x-www-form-urlencoded")
response, err := client.Do(request)
if err != nil {
return err
}
return cmd.StreamJSONResponse(context.Stdout, response)
}
开发者ID:combor,项目名称:tsuru-admin,代码行数:29,代码来源:platform.go
示例12: Run
func (c *plugin) Run(context *cmd.Context, client *cmd.Client) error {
context.RawOutput()
pluginName := context.Args[0]
pluginPath := cmd.JoinWithUserDir(".tsuru", "plugins", pluginName)
target, err := cmd.GetURL("/")
if err != nil {
return err
}
token, err := cmd.ReadToken()
if err != nil {
return err
}
envs := os.Environ()
tsuruEnvs := []string{
"TSURU_TARGET=" + target,
"TSURU_TOKEN=" + token,
"TSURU_PLUGIN_NAME=" + pluginName,
}
envs = append(envs, tsuruEnvs...)
opts := exec.ExecuteOptions{
Cmd: pluginPath,
Args: context.Args[1:],
Stdout: context.Stdout,
Stderr: context.Stderr,
Stdin: context.Stdin,
Envs: envs,
}
return executor().Execute(opts)
}
开发者ID:wpjunior,项目名称:tsuru-client,代码行数:29,代码来源:plugin.go
示例13: Run
func (c *dockerLogUpdate) Run(context *cmd.Context, client *cmd.Client) error {
context.RawOutput()
if c.restart {
extra := ""
if c.pool != "" {
extra = fmt.Sprintf(" running on pool %s", c.pool)
}
msg := fmt.Sprintf("Are you sure you want to restart all apps%s?", extra)
if !c.Confirm(context, msg) {
return nil
}
}
url, err := cmd.GetURL("/docker/logs")
if err != nil {
return err
}
envList := []provision.Entry{
{Name: "log-driver", Value: c.logDriver},
}
for name, value := range c.logOpts {
envList = append(envList, provision.Entry{Name: name, Value: value})
}
conf := provision.ScopedConfig{}
if c.pool == "" {
conf.Envs = envList
} else {
conf.Pools = []provision.PoolEntry{{
Name: c.pool,
Envs: envList,
}}
}
b, err := json.Marshal(logsSetData{
Restart: c.restart,
Config: conf,
})
if err != nil {
return err
}
buffer := bytes.NewBuffer(b)
request, err := http.NewRequest("POST", url, buffer)
if err != nil {
return err
}
request.Header.Set("Content-Type", "application/json")
response, err := client.Do(request)
if err != nil {
return err
}
defer response.Body.Close()
return cmd.StreamJSONResponse(context.Stdout, response)
}
开发者ID:zhenruyan,项目名称:tsuru,代码行数:51,代码来源:cmd.go
示例14: Run
func (createRootUserCmd) Run(context *cmd.Context, client *cmd.Client) error {
context.RawOutput()
scheme, err := config.GetString("auth:scheme")
if err != nil {
scheme = "native"
}
app.AuthScheme, err = auth.GetScheme(scheme)
if err != nil {
return err
}
email := context.Args[0]
user, err := auth.GetUserByEmail(email)
if err == nil {
err = addSuperRole(user)
if err != nil {
return err
}
fmt.Fprintln(context.Stdout, "Root user successfully updated.")
}
var confirm, password string
if scheme == "native" {
fmt.Fprint(context.Stdout, "Password: ")
password, err = cmd.PasswordFromReader(context.Stdin)
if err != nil {
return err
}
fmt.Fprint(context.Stdout, "\nConfirm: ")
confirm, err = cmd.PasswordFromReader(context.Stdin)
if err != nil {
return err
}
fmt.Fprintln(context.Stdout)
if password != confirm {
return errors.New("Passwords didn't match.")
}
}
user, err = app.AuthScheme.Create(&auth.User{
Email: email,
Password: password,
})
if err != nil {
return err
}
err = addSuperRole(user)
if err != nil {
return err
}
fmt.Fprintln(context.Stdout, "Root user successfully created.")
return nil
}
开发者ID:pedrosnk,项目名称:tsuru,代码行数:50,代码来源:token.go
示例15: Run
func (c *UpgradeCmd) Run(context *cmd.Context, client *cmd.Client) error {
context.RawOutput()
url, err := cmd.GetURL("/docker/bs/upgrade")
if err != nil {
return err
}
request, err := http.NewRequest("POST", url, nil)
if err != nil {
return err
}
response, err := client.Do(request)
if err != nil {
return err
}
defer response.Body.Close()
return cmd.StreamJSONResponse(context.Stdout, response)
}
开发者ID:botvs,项目名称:tsuru,代码行数:17,代码来源:cmd.go
示例16: Run
func (c *appUpdate) Run(context *cmd.Context, client *cmd.Client) error {
context.RawOutput()
appName := context.Args[0]
var param app
if c.plan != "" {
plan := tsuruapp.Plan{Name: c.plan}
question := fmt.Sprintf("Are you sure you want to change the plan of the application %q to %q?", appName, plan.Name)
if !c.Confirm(context, question) {
return nil
}
param.Plan = plan
}
param.Description = c.description
param.Pool = c.pool
param.TeamOwner = c.teamOwner
b, err := json.Marshal(param)
if err != nil {
return err
}
url, err := cmd.GetURL(fmt.Sprintf("/apps/%s", appName))
if err != nil {
return err
}
request, err := http.NewRequest("POST", url, bytes.NewBuffer(b))
if err != nil {
return err
}
request.Header.Set("Content-Type", "application/json")
response, err := client.Do(request)
if err != nil {
e := err.(*tsuruerr.HTTP)
if e.Code == http.StatusBadRequest {
return errors.New("You must set a flag. Use the 'app-update --help' command for more information.")
}
return err
}
err = cmd.StreamJSONResponse(context.Stdout, response)
if err != nil {
return err
}
fmt.Fprintf(context.Stdout, "App %q has been updated!\n", appName)
fmt.Fprintln(context.Stdout, "Use app-info to check the status of the app and its units.")
return nil
}
开发者ID:pauloalem,项目名称:tsuru-client,代码行数:44,代码来源:apps.go
示例17: Run
func (c *appLog) Run(context *cmd.Context, client *cmd.Client) error {
context.RawOutput()
appName, err := c.Guess()
if err != nil {
return err
}
url, err := cmd.GetURL(fmt.Sprintf("/apps/%s/log?lines=%d", appName, c.lines))
if err != nil {
return err
}
if c.source != "" {
url = fmt.Sprintf("%s&source=%s", url, c.source)
}
if c.unit != "" {
url = fmt.Sprintf("%s&unit=%s", url, c.unit)
}
if c.follow {
url += "&follow=1"
}
request, err := http.NewRequest("GET", url, nil)
if err != nil {
return err
}
response, err := client.Do(request)
if err != nil {
return err
}
if response.StatusCode == http.StatusNoContent {
return nil
}
defer response.Body.Close()
w := tsuruIo.NewStreamWriter(context.Stdout, logFormatter{
noDate: c.noDate,
noSource: c.noSource,
})
for n := int64(1); n > 0 && err == nil; n, err = io.Copy(w, response.Body) {
}
unparsed := w.Remaining()
if len(unparsed) > 0 {
fmt.Fprintf(context.Stdout, "Error: %s", string(unparsed))
}
return nil
}
开发者ID:pauloalem,项目名称:tsuru-client,代码行数:43,代码来源:log.go
示例18: Run
func (c *userCreate) Run(context *cmd.Context, client *cmd.Client) error {
context.RawOutput()
url, err := cmd.GetURL("/users")
if err != nil {
return err
}
email := context.Args[0]
fmt.Fprint(context.Stdout, "Password: ")
password, err := cmd.PasswordFromReader(context.Stdin)
if err != nil {
return err
}
fmt.Fprint(context.Stdout, "\nConfirm: ")
confirm, err := cmd.PasswordFromReader(context.Stdin)
if err != nil {
return err
}
fmt.Fprintln(context.Stdout)
if password != confirm {
return errors.New("Passwords didn't match.")
}
b := bytes.NewBufferString(`{"email":"` + email + `", "password":"` + password + `"}`)
request, err := http.NewRequest("POST", url, b)
if err != nil {
return err
}
resp, err := client.Do(request)
if resp != nil {
if resp.StatusCode == http.StatusNotFound ||
resp.StatusCode == http.StatusMethodNotAllowed {
return errors.New("User creation is disabled.")
}
}
if err != nil {
return err
}
fmt.Fprintf(context.Stdout, `User "%s" successfully created!`+"\n", email)
return nil
}
开发者ID:axelerant,项目名称:tsuru-client,代码行数:39,代码来源:auth.go
注:本文中的github.com/tsuru/tsuru/cmd.Context类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论