Cleanup sandbox interfaces

Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
This commit is contained in:
Maksym Pavlenko
2022-10-25 12:31:32 -04:00
parent b9206de760
commit b7d0d12715
14 changed files with 895 additions and 842 deletions

View File

@@ -83,7 +83,7 @@ type controllerLocal struct {
var _ api.ControllerClient = (*controllerLocal)(nil)
func (c *controllerLocal) Start(ctx context.Context, in *api.ControllerStartRequest, opts ...grpc.CallOption) (*api.ControllerStartResponse, error) {
func (c *controllerLocal) Create(ctx context.Context, in *api.ControllerCreateRequest, opts ...grpc.CallOption) (*api.ControllerCreateResponse, error) {
if _, err := c.shims.Get(ctx, in.SandboxID); err == nil {
return nil, fmt.Errorf("sandbox %s already running: %w", in.SandboxID, errdefs.ErrAlreadyExists)
}
@@ -106,13 +106,26 @@ func (c *controllerLocal) Start(ctx context.Context, in *api.ControllerStartRequ
svc := runtimeAPI.NewSandboxClient(shim.Client())
resp, err := svc.StartSandbox(ctx, &runtimeAPI.StartSandboxRequest{
if _, err := svc.CreateSandbox(ctx, &runtimeAPI.CreateSandboxRequest{
SandboxID: in.SandboxID,
BundlePath: shim.Bundle(),
Rootfs: in.Rootfs,
Options: in.Options,
})
}); err != nil {
return nil, fmt.Errorf("failed to start sandbox %s: %w", in.SandboxID, err)
}
return &api.ControllerCreateResponse{SandboxID: in.SandboxID}, nil
}
func (c *controllerLocal) Start(ctx context.Context, in *api.ControllerStartRequest, opts ...grpc.CallOption) (*api.ControllerStartResponse, error) {
shim, err := c.shims.Get(ctx, in.GetSandboxID())
if err != nil {
return nil, fmt.Errorf("unable to find sandbox %q", in.GetSandboxID())
}
svc := runtimeAPI.NewSandboxClient(shim.Client())
resp, err := svc.StartSandbox(ctx, &runtimeAPI.StartSandboxRequest{SandboxID: in.SandboxID})
if err != nil {
return nil, fmt.Errorf("failed to start sandbox %s: %w", in.SandboxID, err)
}
@@ -120,6 +133,7 @@ func (c *controllerLocal) Start(ctx context.Context, in *api.ControllerStartRequ
return &api.ControllerStartResponse{
SandboxID: in.SandboxID,
Pid: resp.Pid,
CreatedAt: resp.CreatedAt,
}, nil
}

View File

@@ -69,6 +69,11 @@ func (s *controllerService) Register(server *grpc.Server) error {
return nil
}
func (s *controllerService) Create(ctx context.Context, req *api.ControllerCreateRequest) (*api.ControllerCreateResponse, error) {
log.G(ctx).WithField("req", req).Debug("create sandbox")
return s.local.Create(ctx, req)
}
func (s *controllerService) Start(ctx context.Context, req *api.ControllerStartRequest) (*api.ControllerStartResponse, error) {
log.G(ctx).WithField("req", req).Debug("start sandbox")
return s.local.Start(ctx, req)