Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cmd/crio/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ func main() {
notifySystem()

go func() {
crioServer.StartExitMonitor()
crioServer.StartExitMonitor(ctx)
}()
hookSync := make(chan error, 2)
if crioServer.ContainerServer.Hooks == nil {
Expand Down
20 changes: 10 additions & 10 deletions internal/lib/container_server.go
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ func New(ctx context.Context, configIface libconfig.Iface) (*ContainerServer, er
}

// LoadSandbox loads a sandbox from the disk into the sandbox store
func (c *ContainerServer) LoadSandbox(id string) (retErr error) {
func (c *ContainerServer) LoadSandbox(ctx context.Context, id string) (retErr error) {
config, err := c.store.FromContainerDirectory(id, "config.json")
if err != nil {
return err
Expand Down Expand Up @@ -298,13 +298,13 @@ func (c *ContainerServer) LoadSandbox(id string) (retErr error) {
scontainer = oci.NewSpoofedContainer(cID, cname, labels, created, sandboxPath)
}

if err := c.ContainerStateFromDisk(scontainer); err != nil {
if err := c.ContainerStateFromDisk(ctx, scontainer); err != nil {
return fmt.Errorf("error reading sandbox state from disk %q: %v", scontainer.ID(), err)
}

// We write back the state because it is possible that crio did not have a chance to
// read the exit file and persist exit code into the state on reboot.
if err := c.ContainerStateToDisk(scontainer); err != nil {
if err := c.ContainerStateToDisk(ctx, scontainer); err != nil {
return fmt.Errorf("failed to write container %q state to disk: %v", scontainer.ID(), err)
}

Expand Down Expand Up @@ -376,7 +376,7 @@ func configNsPath(spec *rspec.Spec, nsType rspec.LinuxNamespaceType) (string, er
var ErrIsNonCrioContainer = errors.New("non CRI-O container")

// LoadContainer loads a container from the disk into the container store
func (c *ContainerServer) LoadContainer(id string) (retErr error) {
func (c *ContainerServer) LoadContainer(ctx context.Context, id string) (retErr error) {
config, err := c.store.FromContainerDirectory(id, "config.json")
if err != nil {
return err
Expand Down Expand Up @@ -464,13 +464,13 @@ func (c *ContainerServer) LoadContainer(id string) (retErr error) {
spp := m.Annotations[annotations.SeccompProfilePath]
ctr.SetSeccompProfilePath(spp)

if err := c.ContainerStateFromDisk(ctr); err != nil {
if err := c.ContainerStateFromDisk(ctx, ctr); err != nil {
return fmt.Errorf("error reading container state from disk %q: %v", ctr.ID(), err)
}

// We write back the state because it is possible that crio did not have a chance to
// read the exit file and persist exit code into the state on reboot.
if err := c.ContainerStateToDisk(ctr); err != nil {
if err := c.ContainerStateToDisk(ctx, ctr); err != nil {
return fmt.Errorf("failed to write container state to disk %q: %v", ctr.ID(), err)
}
ctr.SetCreated()
Expand All @@ -486,11 +486,11 @@ func isTrue(annotaton string) bool {

// ContainerStateFromDisk retrieves information on the state of a running container
// from the disk
func (c *ContainerServer) ContainerStateFromDisk(ctr *oci.Container) error {
func (c *ContainerServer) ContainerStateFromDisk(ctx context.Context, ctr *oci.Container) error {
if err := ctr.FromDisk(); err != nil {
return err
}
if err := c.runtime.UpdateContainerStatus(ctr); err != nil {
if err := c.runtime.UpdateContainerStatus(ctx, ctr); err != nil {
return err
}

Expand All @@ -499,8 +499,8 @@ func (c *ContainerServer) ContainerStateFromDisk(ctr *oci.Container) error {

// ContainerStateToDisk writes the container's state information to a JSON file
// on disk
func (c *ContainerServer) ContainerStateToDisk(ctr *oci.Container) error {
if err := c.Runtime().UpdateContainerStatus(ctr); err != nil {
func (c *ContainerServer) ContainerStateToDisk(ctx context.Context, ctr *oci.Container) error {
if err := c.Runtime().UpdateContainerStatus(ctx, ctr); err != nil {
logrus.Warnf("error updating the container status %q: %v", ctr.ID(), err)
}

Expand Down
52 changes: 26 additions & 26 deletions internal/lib/container_server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ var _ = t.Describe("ContainerServer", func() {
mockDirs(testManifest)

// When
err := sut.LoadSandbox("id")
err := sut.LoadSandbox(context.Background(), "id")

// Then
Expect(err).To(BeNil())
Expand All @@ -181,7 +181,7 @@ var _ = t.Describe("ContainerServer", func() {
mockDirs(manifest)

// When
err := sut.LoadSandbox("id")
err := sut.LoadSandbox(context.Background(), "id")

// Then
Expect(err).To(BeNil())
Expand All @@ -197,7 +197,7 @@ var _ = t.Describe("ContainerServer", func() {
mockDirs(manifest)

// When
err := sut.LoadSandbox("id")
err := sut.LoadSandbox(context.Background(), "id")

// Then
Expect(err).To(BeNil())
Expand All @@ -208,7 +208,7 @@ var _ = t.Describe("ContainerServer", func() {
mockDirs(testManifest)

// When
err := sut.LoadSandbox("")
err := sut.LoadSandbox(context.Background(), "")

// Then
Expect(err).NotTo(BeNil())
Expand All @@ -223,7 +223,7 @@ var _ = t.Describe("ContainerServer", func() {
mockDirs(manifest)

// When
err := sut.LoadSandbox("id")
err := sut.LoadSandbox(context.Background(), "id")

// Then
Expect(err).NotTo(BeNil())
Expand All @@ -238,7 +238,7 @@ var _ = t.Describe("ContainerServer", func() {
mockDirs(manifest)

// When
err := sut.LoadSandbox("id")
err := sut.LoadSandbox(context.Background(), "id")

// Then
Expect(err).NotTo(BeNil())
Expand All @@ -257,7 +257,7 @@ var _ = t.Describe("ContainerServer", func() {
)

// When
err := sut.LoadSandbox("id")
err := sut.LoadSandbox(context.Background(), "id")

// Then
Expect(err).NotTo(BeNil())
Expand All @@ -274,7 +274,7 @@ var _ = t.Describe("ContainerServer", func() {
)

// When
err := sut.LoadSandbox("id")
err := sut.LoadSandbox(context.Background(), "id")

// Then
Expect(err).NotTo(BeNil())
Expand All @@ -293,7 +293,7 @@ var _ = t.Describe("ContainerServer", func() {
)

// When
err := sut.LoadSandbox("id")
err := sut.LoadSandbox(context.Background(), "id")

// Then
Expect(err).NotTo(BeNil())
Expand All @@ -312,7 +312,7 @@ var _ = t.Describe("ContainerServer", func() {
)

// When
err := sut.LoadSandbox("id")
err := sut.LoadSandbox(context.Background(), "id")

// Then
Expect(err).NotTo(BeNil())
Expand All @@ -331,7 +331,7 @@ var _ = t.Describe("ContainerServer", func() {
)

// When
err := sut.LoadSandbox("id")
err := sut.LoadSandbox(context.Background(), "id")

// Then
Expect(err).NotTo(BeNil())
Expand All @@ -350,7 +350,7 @@ var _ = t.Describe("ContainerServer", func() {
)

// When
err := sut.LoadSandbox("id")
err := sut.LoadSandbox(context.Background(), "id")

// Then
Expect(err).NotTo(BeNil())
Expand All @@ -369,7 +369,7 @@ var _ = t.Describe("ContainerServer", func() {
)

// When
err := sut.LoadSandbox("id")
err := sut.LoadSandbox(context.Background(), "id")

// Then
Expect(err).NotTo(BeNil())
Expand All @@ -388,7 +388,7 @@ var _ = t.Describe("ContainerServer", func() {
)

// When
err := sut.LoadSandbox("id")
err := sut.LoadSandbox(context.Background(), "id")

// Then
Expect(err).NotTo(BeNil())
Expand All @@ -403,7 +403,7 @@ var _ = t.Describe("ContainerServer", func() {
)

// When
err := sut.LoadSandbox("id")
err := sut.LoadSandbox(context.Background(), "id")

// Then
Expect(err).NotTo(BeNil())
Expand All @@ -418,7 +418,7 @@ var _ = t.Describe("ContainerServer", func() {
mockDirs(testManifest)

// When
err := sut.LoadContainer("id")
err := sut.LoadContainer(context.Background(), "id")

// Then
Expect(err).To(BeNil())
Expand All @@ -433,7 +433,7 @@ var _ = t.Describe("ContainerServer", func() {
)

// When
err := sut.LoadContainer("id")
err := sut.LoadContainer(context.Background(), "id")

// Then
Expect(err).NotTo(BeNil())
Expand All @@ -451,7 +451,7 @@ var _ = t.Describe("ContainerServer", func() {
)

// When
err := sut.LoadContainer("id")
err := sut.LoadContainer(context.Background(), "id")

// Then
Expect(err).NotTo(BeNil())
Expand All @@ -471,7 +471,7 @@ var _ = t.Describe("ContainerServer", func() {
)

// When
err := sut.LoadContainer("id")
err := sut.LoadContainer(context.Background(), "id")

// Then
Expect(err).NotTo(BeNil())
Expand All @@ -486,7 +486,7 @@ var _ = t.Describe("ContainerServer", func() {
)

// When
err := sut.LoadContainer("id")
err := sut.LoadContainer(context.Background(), "id")

// Then
Expect(err).NotTo(BeNil())
Expand All @@ -505,7 +505,7 @@ var _ = t.Describe("ContainerServer", func() {
)

// When
err := sut.LoadContainer("id")
err := sut.LoadContainer(context.Background(), "id")

// Then
Expect(err).NotTo(BeNil())
Expand All @@ -524,7 +524,7 @@ var _ = t.Describe("ContainerServer", func() {
)

// When
err := sut.LoadContainer("id")
err := sut.LoadContainer(context.Background(), "id")

// Then
Expect(err).NotTo(BeNil())
Expand All @@ -543,7 +543,7 @@ var _ = t.Describe("ContainerServer", func() {
)

// When
err := sut.LoadContainer("id")
err := sut.LoadContainer(context.Background(), "id")

// Then
Expect(err).NotTo(BeNil())
Expand All @@ -563,7 +563,7 @@ var _ = t.Describe("ContainerServer", func() {
)

// When
err := sut.LoadContainer("id")
err := sut.LoadContainer(context.Background(), "id")

// Then
Expect(err).To(Equal(lib.ErrIsNonCrioContainer))
Expand All @@ -574,7 +574,7 @@ var _ = t.Describe("ContainerServer", func() {
It("should fail when file not found", func() {
// Given
// When
err := sut.ContainerStateFromDisk(myContainer)
err := sut.ContainerStateFromDisk(context.Background(), myContainer)

// Then
Expect(err).NotTo(BeNil())
Expand All @@ -592,7 +592,7 @@ var _ = t.Describe("ContainerServer", func() {
Expect(err).To(BeNil())

// When
err = sut.ContainerStateToDisk(container)
err = sut.ContainerStateToDisk(context.Background(), container)

// Then
Expect(err).NotTo(BeNil())
Expand Down
9 changes: 5 additions & 4 deletions internal/lib/kill.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package lib

import (
"context"
"syscall"

"github.com/cri-o/cri-o/internal/oci"
Expand All @@ -9,12 +10,12 @@ import (
)

// ContainerKill sends the user provided signal to the containers primary process.
func (c *ContainerServer) ContainerKill(container string, killSignal syscall.Signal) (string, error) {
func (c *ContainerServer) ContainerKill(ctx context.Context, container string, killSignal syscall.Signal) (string, error) {
ctr, err := c.LookupContainer(container)
if err != nil {
return "", errors.Wrapf(err, "failed to find container %s", container)
}
if err := c.runtime.UpdateContainerStatus(ctr); err != nil {
if err := c.runtime.UpdateContainerStatus(ctx, ctr); err != nil {
logrus.Warnf("unable to update containers %s status: %v", ctr.ID(), err)
}
cStatus := ctr.State()
Expand All @@ -24,11 +25,11 @@ func (c *ContainerServer) ContainerKill(container string, killSignal syscall.Sig
return "", errors.Errorf("cannot kill container %s: it is not running", container)
}

if err := c.runtime.SignalContainer(ctr, killSignal); err != nil {
if err := c.runtime.SignalContainer(ctx, ctr, killSignal); err != nil {
return "", err
}

if err := c.ContainerStateToDisk(ctr); err != nil {
if err := c.ContainerStateToDisk(ctx, ctr); err != nil {
logrus.Warnf("unable to write containers %s state to disk: %v", ctr.ID(), err)
}
return ctr.ID(), nil
Expand Down
3 changes: 2 additions & 1 deletion internal/lib/kill_test.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package lib_test

import (
"context"
"syscall"

. "github.com/onsi/ginkgo"
Expand All @@ -16,7 +17,7 @@ var _ = t.Describe("ContainerServer", func() {
It("should fail when not found", func() {
// Given
// When
res, err := sut.ContainerKill("", syscall.SIGINT)
res, err := sut.ContainerKill(context.Background(), "", syscall.SIGINT)

// Then
Expect(err).NotTo(BeNil())
Expand Down
Loading