feat(images): 'uc image ls' and 'uc images' (alias) commands to list images on machines

This commit is contained in:
Pasha Sviderski
2025-10-03 20:53:30 +10:00
parent cce81ecaad
commit 6d2e100d63
6 changed files with 197 additions and 9 deletions
+20 -7
View File
@@ -3,7 +3,7 @@ package api
import (
"context"
"fmt"
"slices"
"strings"
"github.com/docker/docker/api/types/container"
"github.com/docker/docker/api/types/volume"
@@ -70,15 +70,28 @@ func ProxyMachinesContext(
}
var proxiedMachines MachineMembersList
md := metadata.New(nil)
for _, m := range machines {
if len(namesOrIDs) == 0 ||
slices.Contains(namesOrIDs, m.Machine.Name) || slices.Contains(namesOrIDs, m.Machine.Id) {
var notFound []string
for _, nameOrID := range namesOrIDs {
if m := machines.FindByNameOrID(nameOrID); m != nil {
proxiedMachines = append(proxiedMachines, m)
machineIP, _ := m.Machine.Network.ManagementIp.ToAddr()
md.Append("machines", machineIP.String())
} else {
notFound = append(notFound, nameOrID)
}
}
if len(notFound) > 0 {
return nil, nil, fmt.Errorf("machines not found: %s", strings.Join(notFound, ", "))
}
if len(namesOrIDs) == 0 {
proxiedMachines = machines
}
md := metadata.New(nil)
for _, m := range proxiedMachines {
machineIP, _ := m.Machine.Network.ManagementIp.ToAddr()
md.Append("machines", machineIP.String())
}
return metadata.NewOutgoingContext(ctx, md), proxiedMachines, nil
}