summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJhon Honce <jhonce@redhat.com>2021-03-30 10:42:06 -0700
committerMatthew Heon <mheon@redhat.com>2021-04-16 13:33:48 -0400
commit10a58c976bf716e8f91b80759d3043f5986f5c9e (patch)
treef6f0e3896520f29a97786196fdf8021e3c440c81
parent4cd94ade8d595c55f2326bf5458f7fd45f74f63c (diff)
downloadpodman-10a58c976bf716e8f91b80759d3043f5986f5c9e.tar.gz
podman-10a58c976bf716e8f91b80759d3043f5986f5c9e.tar.bz2
podman-10a58c976bf716e8f91b80759d3043f5986f5c9e.zip
Trim white space from /top endpoint results
Versions of the ps command have additional spaces between fields, this manifests as the container asking to run "top" and API reporting "top " as a process. Endpoint and tests updated to check that "top" is reported. There is no libpod specialized endpoint to update. Signed-off-by: Jhon Honce <jhonce@redhat.com>
-rw-r--r--pkg/api/handlers/compat/containers_top.go10
-rw-r--r--test/apiv2/25-containersMore.at3
2 files changed, 11 insertions, 2 deletions
diff --git a/pkg/api/handlers/compat/containers_top.go b/pkg/api/handlers/compat/containers_top.go
index ab9f613af..cae044a89 100644
--- a/pkg/api/handlers/compat/containers_top.go
+++ b/pkg/api/handlers/compat/containers_top.go
@@ -46,8 +46,16 @@ func TopContainer(w http.ResponseWriter, r *http.Request) {
var body = handlers.ContainerTopOKBody{}
if len(output) > 0 {
body.Titles = strings.Split(output[0], "\t")
+ for i := range body.Titles {
+ body.Titles[i] = strings.TrimSpace(body.Titles[i])
+ }
+
for _, line := range output[1:] {
- body.Processes = append(body.Processes, strings.Split(line, "\t"))
+ process := strings.Split(line, "\t")
+ for i := range process {
+ process[i] = strings.TrimSpace(process[i])
+ }
+ body.Processes = append(body.Processes, process)
}
}
utils.WriteJSON(w, http.StatusOK, body)
diff --git a/test/apiv2/25-containersMore.at b/test/apiv2/25-containersMore.at
index 39bfa2e32..0a049d869 100644
--- a/test/apiv2/25-containersMore.at
+++ b/test/apiv2/25-containersMore.at
@@ -38,7 +38,8 @@ t GET libpod/containers/foo/json 200 \
# List processes of the container
t GET libpod/containers/foo/top 200 \
- length=2
+ length=2 \
+ .Processes[0][7]="top"
# List processes of none such
t GET libpod/containers/nonesuch/top 404