Merge pull request #18374 from calavera/volume_inspect_exit

Return error code when `volume inspect` fails with a template.
Upstream-commit: 29c69ce2a9158899257aa3e015b4db098f662bdd
Component: engine
This commit is contained in:
David Calavera
2015-12-03 13:31:47 -08:00
2 changed files with 32 additions and 22 deletions
+22 -22
View File
@@ -124,6 +124,7 @@ func (cli *DockerCli) CmdVolumeInspect(args ...string) error {
var status = 0
var volumes []*types.Volume
for _, name := range cmd.Args() {
resp, err := cli.call("GET", "/volumes/"+name, nil, nil)
if err != nil {
@@ -132,9 +133,9 @@ func (cli *DockerCli) CmdVolumeInspect(args ...string) error {
var volume types.Volume
if err := json.NewDecoder(resp.body).Decode(&volume); err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
fmt.Fprintf(cli.err, "Unable to read inspect data: %v\n", err)
status = 1
continue
break
}
if tmpl == nil {
@@ -142,30 +143,29 @@ func (cli *DockerCli) CmdVolumeInspect(args ...string) error {
continue
}
if err := tmpl.Execute(cli.out, &volume); err != nil {
if err := tmpl.Execute(cli.out, &volume); err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
status = 1
continue
}
buf := bytes.NewBufferString("")
if err := tmpl.Execute(buf, &volume); err != nil {
fmt.Fprintf(cli.err, "Template parsing error: %v\n", err)
status = 1
break
}
cli.out.Write(buf.Bytes())
cli.out.Write([]byte{'\n'})
}
if tmpl == nil {
b, err := json.MarshalIndent(volumes, "", " ")
if err != nil {
return err
}
_, err = io.Copy(cli.out, bytes.NewReader(b))
if err != nil {
return err
}
io.WriteString(cli.out, "\n")
}
if tmpl != nil {
return nil
}
b, err := json.MarshalIndent(volumes, "", " ")
if err != nil {
return err
}
_, err = io.Copy(cli.out, bytes.NewReader(b))
if err != nil {
return err
}
io.WriteString(cli.out, "\n")
if status != 0 {
return Cli.StatusError{StatusCode: status}
}