From 67473c6d06f084f58467ef257e2de4b2c0161240 Mon Sep 17 00:00:00 2001 From: Vivek Goyal Date: Thu, 25 Jun 2015 17:33:20 -0400 Subject: [PATCH] overlay: Export metadata for container and image in docker-inspect Export metadata for container and image in docker-inspect when overlay graphdriver is in use. Right now it is done only for devicemapper graph driver. Signed-off-by: Vivek Goyal --- daemon/graphdriver/overlay/overlay.go | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/daemon/graphdriver/overlay/overlay.go b/daemon/graphdriver/overlay/overlay.go index 1fbe51ade0..6fdaaf1e7a 100644 --- a/daemon/graphdriver/overlay/overlay.go +++ b/daemon/graphdriver/overlay/overlay.go @@ -168,7 +168,31 @@ func (d *Driver) Status() [][2]string { } func (d *Driver) GetMetadata(id string) (map[string]string, error) { - return nil, nil + dir := d.dir(id) + if _, err := os.Stat(dir); err != nil { + return nil, err + } + + metadata := make(map[string]string) + + // If id has a root, it is an image + rootDir := path.Join(dir, "root") + if _, err := os.Stat(rootDir); err == nil { + metadata["RootDir"] = rootDir + return metadata, nil + } + + lowerId, err := ioutil.ReadFile(path.Join(dir, "lower-id")) + if err != nil { + return nil, err + } + + metadata["LowerDir"] = path.Join(d.dir(string(lowerId)), "root") + metadata["UpperDir"] = path.Join(dir, "upper") + metadata["WorkDir"] = path.Join(dir, "work") + metadata["MergedDir"] = path.Join(dir, "merged") + + return metadata, nil } func (d *Driver) Cleanup() error {