Skip to content
This repository has been archived by the owner on May 12, 2021. It is now read-only.

Commit

Permalink
tracing: Add context to virtcontainers API
Browse files Browse the repository at this point in the history
Add a `context.Context` parameter to all the virtcontainers API's to
support tracing.

Signed-off-by: James O. D. Hunt <[email protected]>
  • Loading branch information
jodh-intel committed Aug 22, 2018
1 parent f0073be commit c200b28
Show file tree
Hide file tree
Showing 43 changed files with 902 additions and 744 deletions.
14 changes: 7 additions & 7 deletions cli/create.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,11 +99,11 @@ func create(ctx context.Context, containerID, bundlePath, console, pidFilePath s
defer span.Finish()

kataLog = kataLog.WithField("container", containerID)
setExternalLoggers(kataLog)
setExternalLoggers(ctx, kataLog)
span.SetTag("container", containerID)

// Checks the MUST and MUST NOT from OCI runtime specification
if bundlePath, err = validCreateParams(containerID, bundlePath); err != nil {
if bundlePath, err = validCreateParams(ctx, containerID, bundlePath); err != nil {
return err
}

Expand Down Expand Up @@ -137,7 +137,7 @@ func create(ctx context.Context, containerID, bundlePath, console, pidFilePath s
}
}
if err == nil {
vci.SetFactory(f)
vci.SetFactory(ctx, f)
}
}

Expand Down Expand Up @@ -266,14 +266,14 @@ func createSandbox(ctx context.Context, ociSpec oci.CompatOCISpec, runtimeConfig
return vc.Process{}, err
}

sandbox, err := vci.CreateSandbox(sandboxConfig)
sandbox, err := vci.CreateSandbox(ctx, sandboxConfig)
if err != nil {
return vc.Process{}, err
}

sid := sandbox.ID()
kataLog = kataLog.WithField("sandbox", sid)
setExternalLoggers(kataLog)
setExternalLoggers(ctx, kataLog)
span.SetTag("sandbox", sid)

containers := sandbox.GetAllContainers()
Expand Down Expand Up @@ -321,10 +321,10 @@ func createContainer(ctx context.Context, ociSpec oci.CompatOCISpec, containerID
}

kataLog = kataLog.WithField("sandbox", sandboxID)
setExternalLoggers(kataLog)
setExternalLoggers(ctx, kataLog)
span.SetTag("sandbox", sandboxID)

_, c, err := vci.CreateContainer(sandboxID, contConfig)
_, c, err := vci.CreateContainer(ctx, sandboxID, contConfig)
if err != nil {
return vc.Process{}, err
}
Expand Down
12 changes: 6 additions & 6 deletions cli/create_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,7 @@ func TestCreateInvalidArgs(t *testing.T) {
},
}

