summaryrefslogtreecommitdiff
path: root/libpod/container_internal.go
diff options
context:
space:
mode:
authorNeville Cain <neville.cain@qonto.eu>2019-12-27 23:42:38 +0100
committerNeville Cain <neville.cain@qonto.eu>2019-12-27 23:49:34 +0100
commit2a5c235f789e866cb2c1d0fd54cc23c13bc1fc69 (patch)
tree4903937eedc256da041a07fbfc6b02522300e84f /libpod/container_internal.go
parentc759c3f78dcbbf5dec462a863ad25cd41a1707b7 (diff)
downloadpodman-2a5c235f789e866cb2c1d0fd54cc23c13bc1fc69.tar.gz
podman-2a5c235f789e866cb2c1d0fd54cc23c13bc1fc69.tar.bz2
podman-2a5c235f789e866cb2c1d0fd54cc23c13bc1fc69.zip
Ensure SizeRw is shown when a user does 'inspect --size -t container'.
Currently, if a user requests the size on a container (inspect --size -t container), the SizeRw does not show up if the value is 0. It's because InspectContainerData is defined as int64 and there is an omit when empty. We do want to display it even if the value is empty. I have changed the type of SizeRw to be a pointer to an int64 instead of an int64. It will allow us todistinguish the empty value to the missing value. I updated the test "podman inspect container with size" to ensure we check thatSizeRw is displayed correctly. Closes #4744 Signed-off-by: NevilleC <neville.cain@qonto.eu>
Diffstat (limited to 'libpod/container_internal.go')
-rw-r--r--libpod/container_internal.go14
1 files changed, 8 insertions, 6 deletions
diff --git a/libpod/container_internal.go b/libpod/container_internal.go
index 9d97ac5d6..562f783a7 100644
--- a/libpod/container_internal.go
+++ b/libpod/container_internal.go
@@ -84,7 +84,7 @@ func (c *Container) rootFsSize() (int64, error) {
return size + layerSize, err
}
-// rwSize Gets the size of the mutable top layer of the container.
+// rwSize gets the size of the mutable top layer of the container.
func (c *Container) rwSize() (int64, error) {
if c.config.Rootfs != "" {
var size int64
@@ -103,14 +103,16 @@ func (c *Container) rwSize() (int64, error) {
return 0, err
}
- // Get the size of the top layer by calculating the size of the diff
- // between the layer and its parent. The top layer of a container is
- // the only RW layer, all others are immutable
- layer, err := c.runtime.store.Layer(container.LayerID)
+ // The top layer of a container is
+ // the only readable/writeable layer, all others are immutable.
+ rwLayer, err := c.runtime.store.Layer(container.LayerID)
if err != nil {
return 0, err
}
- return c.runtime.store.DiffSize(layer.Parent, layer.ID)
+
+ // Get the size of the top layer by calculating the size of the diff
+ // between the layer and its parent.
+ return c.runtime.store.DiffSize(rwLayer.Parent, rwLayer.ID)
}
// bundlePath returns the path to the container's root filesystem - where the OCI spec will be