Merge pull request #9911 from dmcgowan/introspection-split
Cleanup introspection interface
This commit is contained in:
@@ -29,7 +29,6 @@ import (
|
||||
containersapi "github.com/containerd/containerd/v2/api/services/containers/v1"
|
||||
diffapi "github.com/containerd/containerd/v2/api/services/diff/v1"
|
||||
imagesapi "github.com/containerd/containerd/v2/api/services/images/v1"
|
||||
introspectionapi "github.com/containerd/containerd/v2/api/services/introspection/v1"
|
||||
leasesapi "github.com/containerd/containerd/v2/api/services/leases/v1"
|
||||
namespacesapi "github.com/containerd/containerd/v2/api/services/namespaces/v1"
|
||||
sandboxsapi "github.com/containerd/containerd/v2/api/services/sandbox/v1"
|
||||
@@ -43,6 +42,8 @@ import (
|
||||
"github.com/containerd/containerd/v2/core/events"
|
||||
eventsproxy "github.com/containerd/containerd/v2/core/events/proxy"
|
||||
"github.com/containerd/containerd/v2/core/images"
|
||||
"github.com/containerd/containerd/v2/core/introspection"
|
||||
introspectionproxy "github.com/containerd/containerd/v2/core/introspection/proxy"
|
||||
"github.com/containerd/containerd/v2/core/leases"
|
||||
leasesproxy "github.com/containerd/containerd/v2/core/leases/proxy"
|
||||
"github.com/containerd/containerd/v2/core/remotes"
|
||||
@@ -55,7 +56,6 @@ import (
|
||||
"github.com/containerd/containerd/v2/pkg/dialer"
|
||||
"github.com/containerd/containerd/v2/pkg/namespaces"
|
||||
"github.com/containerd/containerd/v2/plugins"
|
||||
"github.com/containerd/containerd/v2/plugins/services/introspection"
|
||||
"github.com/containerd/containerd/v2/protobuf"
|
||||
ptypes "github.com/containerd/containerd/v2/protobuf/types"
|
||||
"github.com/containerd/errdefs"
|
||||
@@ -680,7 +680,7 @@ func (c *Client) IntrospectionService() introspection.Service {
|
||||
}
|
||||
c.connMu.Lock()
|
||||
defer c.connMu.Unlock()
|
||||
return introspection.NewIntrospectionServiceFromClient(introspectionapi.NewIntrospectionClient(c.conn))
|
||||
return introspectionproxy.NewIntrospectionProxy(c.conn)
|
||||
}
|
||||
|
||||
// LeasesService returns the underlying Leases Client
|
||||
@@ -785,7 +785,7 @@ func (c *Client) Server(ctx context.Context) (ServerInfo, error) {
|
||||
}
|
||||
c.connMu.Unlock()
|
||||
|
||||
response, err := c.IntrospectionService().Server(ctx, &ptypes.Empty{})
|
||||
response, err := c.IntrospectionService().Server(ctx)
|
||||
if err != nil {
|
||||
return ServerInfo{}, err
|
||||
}
|
||||
@@ -831,7 +831,7 @@ func (c *Client) GetSnapshotterSupportedPlatforms(ctx context.Context, snapshott
|
||||
filters := []string{fmt.Sprintf("type==%s, id==%s", plugins.SnapshotPlugin, snapshotterName)}
|
||||
in := c.IntrospectionService()
|
||||
|
||||
resp, err := in.Plugins(ctx, filters)
|
||||
resp, err := in.Plugins(ctx, filters...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -862,7 +862,7 @@ func (c *Client) GetSnapshotterCapabilities(ctx context.Context, snapshotterName
|
||||
filters := []string{fmt.Sprintf("type==%s, id==%s", plugins.SnapshotPlugin, snapshotterName)}
|
||||
in := c.IntrospectionService()
|
||||
|
||||
resp, err := in.Plugins(ctx, filters)
|
||||
resp, err := in.Plugins(ctx, filters...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -903,20 +903,10 @@ func (c *Client) RuntimeInfo(ctx context.Context, runtimePath string, runtimeOpt
|
||||
return nil, fmt.Errorf("failed to marshal %T: %w", runtimeOptions, err)
|
||||
}
|
||||
}
|
||||
options, err := protobuf.MarshalAnyToProto(rr)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to marshal runtime requst: %w", err)
|
||||
}
|
||||
|
||||
s := c.IntrospectionService()
|
||||
|
||||
req := &introspectionapi.PluginInfoRequest{
|
||||
Type: string(plugins.RuntimePluginV2),
|
||||
ID: "task",
|
||||
Options: options,
|
||||
}
|
||||
|
||||
resp, err := s.PluginInfo(ctx, req)
|
||||
resp, err := s.PluginInfo(ctx, string(plugins.RuntimePluginV2), "task", rr)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -112,8 +112,7 @@ func (c *Client) getInstallPath(ctx context.Context, config InstallConfig) (stri
|
||||
if config.Path != "" {
|
||||
return config.Path, nil
|
||||
}
|
||||
filters := []string{"id==opt"}
|
||||
resp, err := c.IntrospectionService().Plugins(ctx, filters)
|
||||
resp, err := c.IntrospectionService().Plugins(ctx, "id==opt")
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
@@ -22,19 +22,18 @@ import (
|
||||
containersapi "github.com/containerd/containerd/v2/api/services/containers/v1"
|
||||
"github.com/containerd/containerd/v2/api/services/diff/v1"
|
||||
imagesapi "github.com/containerd/containerd/v2/api/services/images/v1"
|
||||
introspectionapi "github.com/containerd/containerd/v2/api/services/introspection/v1"
|
||||
namespacesapi "github.com/containerd/containerd/v2/api/services/namespaces/v1"
|
||||
"github.com/containerd/containerd/v2/api/services/tasks/v1"
|
||||
"github.com/containerd/containerd/v2/core/containers"
|
||||
"github.com/containerd/containerd/v2/core/content"
|
||||
"github.com/containerd/containerd/v2/core/images"
|
||||
"github.com/containerd/containerd/v2/core/introspection"
|
||||
"github.com/containerd/containerd/v2/core/leases"
|
||||
"github.com/containerd/containerd/v2/core/sandbox"
|
||||
"github.com/containerd/containerd/v2/core/snapshots"
|
||||
"github.com/containerd/containerd/v2/pkg/namespaces"
|
||||
"github.com/containerd/containerd/v2/plugins"
|
||||
srv "github.com/containerd/containerd/v2/plugins/services"
|
||||
"github.com/containerd/containerd/v2/plugins/services/introspection"
|
||||
"github.com/containerd/plugin"
|
||||
)
|
||||
|
||||
@@ -150,13 +149,6 @@ func WithLeasesService(leasesService leases.Manager) ServicesOpt {
|
||||
}
|
||||
}
|
||||
|
||||
// WithIntrospectionClient sets the introspection service using an introspection client.
|
||||
func WithIntrospectionClient(in introspectionapi.IntrospectionClient) ServicesOpt {
|
||||
return func(s *services) {
|
||||
s.introspectionService = introspection.NewIntrospectionServiceFromClient(in)
|
||||
}
|
||||
}
|
||||
|
||||
// WithIntrospectionService sets the introspection service.
|
||||
func WithIntrospectionService(in introspection.Service) ServicesOpt {
|
||||
return func(s *services) {
|
||||
@@ -221,7 +213,7 @@ func WithInMemoryServices(ic *plugin.InitContext) Opt {
|
||||
return WithNamespaceClient(s.(namespacesapi.NamespacesClient))
|
||||
},
|
||||
srv.IntrospectionService: func(s interface{}) ServicesOpt {
|
||||
return WithIntrospectionClient(s.(introspectionapi.IntrospectionClient))
|
||||
return WithIntrospectionService(s.(introspection.Service))
|
||||
},
|
||||
} {
|
||||
i := plugins[s]
|
||||
|
||||
Reference in New Issue
Block a user