-
Notifications
You must be signed in to change notification settings - Fork 0
/
interface.go
113 lines (109 loc) · 5.63 KB
/
interface.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
package containers
import (
"context"
"io"
"net"
"os"
"time"
)
// Container - интерфейс работы с docker-контейнером
type (
Container interface {
// GetClient - возвращает клиента среды исполнения контейнера
GetClient() Client
// GetID возвращает идентификатор запущенного контейнера после его создания
GetID() string
// GetName возвращает имя контейнера
GetName() string
// GetImage возвращает образ
GetImage() string
// GetSysctls возвращает данные системных настроек контейнера
GetSysctls() map[string]string
// GetContainerIP возвращает внутренний IP адрес контейнера
GetContainerIP() string
// ContainerPorts возвращает список внутренних портов контейнера
ContainerPorts() []Port
// PortMap возвращает смапленные на хост порты
PortMap() PortMap
// GetEnvs возвращает список переменных окружения
GetEnvs() []string
// GetEntryPoint возвращает точку схода процесса контейнера
GetEntryPoint() string
// GetCmd возвращает команду контейнера
GetCmd() []string
// GetVolumes возвращает список разделов
GetVolumes() []string
// GetMounts возвращает список подключаемых разделов
GetMounts() []string
// GetAutoremove признак авто удаления контейнера после завершения работы
GetAutoremove() bool
// GetNetwork возвращает сеть контейнера
GetNetwork() Network
// CreateContainer - фаза создания контейнера
CreateContainer() error
// StartContainer - фаза старта контейнера
StartContainer(sigCh <-chan os.Signal, ready chan<- struct{}) error
// Stop - останавливает контейнер
Stop() error
// HostAddrs - возвращает мапу адресов контейнера на хосте
HostAddrs() AddrsMap
// ContainerAddrs - возвращает мапу адресов контейнера
ContainerAddrs() AddrsMap
// LogStdout пишет сообщение во writer потока стандартного вывода контейнера
LogStdout(format string, args ...any) bool
// LogStderr пишет сообщение во writer потока стандартного вывода ошибок контейнера
LogStderr(format string, args ...any) bool
// LogError пишет ошибку сообщение во writer потока стандартного вывода ошибок контейнера
LogError(err error, args ...any) bool
}
Client interface {
// WithStdout устанавливает кастомный поток стандартного вывода
WithStdout(w io.Writer) Client
// WithStderr устанавливает кастомный поток вывода ошибок
WithStderr(w io.Writer) Client
// IsInContainer - возвращает признак того что процесс сам запущен
// внутри контейнера
IsInContainer() bool
// NetworkList возвращает список сетей
NetworkList(ctx context.Context) ([]*net.IPNet, error)
// NextSubnet возвращает адрес следующей незанятой подсети
NextSubnet() (*net.IPNet, error)
// RemoveNetwork удаляет пользовательскую сеть
RemoveNetwork(id string) error
// ContainerCreate создает контейнер
ContainerCreate(ctx context.Context, data Container) (string, error)
// ContainerStart запускает контейнер
ContainerStart(ctx context.Context, id, name string) (*ContainerInfo, error)
// ContainerWait ожидает завершения работы контейнера
ContainerWait(ctx context.Context, id string) (<-chan ContainerStatus, <-chan error)
// ContainerStop останавливает контейнер
ContainerStop(ctx context.Context, id string, timeout time.Duration) error
// StreamLogs подключает вывод логов контейнера
StreamLogs(ctx context.Context, id string, stderr, stdout io.Writer, follow bool) error
// FindImageLocal - осуществляет поиск образа в локальном сторе
FindImageLocal(ctx context.Context, image string) (bool, error)
// PullImage - скачивает образ в локальный стор
PullImage(image string) error
// RemoveImage - удаляет образ из локального стора
RemoveImage(image string)
// BuildImage - собирает образ
BuildImage(data *ImageBuildData) error
// CheckNetwork проверяет существование сети и создает
// ее в случае отсутствия
CheckNetwork(nw, cidr string) (Network, error)
}
Network interface {
// ID возвращает идентификатор сети
ID() string
// Name возвращает имя сети
Name() string
// Gateway возвращает шлюз сети
Gateway() string
// HostIP возвращает адрес хоста
HostIP() string
// NextIP возвращает следующий не занятый IP-адрес сети
NextIP() string
// AddContainer добавляет данные контейнера
AddContainer(info *OrchestratorInfo)
}
)