podman

Форк
0
40 строк · 966.0 Байт
1
package docker
2

3
import (
4
	"encoding/json"
5
	"errors"
6
	"fmt"
7
	"net/http"
8
)
9

10
// TopResult represents the list of processes running in a container, as
11
// returned by /containers/<id>/top.
12
//
13
// See https://goo.gl/FLwpPl for more details.
14
type TopResult struct {
15
	Titles    []string
16
	Processes [][]string
17
}
18

19
// TopContainer returns processes running inside a container
20
//
21
// See https://goo.gl/FLwpPl for more details.
22
func (c *Client) TopContainer(id string, psArgs string) (TopResult, error) {
23
	var args string
24
	var result TopResult
25
	if psArgs != "" {
26
		args = fmt.Sprintf("?ps_args=%s", psArgs)
27
	}
28
	path := fmt.Sprintf("/containers/%s/top%s", id, args)
29
	resp, err := c.do(http.MethodGet, path, doOptions{})
30
	if err != nil {
31
		var e *Error
32
		if errors.As(err, &e) && e.Status == http.StatusNotFound {
33
			return result, &NoSuchContainer{ID: id}
34
		}
35
		return result, err
36
	}
37
	defer resp.Body.Close()
38
	err = json.NewDecoder(resp.Body).Decode(&result)
39
	return result, err
40
}
41

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.