mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Revert "engine: fix engine.Env.Encode() to stop auto-guessing types."
This reverts commit 76057addb2
.
Docker-DCO-1.1-Signed-off-by: Michael Crosby <michael@crosbymichael.com> (github: crosbymichael)
This commit is contained in:
parent
031e288075
commit
95e6fd819b
2 changed files with 19 additions and 19 deletions
|
@ -194,7 +194,25 @@ func (env *Env) SetAuto(k string, v interface{}) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (env *Env) Encode(dst io.Writer) error {
|
func (env *Env) Encode(dst io.Writer) error {
|
||||||
return json.NewEncoder(dst).Encode(env.Map())
|
m := make(map[string]interface{})
|
||||||
|
for k, v := range env.Map() {
|
||||||
|
var val interface{}
|
||||||
|
if err := json.Unmarshal([]byte(v), &val); err == nil {
|
||||||
|
// FIXME: we fix-convert float values to int, because
|
||||||
|
// encoding/json decodes integers to float64, but cannot encode them back.
|
||||||
|
// (See http://golang.org/src/pkg/encoding/json/decode.go#L46)
|
||||||
|
if fval, isFloat := val.(float64); isFloat {
|
||||||
|
val = int(fval)
|
||||||
|
}
|
||||||
|
m[k] = val
|
||||||
|
} else {
|
||||||
|
m[k] = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if err := json.NewEncoder(dst).Encode(&m); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (env *Env) WriteTo(dst io.Writer) (n int64, err error) {
|
func (env *Env) WriteTo(dst io.Writer) (n int64, err error) {
|
||||||
|
|
|
@ -95,21 +95,3 @@ func TestEnviron(t *testing.T) {
|
||||||
t.Fatalf("bar not found in the environ")
|
t.Fatalf("bar not found in the environ")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestEnvWriteTo(t *testing.T) {
|
|
||||||
e := &Env{}
|
|
||||||
inputKey := "Version"
|
|
||||||
inputVal := "42.1"
|
|
||||||
e.Set(inputKey, inputVal)
|
|
||||||
out := NewOutput()
|
|
||||||
e2, err := out.AddEnv()
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
e.WriteTo(out)
|
|
||||||
result := e2.Get(inputKey)
|
|
||||||
expected := inputVal
|
|
||||||
if expected != result {
|
|
||||||
t.Fatalf("%#v\n", result)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue