func getImage(bsConf *provision.ScopedConfig) string { image := bsConf.GetExtraString("image") if image != "" { return image } image, _ = config.GetString("docker:bs:image") if image == "" { image = bsDefaultImageName } return image }
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) }
func getToken(bsConf *provision.ScopedConfig) (string, error) { token := bsConf.GetExtraString("token") if token != "" { return token, nil } tokenData, err := app.AuthScheme.AppLogin(app.InternalAppName) if err != nil { return "", err } token = tokenData.GetValue() isSet, err := bsConf.SetExtraAtomic("token", token) if isSet { return token, nil } app.AuthScheme.Logout(token) if err != nil { return "", err } token = bsConf.GetExtraString("token") if token == "" { return "", fmt.Errorf("invalid empty bs api token") } return token, nil }