Alter varlink API for ListContainerMounts to return a map

We want to return a map of containermounts where the key is container
id and it points to the mountpath.

Issue #2215

Signed-off-by: baude <bbaude@redhat.com>
This commit is contained in:
baude
2019-01-29 15:56:18 -06:00
parent ad5579e1d9
commit 9e22fbf679
3 changed files with 15 additions and 19 deletions

16
API.md
View File

@ -81,7 +81,7 @@ in the [API.md](https://github.com/containers/libpod/blob/master/API.md) file in
[func ListContainerChanges(name: string) ContainerChanges](#ListContainerChanges) [func ListContainerChanges(name: string) ContainerChanges](#ListContainerChanges)
[func ListContainerMounts() []string](#ListContainerMounts) [func ListContainerMounts() map[string]](#ListContainerMounts)
[func ListContainerPorts(name: string) NotImplemented](#ListContainerPorts) [func ListContainerPorts(name: string) NotImplemented](#ListContainerPorts)
@ -643,19 +643,17 @@ its base image. It returns a struct of changed, deleted, and added path names.
### <a name="ListContainerMounts"></a>func ListContainerMounts ### <a name="ListContainerMounts"></a>func ListContainerMounts
<div style="background-color: #E8E8E8; padding: 15px; margin: 10px; border-radius: 10px;"> <div style="background-color: #E8E8E8; padding: 15px; margin: 10px; border-radius: 10px;">
method ListContainerMounts() [[]string](#[]string)</div> method ListContainerMounts() [map[string]](#map[string])</div>
ListContainerMounts gathers all the mounted container mount points and returns them as an array ListContainerMounts gathers all the mounted container mount points and returns them as an array
of strings of strings
#### Example #### Example
~~~ ~~~
$ varlink call -m unix:/run/podman/io.podman/io.podman.ListContainerMounts $ varlink call unix:/run/podman/io.podman/io.podman.ListContainerMounts
{ {
"mounts": [ "mounts": {
"/var/lib/containers/storage/overlay/b215fb622c65ba3b06c6d2341be80b76a9de7ae415ce419e65228873d4f0dcc8/merged", "04e4c255269ed2545e7f8bd1395a75f7949c50c223415c00c1d54bfa20f3b3d9": "/var/lib/containers/storage/overlay/a078925828f57e20467ca31cfca8a849210d21ec7e5757332b72b6924f441c17/merged",
"/var/lib/containers/storage/overlay/5eaf806073f79c0ed9a695180ad598e34f963f7407da1d2ccf3560bdab49b26f/merged", "1d58c319f9e881a644a5122ff84419dccf6d138f744469281446ab243ef38924": "/var/lib/containers/storage/overlay/948fcf93f8cb932f0f03fd52e3180a58627d547192ffe3b88e0013b98ddcd0d2/merged"
"/var/lib/containers/storage/overlay/1ecb6b1dbb251737c7a24a31869096839c3719d8b250bf075f75172ddcc701e1/merged", }
"/var/lib/containers/storage/overlay/7137b28a3c422165fe920cba851f2f8da271c6b5908672c451ebda03ad3919e2/merged"
]
} }
~~~ ~~~
### <a name="ListContainerPorts"></a>func ListContainerPorts ### <a name="ListContainerPorts"></a>func ListContainerPorts

View File

@ -987,17 +987,15 @@ method ContainerRunlabel(runlabel: Runlabel) -> ()
# of strings # of strings
# #### Example # #### Example
# ~~~ # ~~~
# $ varlink call -m unix:/run/podman/io.podman/io.podman.ListContainerMounts # $ varlink call unix:/run/podman/io.podman/io.podman.ListContainerMounts
# { # {
# "mounts": [ # "mounts": {
# "/var/lib/containers/storage/overlay/b215fb622c65ba3b06c6d2341be80b76a9de7ae415ce419e65228873d4f0dcc8/merged", # "04e4c255269ed2545e7f8bd1395a75f7949c50c223415c00c1d54bfa20f3b3d9": "/var/lib/containers/storage/overlay/a078925828f57e20467ca31cfca8a849210d21ec7e5757332b72b6924f441c17/merged",
# "/var/lib/containers/storage/overlay/5eaf806073f79c0ed9a695180ad598e34f963f7407da1d2ccf3560bdab49b26f/merged", # "1d58c319f9e881a644a5122ff84419dccf6d138f744469281446ab243ef38924": "/var/lib/containers/storage/overlay/948fcf93f8cb932f0f03fd52e3180a58627d547192ffe3b88e0013b98ddcd0d2/merged"
# "/var/lib/containers/storage/overlay/1ecb6b1dbb251737c7a24a31869096839c3719d8b250bf075f75172ddcc701e1/merged", # }
# "/var/lib/containers/storage/overlay/7137b28a3c422165fe920cba851f2f8da271c6b5908672c451ebda03ad3919e2/merged"
# ]
# } # }
# ~~~ # ~~~
method ListContainerMounts() -> (mounts: []string) method ListContainerMounts() -> (mounts: [string]string)
# MountContainer mounts a container by name or full/partial ID. Upon a successful mount, the destination # MountContainer mounts a container by name or full/partial ID. Upon a successful mount, the destination
# mount is returned as a string. # mount is returned as a string.

View File

@ -6,7 +6,7 @@ import (
// ListContainerMounts ... // ListContainerMounts ...
func (i *LibpodAPI) ListContainerMounts(call iopodman.VarlinkCall) error { func (i *LibpodAPI) ListContainerMounts(call iopodman.VarlinkCall) error {
var mounts []string mounts := make(map[string]string)
allContainers, err := i.Runtime.GetAllContainers() allContainers, err := i.Runtime.GetAllContainers()
if err != nil { if err != nil {
return call.ReplyErrorOccurred(err.Error()) return call.ReplyErrorOccurred(err.Error())
@ -17,7 +17,7 @@ func (i *LibpodAPI) ListContainerMounts(call iopodman.VarlinkCall) error {
return call.ReplyErrorOccurred(err.Error()) return call.ReplyErrorOccurred(err.Error())
} }
if mounted { if mounted {
mounts = append(mounts, mountPoint) mounts[container.ID()] = mountPoint
} }
} }
return call.ReplyListContainerMounts(mounts) return call.ReplyListContainerMounts(mounts)