Update windows for plugin interfaces
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
package windows
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"sync"
|
||||
@@ -10,10 +11,10 @@ import (
|
||||
|
||||
"github.com/containerd/containerd"
|
||||
"github.com/containerd/containerd/log"
|
||||
"github.com/containerd/containerd/plugin"
|
||||
"github.com/containerd/containerd/windows/hcs"
|
||||
specs "github.com/opencontainers/runtime-spec/specs-go"
|
||||
"github.com/pkg/errors"
|
||||
"golang.org/x/net/context"
|
||||
winsys "golang.org/x/sys/windows"
|
||||
)
|
||||
|
||||
@@ -33,7 +34,7 @@ func loadContainers(ctx context.Context, h *hcs.HCS, sendEvent eventCallback) ([
|
||||
for _, c := range hCtr {
|
||||
containers = append(containers, &container{
|
||||
ctr: c,
|
||||
status: containerd.RunningStatus,
|
||||
status: plugin.RunningStatus,
|
||||
sendEvent: sendEvent,
|
||||
})
|
||||
}
|
||||
@@ -41,7 +42,7 @@ func loadContainers(ctx context.Context, h *hcs.HCS, sendEvent eventCallback) ([
|
||||
return containers, nil
|
||||
}
|
||||
|
||||
func newContainer(ctx context.Context, h *hcs.HCS, id string, spec RuntimeSpec, io containerd.IO, sendEvent eventCallback) (*container, error) {
|
||||
func newContainer(ctx context.Context, h *hcs.HCS, id string, spec RuntimeSpec, io plugin.IO, sendEvent eventCallback) (*container, error) {
|
||||
cio, err := hcs.NewIO(io.Stdin, io.Stdout, io.Stderr, io.Terminal)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -55,22 +56,21 @@ func newContainer(ctx context.Context, h *hcs.HCS, id string, spec RuntimeSpec,
|
||||
|
||||
return &container{
|
||||
ctr: hcsCtr,
|
||||
status: containerd.CreatedStatus,
|
||||
status: plugin.CreatedStatus,
|
||||
sendEvent: sendEvent,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// container implements both containerd.Container and containerd.State
|
||||
type container struct {
|
||||
sync.Mutex
|
||||
|
||||
ctr *hcs.Container
|
||||
status containerd.Status
|
||||
status plugin.Status
|
||||
sendEvent eventCallback
|
||||
}
|
||||
|
||||
func (c *container) Info() containerd.ContainerInfo {
|
||||
return containerd.ContainerInfo{
|
||||
func (c *container) Info() plugin.ContainerInfo {
|
||||
return plugin.ContainerInfo{
|
||||
ID: c.ctr.ID(),
|
||||
Runtime: runtimeName,
|
||||
}
|
||||
@@ -86,7 +86,7 @@ func (c *container) Start(ctx context.Context) error {
|
||||
return err
|
||||
}
|
||||
|
||||
c.setStatus(containerd.RunningStatus)
|
||||
c.setStatus(plugin.RunningStatus)
|
||||
c.sendEvent(c.ctr.ID(), containerd.StartEvent, c.ctr.Pid(), 0, time.Time{})
|
||||
|
||||
// Wait for our process to terminate
|
||||
@@ -95,7 +95,7 @@ func (c *container) Start(ctx context.Context) error {
|
||||
if err != nil {
|
||||
log.G(ctx).Debug(err)
|
||||
}
|
||||
c.setStatus(containerd.StoppedStatus)
|
||||
c.setStatus(plugin.StoppedStatus)
|
||||
c.sendEvent(c.ctr.ID(), containerd.ExitEvent, c.ctr.Pid(), ec, c.ctr.Processes()[0].ExitedAt())
|
||||
}()
|
||||
|
||||
@@ -116,7 +116,7 @@ func (c *container) Resume(ctx context.Context) error {
|
||||
return c.ctr.Resume()
|
||||
}
|
||||
|
||||
func (c *container) State(ctx context.Context) (containerd.State, error) {
|
||||
func (c *container) State(ctx context.Context) (plugin.State, error) {
|
||||
return c, nil
|
||||
}
|
||||
|
||||
@@ -127,7 +127,7 @@ func (c *container) Kill(ctx context.Context, signal uint32, all bool) error {
|
||||
return c.ctr.Stop(ctx)
|
||||
}
|
||||
|
||||
func (c *container) Exec(ctx context.Context, opts containerd.ExecOpts) (containerd.Process, error) {
|
||||
func (c *container) Exec(ctx context.Context, opts plugin.ExecOpts) (plugin.Process, error) {
|
||||
if c.ctr.Pid() == 0 {
|
||||
return nil, ErrLoadedContainer
|
||||
}
|
||||
@@ -162,11 +162,11 @@ func (c *container) CloseStdin(ctx context.Context, pid uint32) error {
|
||||
return c.ctr.CloseStdin(ctx, pid)
|
||||
}
|
||||
|
||||
func (c *container) Pty(ctx context.Context, pid uint32, size containerd.ConsoleSize) error {
|
||||
func (c *container) Pty(ctx context.Context, pid uint32, size plugin.ConsoleSize) error {
|
||||
return c.ctr.Pty(ctx, pid, size)
|
||||
}
|
||||
|
||||
func (c *container) Status() containerd.Status {
|
||||
func (c *container) Status() plugin.Status {
|
||||
return c.getStatus()
|
||||
}
|
||||
|
||||
@@ -174,13 +174,13 @@ func (c *container) Pid() uint32 {
|
||||
return c.ctr.Pid()
|
||||
}
|
||||
|
||||
func (c *container) setStatus(status containerd.Status) {
|
||||
func (c *container) setStatus(status plugin.Status) {
|
||||
c.Lock()
|
||||
c.status = status
|
||||
c.Unlock()
|
||||
}
|
||||
|
||||
func (c *container) getStatus() containerd.Status {
|
||||
func (c *container) getStatus() plugin.Status {
|
||||
c.Lock()
|
||||
defer c.Unlock()
|
||||
return c.status
|
||||
|
Reference in New Issue
Block a user