Implement docker diff with standalone client lib.

Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: e562ac42f445f01625f2e1fc220d1aae3a28b8e1
Component: engine
This commit is contained in:
David Calavera
2015-12-09 12:04:53 -05:00
parent f0680b3c8f
commit dfebc5f6be
2 changed files with 26 additions and 10 deletions
+1 -10
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
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
}