testingImpl.CreateSandboxFunc = func(sandboxConfig vc.SandboxConfig) (vc.VCSandbox, error) {
testingImpl.CreateSandboxFunc = func(ctx context.Context, sandboxConfig vc.SandboxConfig) (vc.VCSandbox, error) {
return sandbox, nil
}

Expand Down Expand Up @@ -488,7 +488,7 @@ func TestCreateProcessCgroupsPathSuccessful(t *testing.T) {
defer os.RemoveAll(path)
ctrsMapTreePath = path

testingImpl.CreateSandboxFunc = func(sandboxConfig vc.SandboxConfig) (vc.VCSandbox, error) {
testingImpl.CreateSandboxFunc = func(ctx context.Context, sandboxConfig vc.SandboxConfig) (vc.VCSandbox, error) {
return sandbox, nil
}

Expand Down Expand Up @@ -583,7 +583,7 @@ func TestCreateCreateCgroupsFilesFail(t *testing.T) {
defer os.RemoveAll(path)
ctrsMapTreePath = path

testingImpl.CreateSandboxFunc = func(sandboxConfig vc.SandboxConfig) (vc.VCSandbox, error) {
testingImpl.CreateSandboxFunc = func(ctx context.Context, sandboxConfig vc.SandboxConfig) (vc.VCSandbox, error) {
return sandbox, nil
}

Expand Down Expand Up @@ -668,7 +668,7 @@ func TestCreateCreateCreatePidFileFail(t *testing.T) {
defer os.RemoveAll(path)
ctrsMapTreePath = path

testingImpl.CreateSandboxFunc = func(sandboxConfig vc.SandboxConfig) (vc.VCSandbox, error) {
testingImpl.CreateSandboxFunc = func(ctx context.Context, sandboxConfig vc.SandboxConfig) (vc.VCSandbox, error) {
return sandbox, nil
}

Expand Down Expand Up @@ -739,7 +739,7 @@ func TestCreate(t *testing.T) {
defer os.RemoveAll(path)
ctrsMapTreePath = path

testingImpl.CreateSandboxFunc = func(sandboxConfig vc.SandboxConfig) (vc.VCSandbox, error) {
testingImpl.CreateSandboxFunc = func(ctx context.Context, sandboxConfig vc.SandboxConfig) (vc.VCSandbox, error) {
return sandbox, nil
}

Expand Down Expand Up @@ -1028,7 +1028,7 @@ func TestCreateCreateContainer(t *testing.T) {
defer os.RemoveAll(path)
ctrsMapTreePath = path

testingImpl.CreateContainerFunc = func(sandboxID string, containerConfig vc.ContainerConfig) (vc.VCSandbox, vc.VCContainer, error) {
testingImpl.CreateContainerFunc = func(ctx context.Context, sandboxID string, containerConfig vc.ContainerConfig) (vc.VCSandbox, vc.VCContainer, error) {
return &vcmock.Sandbox{}, &vcmock.Container{}, nil
}

Expand Down
16 changes: 8 additions & 8 deletions cli/delete.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,11 +63,11 @@ func delete(ctx context.Context, containerID string, force bool) error {
defer span.Finish()

kataLog = kataLog.WithField("container", containerID)
setExternalLoggers(kataLog)
setExternalLoggers(ctx, kataLog)
span.SetTag("container", containerID)

// Checks the MUST and MUST NOT from OCI runtime specification
status, sandboxID, err := getExistingContainerInfo(containerID)
status, sandboxID, err := getExistingContainerInfo(ctx, containerID)
if err != nil {
return err
}
Expand All @@ -79,7 +79,7 @@ func delete(ctx context.Context, containerID string, force bool) error {
"sandbox": sandboxID,
})

setExternalLoggers(kataLog)
setExternalLoggers(ctx, kataLog)

span.SetTag("container", containerID)
span.SetTag("sandbox", sandboxID)
Expand Down Expand Up @@ -136,18 +136,18 @@ func deleteSandbox(ctx context.Context, sandboxID string) error {
span, _ := trace(ctx, "deleteSandbox")
defer span.Finish()

status, err := vci.StatusSandbox(sandboxID)
status, err := vci.StatusSandbox(ctx, sandboxID)
if err != nil {
return err
}

if oci.StateToOCIState(status.State) != oci.StateStopped {
if _, err := vci.StopSandbox(sandboxID); err != nil {
if _, err := vci.StopSandbox(ctx, sandboxID); err != nil {
return err
}
}

if _, err := vci.DeleteSandbox(sandboxID); err != nil {
if _, err := vci.DeleteSandbox(ctx, sandboxID); err != nil {
return err
}

Expand All @@ -159,12 +159,12 @@ func deleteContainer(ctx context.Context, sandboxID, containerID string, forceSt
defer span.Finish()

if forceStop {
if _, err := vci.StopContainer(sandboxID, containerID); err != nil {
if _, err := vci.StopContainer(ctx, sandboxID, containerID); err != nil {
return err
}
}

if _, err := vci.DeleteContainer(sandboxID, containerID); err != nil {
if _, err := vci.DeleteContainer(ctx, sandboxID, containerID); err != nil {
return err
}

Expand Down
38 changes: 19 additions & 19 deletions cli/delete_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ func TestDeleteMissingContainerTypeAnnotation(t *testing.T) {
assert.NoError(err)
defer os.RemoveAll(path)

testingImpl.StatusContainerFunc = func(sandboxID, containerID string) (vc.ContainerStatus, error) {
testingImpl.StatusContainerFunc = func(ctx context.Context, sandboxID, containerID string) (vc.ContainerStatus, error) {
return vc.ContainerStatus{
ID: sandbox.ID(),
Annotations: map[string]string{},
Expand All @@ -104,7 +104,7 @@ func TestDeleteInvalidConfig(t *testing.T) {
assert.NoError(err)
defer os.RemoveAll(path)

testingImpl.StatusContainerFunc = func(sandboxID, containerID string) (vc.ContainerStatus, error) {
testingImpl.StatusContainerFunc = func(ctx context.Context, sandboxID, containerID string) (vc.ContainerStatus, error) {
return vc.ContainerStatus{
ID: sandbox.ID(),
Annotations: map[string]string{
Expand Down Expand Up @@ -156,7 +156,7 @@ func TestDeleteSandbox(t *testing.T) {
assert.NoError(err)
defer os.RemoveAll(path)

testingImpl.StatusContainerFunc = func(sandboxID, containerID string) (vc.ContainerStatus, error) {
testingImpl.StatusContainerFunc = func(ctx context.Context, sandboxID, containerID string) (vc.ContainerStatus, error) {
return vc.ContainerStatus{
ID: sandbox.ID(),
Annotations: map[string]string{
Expand All @@ -177,7 +177,7 @@ func TestDeleteSandbox(t *testing.T) {
assert.Error(err)
assert.True(vcmock.IsMockError(err))

testingImpl.StatusSandboxFunc = func(sandboxID string) (vc.SandboxStatus, error) {
testingImpl.StatusSandboxFunc = func(ctx context.Context, sandboxID string) (vc.SandboxStatus, error) {
return vc.SandboxStatus{
ID: sandbox.ID(),
State: vc.State{
Expand All @@ -194,7 +194,7 @@ func TestDeleteSandbox(t *testing.T) {
assert.Error(err)
assert.True(vcmock.IsMockError(err))

testingImpl.StopSandboxFunc = func(sandboxID string) (vc.VCSandbox, error) {
testingImpl.StopSandboxFunc = func(ctx context.Context, sandboxID string) (vc.VCSandbox, error) {
return sandbox, nil
}

Expand All @@ -206,7 +206,7 @@ func TestDeleteSandbox(t *testing.T) {
assert.Error(err)
assert.True(vcmock.IsMockError(err))

testingImpl.DeleteSandboxFunc = func(sandboxID string) (vc.VCSandbox, error) {
testingImpl.DeleteSandboxFunc = func(ctx context.Context, sandboxID string) (vc.VCSandbox, error) {
return sandbox, nil
}

Expand Down Expand Up @@ -234,7 +234,7 @@ func TestDeleteInvalidContainerType(t *testing.T) {
assert.NoError(err)
defer os.RemoveAll(path)

testingImpl.StatusContainerFunc = func(sandboxID, containerID string) (vc.ContainerStatus, error) {
testingImpl.StatusContainerFunc = func(ctx context.Context, sandboxID, containerID string) (vc.ContainerStatus, error) {
return vc.ContainerStatus{
ID: sandbox.ID(),
Annotations: map[string]string{
Expand Down Expand Up @@ -273,7 +273,7 @@ func TestDeleteSandboxRunning(t *testing.T) {
assert.NoError(err)
defer os.RemoveAll(path)

testingImpl.StatusContainerFunc = func(sandboxID, containerID string) (vc.ContainerStatus, error) {
testingImpl.StatusContainerFunc = func(ctx context.Context, sandboxID, containerID string) (vc.ContainerStatus, error) {
return vc.ContainerStatus{
ID: sandbox.ID(),
Annotations: map[string]string{
Expand All @@ -295,7 +295,7 @@ func TestDeleteSandboxRunning(t *testing.T) {
assert.Error(err)
assert.False(vcmock.IsMockError(err))

testingImpl.StatusSandboxFunc = func(sandboxID string) (vc.SandboxStatus, error) {
testingImpl.StatusSandboxFunc = func(ctx context.Context, sandboxID string) (vc.SandboxStatus, error) {
return vc.SandboxStatus{
ID: sandbox.ID(),
State: vc.State{
Expand All @@ -304,7 +304,7 @@ func TestDeleteSandboxRunning(t *testing.T) {
}, nil
}

testingImpl.StopSandboxFunc = func(sandboxID string) (vc.VCSandbox, error) {
testingImpl.StopSandboxFunc = func(ctx context.Context, sandboxID string) (vc.VCSandbox, error) {
return sandbox, nil
}

Expand All @@ -318,7 +318,7 @@ func TestDeleteSandboxRunning(t *testing.T) {
assert.Error(err)
assert.True(vcmock.IsMockError(err))

testingImpl.DeleteSandboxFunc = func(sandboxID string) (vc.VCSandbox, error) {
testingImpl.DeleteSandboxFunc = func(ctx context.Context, sandboxID string) (vc.VCSandbox, error) {
return sandbox, nil
}

Expand Down Expand Up @@ -353,7 +353,7 @@ func TestDeleteRunningContainer(t *testing.T) {
assert.NoError(err)
defer os.RemoveAll(path)

testingImpl.StatusContainerFunc = func(sandboxID, containerID string) (vc.ContainerStatus, error) {
testingImpl.StatusContainerFunc = func(ctx context.Context, sandboxID, containerID string) (vc.ContainerStatus, error) {
return vc.ContainerStatus{
ID: sandbox.MockContainers[0].ID(),
Annotations: map[string]string{
Expand Down Expand Up @@ -397,7 +397,7 @@ func TestDeleteRunningContainer(t *testing.T) {
assert.Error(err)
assert.True(vcmock.IsMockError(err))

testingImpl.DeleteContainerFunc = func(sandboxID, containerID string) (vc.VCContainer, error) {
testingImpl.DeleteContainerFunc = func(ctx context.Context, sandboxID, containerID string) (vc.VCContainer, error) {
return &vcmock.Container{}, nil
}

Expand Down Expand Up @@ -436,7 +436,7 @@ func TestDeleteContainer(t *testing.T) {
assert.NoError(err)
defer os.RemoveAll(path)

testingImpl.StatusContainerFunc = func(sandboxID, containerID string) (vc.ContainerStatus, error) {
testingImpl.StatusContainerFunc = func(ctx context.Context, sandboxID, containerID string) (vc.ContainerStatus, error) {
return vc.ContainerStatus{
ID: sandbox.MockContainers[0].ID(),
Annotations: map[string]string{
Expand Down Expand Up @@ -470,7 +470,7 @@ func TestDeleteContainer(t *testing.T) {
assert.Error(err)
assert.True(vcmock.IsMockError(err))

testingImpl.DeleteContainerFunc = func(sandboxID, containerID string) (vc.VCContainer, error) {
testingImpl.DeleteContainerFunc = func(ctx context.Context, sandboxID, containerID string) (vc.VCContainer, error) {
return &vcmock.Container{}, nil
}

Expand Down Expand Up @@ -536,7 +536,7 @@ func TestDeleteCLIFunctionSuccess(t *testing.T) {
assert.NoError(err)
defer os.RemoveAll(path)

testingImpl.StatusContainerFunc = func(sandboxID, containerID string) (vc.ContainerStatus, error) {
testingImpl.StatusContainerFunc = func(ctx context.Context, sandboxID, containerID string) (vc.ContainerStatus, error) {
return vc.ContainerStatus{
ID: sandbox.ID(),
Annotations: map[string]string{
Expand All @@ -549,7 +549,7 @@ func TestDeleteCLIFunctionSuccess(t *testing.T) {
}, nil
}

testingImpl.StatusSandboxFunc = func(sandboxID string) (vc.SandboxStatus, error) {
testingImpl.StatusSandboxFunc = func(ctx context.Context, sandboxID string) (vc.SandboxStatus, error) {
return vc.SandboxStatus{
ID: sandbox.ID(),
State: vc.State{
Expand All @@ -558,11 +558,11 @@ func TestDeleteCLIFunctionSuccess(t *testing.T) {
}, nil
}

testingImpl.StopSandboxFunc = func(sandboxID string) (vc.VCSandbox, error) {
testingImpl.StopSandboxFunc = func(ctx context.Context, sandboxID string) (vc.VCSandbox, error) {
return sandbox, nil
}

testingImpl.DeleteSandboxFunc = func(sandboxID string) (vc.VCSandbox, error) {
testingImpl.DeleteSandboxFunc = func(ctx context.Context, sandboxID string) (vc.VCSandbox, error) {
return sandbox, nil
}

Expand Down
10 changes: 5 additions & 5 deletions cli/events.go
Original file line number Diff line number Diff line change
Expand Up @@ -150,15 +150,15 @@ information is displayed once every 5 seconds.`,
}

kataLog = kataLog.WithField("container", containerID)
setExternalLoggers(kataLog)
setExternalLoggers(ctx, kataLog)
span.SetTag("container", containerID)

duration := context.Duration("interval")
if duration <= 0 {
return fmt.Errorf("duration interval must be greater than 0")
}

status, sandboxID, err := getExistingContainerInfo(containerID)
status, sandboxID, err := getExistingContainerInfo(ctx, containerID)
if err != nil {
return err
}
Expand All @@ -170,7 +170,7 @@ information is displayed once every 5 seconds.`,
"sandbox": sandboxID,
})

setExternalLoggers(kataLog)
setExternalLoggers(ctx, kataLog)
span.SetTag("container", containerID)
span.SetTag("sandbox", sandboxID)

Expand All @@ -195,7 +195,7 @@ information is displayed once every 5 seconds.`,
}()

if context.Bool("stats") {
s, err := vci.StatsContainer(sandboxID, containerID)
s, err := vci.StatsContainer(ctx, sandboxID, containerID)
if err != nil {
return err
}
Expand All @@ -207,7 +207,7 @@ information is displayed once every 5 seconds.`,

go func() {
for range time.Tick(context.Duration("interval")) {
s, err := vci.StatsContainer(sandboxID, containerID)
s, err := vci.StatsContainer(ctx, sandboxID, containerID)
if err != nil {
logrus.Error(err)
continue
Expand Down
Loading

0 comments on commit c200b28

Please sign in to comment.