mirror of https://github.com/docker/docs.git
add setSubEnv and getSubEnv
Docker-DCO-1.1-Signed-off-by: Victor Vieux <victor.vieux@docker.com> (github: vieux)
This commit is contained in:
parent
24086fa75d
commit
8fbdb7b59e
18
api.go
18
api.go
|
@ -345,11 +345,11 @@ func postCommit(srv *Server, version float64, w http.ResponseWriter, r *http.Req
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
var (
|
var (
|
||||||
config = &Config{}
|
config engine.Env
|
||||||
env engine.Env
|
env engine.Env
|
||||||
job = srv.Eng.Job("commit", r.Form.Get("container"))
|
job = srv.Eng.Job("commit", r.Form.Get("container"))
|
||||||
)
|
)
|
||||||
if err := json.NewDecoder(r.Body).Decode(config); err != nil && err != io.EOF {
|
if err := config.Import(r.Body); err != nil {
|
||||||
utils.Errorf("%s", err)
|
utils.Errorf("%s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -357,7 +357,7 @@ func postCommit(srv *Server, version float64, w http.ResponseWriter, r *http.Req
|
||||||
job.Setenv("tag", r.Form.Get("tag"))
|
job.Setenv("tag", r.Form.Get("tag"))
|
||||||
job.Setenv("author", r.Form.Get("author"))
|
job.Setenv("author", r.Form.Get("author"))
|
||||||
job.Setenv("comment", r.Form.Get("comment"))
|
job.Setenv("comment", r.Form.Get("comment"))
|
||||||
job.SetenvJson("config", config)
|
job.SetenvSubEnv("config", &config)
|
||||||
|
|
||||||
var id string
|
var id string
|
||||||
job.Stdout.AddString(&id)
|
job.Stdout.AddString(&id)
|
||||||
|
@ -704,18 +704,14 @@ func postContainersAttach(srv *Server, version float64, w http.ResponseWriter, r
|
||||||
return fmt.Errorf("Missing parameter")
|
return fmt.Errorf("Missing parameter")
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: replace the buffer by job.AddEnv()
|
|
||||||
var (
|
var (
|
||||||
job = srv.Eng.Job("inspect", vars["name"], "container")
|
job = srv.Eng.Job("inspect", vars["name"], "container")
|
||||||
buffer = bytes.NewBuffer(nil)
|
c, err = job.Stdout.AddEnv()
|
||||||
c Container
|
|
||||||
)
|
)
|
||||||
job.Stdout.Add(buffer)
|
if err != nil {
|
||||||
if err := job.Run(); err != nil {
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err = job.Run(); err != nil {
|
||||||
if err := json.Unmarshal(buffer.Bytes(), &c); err != nil {
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -742,7 +738,7 @@ func postContainersAttach(srv *Server, version float64, w http.ResponseWriter, r
|
||||||
|
|
||||||
fmt.Fprintf(outStream, "HTTP/1.1 200 OK\r\nContent-Type: application/vnd.docker.raw-stream\r\n\r\n")
|
fmt.Fprintf(outStream, "HTTP/1.1 200 OK\r\nContent-Type: application/vnd.docker.raw-stream\r\n\r\n")
|
||||||
|
|
||||||
if !c.Config.Tty && version >= 1.6 {
|
if c.GetSubEnv("Config") != nil && !c.GetSubEnv("Config").GetBool("Tty") && version >= 1.6 {
|
||||||
errStream = utils.NewStdWriter(outStream, utils.Stderr)
|
errStream = utils.NewStdWriter(outStream, utils.Stderr)
|
||||||
outStream = utils.NewStdWriter(outStream, utils.Stdout)
|
outStream = utils.NewStdWriter(outStream, utils.Stdout)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -86,6 +86,28 @@ func (env *Env) GetList(key string) []string {
|
||||||
return l
|
return l
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (env *Env) GetSubEnv(key string) *Env {
|
||||||
|
sval := env.Get(key)
|
||||||
|
if sval == "" {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
buf := bytes.NewBufferString(sval)
|
||||||
|
var sub Env
|
||||||
|
if err := sub.Decode(buf); err != nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return &sub
|
||||||
|
}
|
||||||
|
|
||||||
|
func (env *Env) SetSubEnv(key string, sub *Env) error {
|
||||||
|
var buf bytes.Buffer
|
||||||
|
if err := sub.Encode(&buf); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
env.Set(key, string(buf.Bytes()))
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (env *Env) GetJson(key string, iface interface{}) error {
|
func (env *Env) GetJson(key string, iface interface{}) error {
|
||||||
sval := env.Get(key)
|
sval := env.Get(key)
|
||||||
if sval == "" {
|
if sval == "" {
|
||||||
|
|
|
@ -118,6 +118,14 @@ func (job *Job) SetenvBool(key string, value bool) {
|
||||||
job.env.SetBool(key, value)
|
job.env.SetBool(key, value)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (job *Job) GetenvSubEnv(key string) *Env {
|
||||||
|
return job.env.GetSubEnv(key)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (job *Job) SetenvSubEnv(key string, value *Env) error {
|
||||||
|
return job.env.SetSubEnv(key, value)
|
||||||
|
}
|
||||||
|
|
||||||
func (job *Job) GetenvInt64(key string) int64 {
|
func (job *Job) GetenvInt64(key string) int64 {
|
||||||
return job.env.GetInt64(key)
|
return job.env.GetInt64(key)
|
||||||
}
|
}
|
||||||
|
|
|
@ -1656,8 +1656,7 @@ func (srv *Server) ContainerCreate(job *engine.Job) engine.Status {
|
||||||
}
|
}
|
||||||
resolvConf, err := utils.GetResolvConf()
|
resolvConf, err := utils.GetResolvConf()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
job.Error(err)
|
return job.Error(err)
|
||||||
return engine.StatusErr
|
|
||||||
}
|
}
|
||||||
if !config.NetworkDisabled && len(config.Dns) == 0 && len(srv.runtime.config.Dns) == 0 && utils.CheckLocalDns(resolvConf) {
|
if !config.NetworkDisabled && len(config.Dns) == 0 && len(srv.runtime.config.Dns) == 0 && utils.CheckLocalDns(resolvConf) {
|
||||||
job.Errorf("WARNING: Docker detected local DNS server on resolv.conf. Using default external servers: %v\n", defaultDns)
|
job.Errorf("WARNING: Docker detected local DNS server on resolv.conf. Using default external servers: %v\n", defaultDns)
|
||||||
|
|
Loading…
Reference in New Issue