Merge pull request #844 from dotcloud/843-inspect_multiple_params-feature

* Runtime: allow multiple params in inspect
This commit is contained in:
Guillaume J. Charmes 2013-06-12 10:18:42 -07:00
commit c85e775162
1 changed files with 26 additions and 17 deletions

View File

@ -460,7 +460,7 @@ func (cli *DockerCli) CmdStop(args ...string) error {
for _, name := range cmd.Args() { for _, name := range cmd.Args() {
_, _, err := cli.call("POST", "/containers/"+name+"/stop?"+v.Encode(), nil) _, _, err := cli.call("POST", "/containers/"+name+"/stop?"+v.Encode(), nil)
if err != nil { if err != nil {
fmt.Printf("%s", err) fmt.Fprintf(os.Stderr, "%s", err)
} else { } else {
fmt.Println(name) fmt.Println(name)
} }
@ -485,7 +485,7 @@ func (cli *DockerCli) CmdRestart(args ...string) error {
for _, name := range cmd.Args() { for _, name := range cmd.Args() {
_, _, err := cli.call("POST", "/containers/"+name+"/restart?"+v.Encode(), nil) _, _, err := cli.call("POST", "/containers/"+name+"/restart?"+v.Encode(), nil)
if err != nil { if err != nil {
fmt.Printf("%s", err) fmt.Fprintf(os.Stderr, "%s", err)
} else { } else {
fmt.Println(name) fmt.Println(name)
} }
@ -506,7 +506,7 @@ func (cli *DockerCli) CmdStart(args ...string) error {
for _, name := range args { for _, name := range args {
_, _, err := cli.call("POST", "/containers/"+name+"/start", nil) _, _, err := cli.call("POST", "/containers/"+name+"/start", nil)
if err != nil { if err != nil {
fmt.Printf("%s", err) fmt.Fprintf(os.Stderr, "%s", err)
} else { } else {
fmt.Println(name) fmt.Println(name)
} }
@ -515,29 +515,38 @@ func (cli *DockerCli) CmdStart(args ...string) error {
} }
func (cli *DockerCli) CmdInspect(args ...string) error { func (cli *DockerCli) CmdInspect(args ...string) error {
cmd := Subcmd("inspect", "CONTAINER|IMAGE", "Return low-level information on a container/image") cmd := Subcmd("inspect", "CONTAINER|IMAGE [CONTAINER|IMAGE...]", "Return low-level information on a container/image")
if err := cmd.Parse(args); err != nil { if err := cmd.Parse(args); err != nil {
return nil return nil
} }
if cmd.NArg() != 1 { if cmd.NArg() < 1 {
cmd.Usage() cmd.Usage()
return nil return nil
} }
obj, _, err := cli.call("GET", "/containers/"+cmd.Arg(0)+"/json", nil) fmt.Printf("[")
for i, name := range args {
if i > 0 {
fmt.Printf(",")
}
obj, _, err := cli.call("GET", "/containers/"+name+"/json", nil)
if err != nil { if err != nil {
obj, _, err = cli.call("GET", "/images/"+cmd.Arg(0)+"/json", nil) obj, _, err = cli.call("GET", "/images/"+name+"/json", nil)
if err != nil { if err != nil {
return err fmt.Fprintf(os.Stderr, "%s", err)
continue
} }
} }
indented := new(bytes.Buffer) indented := new(bytes.Buffer)
if err = json.Indent(indented, obj, "", " "); err != nil { if err = json.Indent(indented, obj, "", " "); err != nil {
return err fmt.Fprintf(os.Stderr, "%s", err)
continue
} }
if _, err := io.Copy(os.Stdout, indented); err != nil { if _, err := io.Copy(os.Stdout, indented); err != nil {
return err fmt.Fprintf(os.Stderr, "%s", err)
} }
}
fmt.Printf("]")
return nil return nil
} }