Platforms: Add From/ToProto helpers for types

Helpers to convert from a slice of platforms to our protobuf representation
and vice-versa appear a couple times. It seems sane to just expose this facility
in the platforms pkg.

Signed-off-by: Danny Canter <danny@dcantah.dev>
This commit is contained in:
Danny Canter
2023-06-28 15:12:30 -07:00
parent b3ab1f26c4
commit f3b7436b61
4 changed files with 33 additions and 46 deletions

View File

@@ -24,9 +24,9 @@ import (
"sync"
api "github.com/containerd/containerd/api/services/introspection/v1"
"github.com/containerd/containerd/api/types"
"github.com/containerd/containerd/errdefs"
"github.com/containerd/containerd/filters"
"github.com/containerd/containerd/platforms"
"github.com/containerd/containerd/plugin"
ptypes "github.com/containerd/containerd/protobuf/types"
"github.com/containerd/containerd/services"
@@ -189,15 +189,6 @@ func adaptPlugin(o interface{}) filters.Adaptor {
func pluginsToPB(plugins []*plugin.Plugin) []*api.Plugin {
var pluginsPB []*api.Plugin
for _, p := range plugins {
var platforms []*types.Platform
for _, p := range p.Meta.Platforms {
platforms = append(platforms, &types.Platform{
OS: p.OS,
Architecture: p.Architecture,
Variant: p.Variant,
})
}
var requires []string
for _, r := range p.Registration.Requires {
requires = append(requires, r.String())
@@ -231,7 +222,7 @@ func pluginsToPB(plugins []*plugin.Plugin) []*api.Plugin {
Type: p.Registration.Type.String(),
ID: p.Registration.ID,
Requires: requires,
Platforms: platforms,
Platforms: platforms.ToProto(p.Meta.Platforms),
Capabilities: p.Meta.Capabilities,
Exports: p.Meta.Exports,
InitErr: initErr,