diff --git a/cmd/uncloud/service/inspect.go b/cmd/uncloud/service/inspect.go index c852ea8b..c37f3b75 100644 --- a/cmd/uncloud/service/inspect.go +++ b/cmd/uncloud/service/inspect.go @@ -58,9 +58,9 @@ func inspect(ctx context.Context, uncli *cli.CLI, opts inspectOptions) error { machinesNamesByID[m.Machine.Id] = m.Machine.Name } - fmt.Printf("ID: %s\n", svc.ID) - fmt.Printf("Name: %s\n", svc.Name) - fmt.Printf("Mode: %s\n", svc.Mode) + fmt.Printf("Service ID: %s\n", svc.ID) + fmt.Printf("Name: %s\n", svc.Name) + fmt.Printf("Mode: %s\n", svc.Mode) fmt.Println() // Print the list of containers in a table format. diff --git a/pkg/client/container.go b/pkg/client/container.go index ba2a7f80..41610a31 100644 --- a/pkg/client/container.go +++ b/pkg/client/container.go @@ -10,6 +10,7 @@ import ( "github.com/docker/compose/v2/pkg/progress" "github.com/docker/docker/api/types/container" "github.com/docker/docker/pkg/jsonmessage" + "github.com/docker/docker/pkg/stringid" "github.com/psviderski/uncloud/internal/docker" machinedocker "github.com/psviderski/uncloud/internal/machine/docker" "github.com/psviderski/uncloud/internal/secret" @@ -199,6 +200,7 @@ func toPullProgressEvent(jm jsonmessage.JSONMessage) *progress.Event { } // InspectContainer returns the information about the specified container within the service. +// containerNameOrID can be name, ID, or truncated ID of the container. func (cli *Client) InspectContainer( ctx context.Context, serviceNameOrID, containerNameOrID string, ) (api.MachineServiceContainer, error) { @@ -207,8 +209,11 @@ func (cli *Client) InspectContainer( return api.MachineServiceContainer{}, fmt.Errorf("inspect service: %w", err) } + // TODO: support matching by any prefix of the container ID for _, c := range svc.Containers { - if c.Container.ID == containerNameOrID || c.Container.Name == containerNameOrID { + if c.Container.ID == containerNameOrID || + c.Container.Name == containerNameOrID || + stringid.TruncateID(c.Container.ID) == containerNameOrID { return c, nil } }