Use typeurl.Any instead of github.com/gogo/protobuf/types.Any

This commit upgrades github.com/containerd/typeurl to use typeurl.Any.
The interface hides gogo/protobuf/types.Any from containerd's Go client.

Signed-off-by: Kazuyoshi Kato <katokazu@amazon.com>
This commit is contained in:
Kazuyoshi Kato
2022-03-22 00:40:39 +00:00
parent 551516a18d
commit 96b16b447d
42 changed files with 336 additions and 152 deletions

View File

@@ -19,6 +19,9 @@ package containers
import (
api "github.com/containerd/containerd/api/services/containers/v1"
"github.com/containerd/containerd/containers"
"github.com/containerd/containerd/protobuf"
"github.com/containerd/typeurl"
"github.com/gogo/protobuf/types"
)
func containersToProto(containers []containers.Container) []api.Container {
@@ -33,20 +36,24 @@ func containersToProto(containers []containers.Container) []api.Container {
}
func containerToProto(container *containers.Container) api.Container {
extensions := make(map[string]types.Any)
for k, v := range container.Extensions {
extensions[k] = *protobuf.FromAny(v)
}
return api.Container{
ID: container.ID,
Labels: container.Labels,
Image: container.Image,
Runtime: &api.Container_Runtime{
Name: container.Runtime.Name,
Options: container.Runtime.Options,
Options: protobuf.FromAny(container.Runtime.Options),
},
Spec: container.Spec,
Spec: protobuf.FromAny(container.Spec),
Snapshotter: container.Snapshotter,
SnapshotKey: container.SnapshotKey,
CreatedAt: container.CreatedAt,
UpdatedAt: container.UpdatedAt,
Extensions: container.Extensions,
Extensions: extensions,
}
}
@@ -58,6 +65,11 @@ func containerFromProto(containerpb *api.Container) containers.Container {
Options: containerpb.Runtime.Options,
}
}
extensions := make(map[string]typeurl.Any)
for k, v := range containerpb.Extensions {
v := v
extensions[k] = &v
}
return containers.Container{
ID: containerpb.ID,
Labels: containerpb.Labels,
@@ -66,6 +78,6 @@ func containerFromProto(containerpb *api.Container) containers.Container {
Spec: containerpb.Spec,
Snapshotter: containerpb.Snapshotter,
SnapshotKey: containerpb.SnapshotKey,
Extensions: containerpb.Extensions,
Extensions: extensions,
}
}

View File

@@ -26,6 +26,7 @@ import (
"github.com/containerd/containerd/events"
"github.com/containerd/containerd/events/exchange"
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/protobuf"
"github.com/containerd/ttrpc"
ptypes "github.com/gogo/protobuf/types"
"google.golang.org/grpc"
@@ -115,7 +116,7 @@ func toProto(env *events.Envelope) *api.Envelope {
Timestamp: env.Timestamp,
Namespace: env.Namespace,
Topic: env.Topic,
Event: env.Event,
Event: protobuf.FromAny(env.Event),
}
}

View File

@@ -41,6 +41,7 @@ import (
"github.com/containerd/containerd/mount"
"github.com/containerd/containerd/pkg/timeout"
"github.com/containerd/containerd/plugin"
"github.com/containerd/containerd/protobuf"
"github.com/containerd/containerd/runtime"
"github.com/containerd/containerd/runtime/linux/runctypes"
"github.com/containerd/containerd/runtime/v2/runc/options"
@@ -462,7 +463,7 @@ func (l *local) ListPids(ctx context.Context, r *api.ListPidsRequest, _ ...grpc.
Pid: p.Pid,
}
if p.Info != nil {
a, err := typeurl.MarshalAny(p.Info)
a, err := protobuf.MarshalAnyToProto(p.Info)
if err != nil {
return nil, fmt.Errorf("failed to marshal process %d info: %w", p.Pid, err)
}
@@ -577,7 +578,7 @@ func (l *local) Checkpoint(ctx context.Context, r *api.CheckpointTaskRequest, _
return nil, err
}
// write the config to the content store
data, err := container.Spec.Marshal()
data, err := protobuf.FromAny(container.Spec).Marshal()
if err != nil {
return nil, err
}