mirror of
https://github.com/m1k1o/neko-rooms.git
synced 2026-11-03 07:01:35 -06:00
add internal listContainers.
This commit is contained in:
@@ -47,6 +47,25 @@ type RoomManagerCtx struct {
|
||||
client *dockerClient.Client
|
||||
}
|
||||
|
||||
func (manager *RoomManagerCtx) listContainers() ([]dockerTypes.Container, error) {
|
||||
containers, err := manager.client.ContainerList(context.Background(), dockerTypes.ContainerListOptions{})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
result := []dockerTypes.Container{}
|
||||
for _, container := range containers {
|
||||
val, ok := container.Labels["m1k1o.neko_rooms.canary"]
|
||||
if !ok || val != labelCanary {
|
||||
continue
|
||||
}
|
||||
|
||||
result = append(result, container)
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
func (manager *RoomManagerCtx) inspectContainer(id string) (*dockerTypes.ContainerJSON, error) {
|
||||
container, _, err := manager.client.ContainerInspectWithRaw(context.Background(), id, false)
|
||||
if err != nil {
|
||||
@@ -61,22 +80,20 @@ func (manager *RoomManagerCtx) inspectContainer(id string) (*dockerTypes.Contain
|
||||
return &container, nil
|
||||
}
|
||||
|
||||
func (manager *RoomManagerCtx) List() (*[]types.RoomData, error) {
|
||||
containers, err := manager.client.ContainerList(context.Background(), dockerTypes.ContainerListOptions{
|
||||
All: true,
|
||||
})
|
||||
func (manager *RoomManagerCtx) List() ([]types.RoomData, error) {
|
||||
containers, err := manager.listContainers()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
result := []types.RoomData{}
|
||||
for _, container := range containers {
|
||||
manager.logger.Info().
|
||||
Str("id", container.ID[:10]).
|
||||
Str("image", container.Image).
|
||||
Msg("container")
|
||||
result = append(result, types.RoomData{
|
||||
ID: container.ID,
|
||||
})
|
||||
}
|
||||
|
||||
return &[]types.RoomData{}, nil
|
||||
return result, nil
|
||||
}
|
||||
func (manager *RoomManagerCtx) Create(settings types.RoomSettings) (*types.RoomData, error) {
|
||||
// configs
|
||||
|
||||
@@ -71,7 +71,7 @@ type RoomData struct {
|
||||
}
|
||||
|
||||
type RoomManager interface {
|
||||
List() (*[]RoomData, error)
|
||||
List() ([]RoomData, error)
|
||||
Create(settings RoomSettings) (*RoomData, error)
|
||||
Get(id string) (*RoomData, error)
|
||||
Update(id string, settings RoomSettings) error
|
||||
|
||||
Reference in New Issue
Block a user