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) }
func (c *EnvSetCmd) Run(context *cmd.Context, client *cmd.Client) error { context.RawOutput() url, err := cmd.GetURL("/docker/bs/env") if err != nil { return err } var envList []provision.Entry for _, arg := range context.Args { parts := strings.SplitN(arg, "=", 2) if len(parts) < 2 { return fmt.Errorf("invalid variable values") } if parts[0] == "" { return fmt.Errorf("invalid variable values") } envList = append(envList, provision.Entry{Name: parts[0], Value: parts[1]}) } conf := provision.ScopedConfig{} if c.pool == "" { conf.Envs = envList } else { conf.Pools = []provision.PoolEntry{{ Name: c.pool, Envs: envList, }} } b, err := json.Marshal(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) }