1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

Implement docker diff with standalone client lib.

Signed-off-by: David Calavera <david.calavera@gmail.com>
This commit is contained in:
David Calavera 2015-12-03 14:18:35 -05:00
parent 136e8fef64
commit e562ac42f4
2 changed files with 26 additions and 10 deletions

View file

@ -1,10 +1,8 @@
package client
import (
"encoding/json"
"fmt"
"github.com/docker/docker/api/types"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/pkg/archive"
flag "github.com/docker/docker/pkg/mflag"
@ -27,18 +25,11 @@ func (cli *DockerCli) CmdDiff(args ...string) error {
return fmt.Errorf("Container name cannot be empty")
}
serverResp, err := cli.call("GET", "/containers/"+cmd.Arg(0)+"/changes", nil, nil)
changes, err := cli.client.ContainerDiff(cmd.Arg(0))
if err != nil {
return err
}
defer serverResp.body.Close()
changes := []types.ContainerChange{}
if err := json.NewDecoder(serverResp.body).Decode(&changes); err != nil {
return err
}
for _, change := range changes {
var kind string
switch change.Kind {

25
api/client/lib/diff.go Normal file
View file

@ -0,0 +1,25 @@
package lib
import (
"encoding/json"
"net/url"
"github.com/docker/docker/api/types"
)
// ContainerDiff shows differences in a container filesystem since it was started.
func (cli *Client) ContainerDiff(containerID string) ([]types.ContainerChange, error) {
var changes []types.ContainerChange
serverResp, err := cli.GET("/containers/"+containerID+"/changes", url.Values{}, nil)
if err != nil {
return changes, err
}
defer serverResp.body.Close()
if err := json.NewDecoder(serverResp.body).Decode(&changes); err != nil {
return changes, err
}
return changes, nil
}