mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-04-29 04:04:45 +00:00
virtcontainers: Fix missing contexts in s390x
#1389 has added a context for many signatures to improve trace spans. Functions specific to s390x lack this. Add context where required. This affects some common code signatures, since some functions that do not require context on other architectures do require it on s390x. Also remove an unnecessary import in test_qemu_s390x.go. Fixes: #1562 Signed-off-by: Jakob Naucke <jakob.naucke@ibm.com>
This commit is contained in:
parent
594c47ab6c
commit
31ced01eba
@ -346,14 +346,14 @@ func (q *qemu) getQemuMachine() (govmmQemu.Machine, error) {
|
||||
return machine, nil
|
||||
}
|
||||
|
||||
func (q *qemu) appendImage(devices []govmmQemu.Device) ([]govmmQemu.Device, error) {
|
||||
func (q *qemu) appendImage(ctx context.Context, devices []govmmQemu.Device) ([]govmmQemu.Device, error) {
|
||||
imagePath, err := q.config.ImageAssetPath()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if imagePath != "" {
|
||||
devices, err = q.arch.appendImage(devices, imagePath)
|
||||
devices, err = q.arch.appendImage(ctx, devices, imagePath)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -395,13 +395,13 @@ func (q *qemu) buildDevices(ctx context.Context, initrdPath string) ([]govmmQemu
|
||||
// bridge gets the first available PCI address i.e bridgePCIStartAddr
|
||||
devices = q.arch.appendBridges(devices)
|
||||
|
||||
devices, err = q.arch.appendConsole(devices, console)
|
||||
devices, err = q.arch.appendConsole(ctx, devices, console)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
if initrdPath == "" {
|
||||
devices, err = q.appendImage(devices)
|
||||
devices, err = q.appendImage(ctx, devices)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
@ -421,7 +421,7 @@ func (q *qemu) buildDevices(ctx context.Context, initrdPath string) ([]govmmQemu
|
||||
|
||||
var ioThread *govmmQemu.IOThread
|
||||
if q.config.BlockDeviceDriver == config.VirtioSCSI {
|
||||
return q.arch.appendSCSIController(devices, q.config.EnableIOThreads)
|
||||
return q.arch.appendSCSIController(ctx, devices, q.config.EnableIOThreads)
|
||||
}
|
||||
|
||||
return devices, ioThread, nil
|
||||
@ -611,7 +611,7 @@ func (q *qemu) createSandbox(ctx context.Context, id string, networkNS NetworkNa
|
||||
ID: rngID,
|
||||
Filename: q.config.EntropySource,
|
||||
}
|
||||
qemuConfig.Devices, err = q.arch.appendRNGDevice(qemuConfig.Devices, rngDev)
|
||||
qemuConfig.Devices, err = q.arch.appendRNGDevice(ctx, qemuConfig.Devices, rngDev)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -1882,17 +1882,17 @@ func (q *qemu) addDevice(ctx context.Context, devInfo interface{}, devType devic
|
||||
q.qemuConfig.Devices, err = q.arch.appendVhostUserDevice(q.qemuConfig.Devices, vhostDev)
|
||||
} else {
|
||||
q.Logger().WithField("volume-type", "virtio-9p").Info("adding volume")
|
||||
q.qemuConfig.Devices, err = q.arch.append9PVolume(q.qemuConfig.Devices, v)
|
||||
q.qemuConfig.Devices, err = q.arch.append9PVolume(ctx, q.qemuConfig.Devices, v)
|
||||
}
|
||||
case types.Socket:
|
||||
q.qemuConfig.Devices = q.arch.appendSocket(q.qemuConfig.Devices, v)
|
||||
case types.VSock:
|
||||
q.fds = append(q.fds, v.VhostFd)
|
||||
q.qemuConfig.Devices, err = q.arch.appendVSock(q.qemuConfig.Devices, v)
|
||||
q.qemuConfig.Devices, err = q.arch.appendVSock(ctx, q.qemuConfig.Devices, v)
|
||||
case Endpoint:
|
||||
q.qemuConfig.Devices, err = q.arch.appendNetwork(q.qemuConfig.Devices, v)
|
||||
q.qemuConfig.Devices, err = q.arch.appendNetwork(ctx, q.qemuConfig.Devices, v)
|
||||
case config.BlockDrive:
|
||||
q.qemuConfig.Devices, err = q.arch.appendBlockDevice(q.qemuConfig.Devices, v)
|
||||
q.qemuConfig.Devices, err = q.arch.appendBlockDevice(ctx, q.qemuConfig.Devices, v)
|
||||
case config.VhostUserDeviceAttrs:
|
||||
q.qemuConfig.Devices, err = q.arch.appendVhostUserDevice(q.qemuConfig.Devices, v)
|
||||
case config.VFIODev:
|
||||
|
@ -6,6 +6,7 @@
|
||||
package virtcontainers
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
@ -179,11 +180,11 @@ func (q *qemuAmd64) supportGuestMemoryHotplug() bool {
|
||||
return q.qemuMachine.Type != govmmQemu.MachineTypeMicrovm
|
||||
}
|
||||
|
||||
func (q *qemuAmd64) appendImage(devices []govmmQemu.Device, path string) ([]govmmQemu.Device, error) {
|
||||
func (q *qemuAmd64) appendImage(ctx context.Context, devices []govmmQemu.Device, path string) ([]govmmQemu.Device, error) {
|
||||
if !q.disableNvdimm {
|
||||
return q.appendNvdimmImage(devices, path)
|
||||
}
|
||||
return q.appendBlockImage(devices, path)
|
||||
return q.appendBlockImage(ctx, devices, path)
|
||||
}
|
||||
|
||||
// appendBridges appends to devices the given bridges
|
||||
|
@ -6,6 +6,7 @@
|
||||
package virtcontainers
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
@ -155,7 +156,7 @@ func TestQemuAmd64AppendImage(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
devices, err := amd64.appendImage(nil, f.Name())
|
||||
devices, err := amd64.appendImage(context.Background(), nil, f.Name())
|
||||
assert.NoError(err)
|
||||
assert.Equal(expectedOut, devices)
|
||||
|
||||
@ -168,7 +169,7 @@ func TestQemuAmd64AppendImage(t *testing.T) {
|
||||
assert.NotContains(amd64.machine().Options, qemuNvdimmOption)
|
||||
|
||||
found := false
|
||||
devices, err = amd64.appendImage(nil, f.Name())
|
||||
devices, err = amd64.appendImage(context.Background(), nil, f.Name())
|
||||
assert.NoError(err)
|
||||
for _, d := range devices {
|
||||
if b, ok := d.(govmmQemu.BlockDevice); ok {
|
||||
|
@ -63,37 +63,37 @@ type qemuArch interface {
|
||||
memoryTopology(memoryMb, hostMemoryMb uint64, slots uint8) govmmQemu.Memory
|
||||
|
||||
// appendConsole appends a console to devices
|
||||
appendConsole(devices []govmmQemu.Device, path string) ([]govmmQemu.Device, error)
|
||||
appendConsole(ctx context.Context, devices []govmmQemu.Device, path string) ([]govmmQemu.Device, error)
|
||||
|
||||
// appendImage appends an image to devices
|
||||
appendImage(devices []govmmQemu.Device, path string) ([]govmmQemu.Device, error)
|
||||
appendImage(ctx context.Context, devices []govmmQemu.Device, path string) ([]govmmQemu.Device, error)
|
||||
|
||||
// appendBlockImage appends an image as block device
|
||||
appendBlockImage(devices []govmmQemu.Device, path string) ([]govmmQemu.Device, error)
|
||||
appendBlockImage(ctx context.Context, devices []govmmQemu.Device, path string) ([]govmmQemu.Device, error)
|
||||
|
||||
// appendNvdimmImage appends an image as nvdimm device
|
||||
appendNvdimmImage(devices []govmmQemu.Device, path string) ([]govmmQemu.Device, error)
|
||||
|
||||
// appendSCSIController appens a SCSI controller to devices
|
||||
appendSCSIController(devices []govmmQemu.Device, enableIOThreads bool) ([]govmmQemu.Device, *govmmQemu.IOThread, error)
|
||||
appendSCSIController(context context.Context, devices []govmmQemu.Device, enableIOThreads bool) ([]govmmQemu.Device, *govmmQemu.IOThread, error)
|
||||
|
||||
// appendBridges appends bridges to devices
|
||||
appendBridges(devices []govmmQemu.Device) []govmmQemu.Device
|
||||
|
||||
// append9PVolume appends a 9P volume to devices
|
||||
append9PVolume(devices []govmmQemu.Device, volume types.Volume) ([]govmmQemu.Device, error)
|
||||
append9PVolume(ctx context.Context, devices []govmmQemu.Device, volume types.Volume) ([]govmmQemu.Device, error)
|
||||
|
||||
// appendSocket appends a socket to devices
|
||||
appendSocket(devices []govmmQemu.Device, socket types.Socket) []govmmQemu.Device
|
||||
|
||||
// appendVSock appends a vsock PCI to devices
|
||||
appendVSock(devices []govmmQemu.Device, vsock types.VSock) ([]govmmQemu.Device, error)
|
||||
appendVSock(ctx context.Context, devices []govmmQemu.Device, vsock types.VSock) ([]govmmQemu.Device, error)
|
||||
|
||||
// appendNetwork appends a endpoint device to devices
|
||||
appendNetwork(devices []govmmQemu.Device, endpoint Endpoint) ([]govmmQemu.Device, error)
|
||||
appendNetwork(ctx context.Context, devices []govmmQemu.Device, endpoint Endpoint) ([]govmmQemu.Device, error)
|
||||
|
||||
// appendBlockDevice appends a block drive to devices
|
||||
appendBlockDevice(devices []govmmQemu.Device, drive config.BlockDrive) ([]govmmQemu.Device, error)
|
||||
appendBlockDevice(ctx context.Context, devices []govmmQemu.Device, drive config.BlockDrive) ([]govmmQemu.Device, error)
|
||||
|
||||
// appendVhostUserDevice appends a vhost user device to devices
|
||||
appendVhostUserDevice(devices []govmmQemu.Device, drive config.VhostUserDeviceAttrs) ([]govmmQemu.Device, error)
|
||||
@ -102,7 +102,7 @@ type qemuArch interface {
|
||||
appendVFIODevice(devices []govmmQemu.Device, vfioDevice config.VFIODev) []govmmQemu.Device
|
||||
|
||||
// appendRNGDevice appends a RNG device to devices
|
||||
appendRNGDevice(devices []govmmQemu.Device, rngDevice config.RNGDev) ([]govmmQemu.Device, error)
|
||||
appendRNGDevice(ctx context.Context, devices []govmmQemu.Device, rngDevice config.RNGDev) ([]govmmQemu.Device, error)
|
||||
|
||||
// addDeviceToBridge adds devices to the bus
|
||||
addDeviceToBridge(ctx context.Context, ID string, t types.Type) (string, types.Bridge, error)
|
||||
@ -313,7 +313,7 @@ func (q *qemuArchBase) memoryTopology(memoryMb, hostMemoryMb uint64, slots uint8
|
||||
return memory
|
||||
}
|
||||
|
||||
func (q *qemuArchBase) appendConsole(devices []govmmQemu.Device, path string) ([]govmmQemu.Device, error) {
|
||||
func (q *qemuArchBase) appendConsole(_ context.Context, devices []govmmQemu.Device, path string) ([]govmmQemu.Device, error) {
|
||||
serial := govmmQemu.SerialDevice{
|
||||
Driver: govmmQemu.VirtioSerial,
|
||||
ID: "serial0",
|
||||
@ -385,16 +385,16 @@ func (q *qemuArchBase) appendNvdimmImage(devices []govmmQemu.Device, path string
|
||||
return devices, nil
|
||||
}
|
||||
|
||||
func (q *qemuArchBase) appendImage(devices []govmmQemu.Device, path string) ([]govmmQemu.Device, error) {
|
||||
return q.appendBlockImage(devices, path)
|
||||
func (q *qemuArchBase) appendImage(ctx context.Context, devices []govmmQemu.Device, path string) ([]govmmQemu.Device, error) {
|
||||
return q.appendBlockImage(ctx, devices, path)
|
||||
}
|
||||
|
||||
func (q *qemuArchBase) appendBlockImage(devices []govmmQemu.Device, path string) ([]govmmQemu.Device, error) {
|
||||
func (q *qemuArchBase) appendBlockImage(ctx context.Context, devices []govmmQemu.Device, path string) ([]govmmQemu.Device, error) {
|
||||
drive, err := genericImage(path)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
devices, err = q.appendBlockDevice(devices, drive)
|
||||
devices, err = q.appendBlockDevice(ctx, devices, drive)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -422,7 +422,7 @@ func genericSCSIController(enableIOThreads, nestedRun bool) (govmmQemu.SCSIContr
|
||||
return scsiController, t
|
||||
}
|
||||
|
||||
func (q *qemuArchBase) appendSCSIController(devices []govmmQemu.Device, enableIOThreads bool) ([]govmmQemu.Device, *govmmQemu.IOThread, error) {
|
||||
func (q *qemuArchBase) appendSCSIController(_ context.Context, devices []govmmQemu.Device, enableIOThreads bool) ([]govmmQemu.Device, *govmmQemu.IOThread, error) {
|
||||
d, t := genericSCSIController(enableIOThreads, q.nestedRun)
|
||||
devices = append(devices, d)
|
||||
return devices, t, nil
|
||||
@ -480,7 +480,7 @@ func genericAppend9PVolume(devices []govmmQemu.Device, volume types.Volume, nest
|
||||
return d, nil
|
||||
}
|
||||
|
||||
func (q *qemuArchBase) append9PVolume(devices []govmmQemu.Device, volume types.Volume) ([]govmmQemu.Device, error) {
|
||||
func (q *qemuArchBase) append9PVolume(_ context.Context, devices []govmmQemu.Device, volume types.Volume) ([]govmmQemu.Device, error) {
|
||||
if volume.MountTag == "" || volume.HostPath == "" {
|
||||
return devices, nil
|
||||
}
|
||||
@ -514,7 +514,7 @@ func (q *qemuArchBase) appendSocket(devices []govmmQemu.Device, socket types.Soc
|
||||
return devices
|
||||
}
|
||||
|
||||
func (q *qemuArchBase) appendVSock(devices []govmmQemu.Device, vsock types.VSock) ([]govmmQemu.Device, error) {
|
||||
func (q *qemuArchBase) appendVSock(_ context.Context, devices []govmmQemu.Device, vsock types.VSock) ([]govmmQemu.Device, error) {
|
||||
devices = append(devices,
|
||||
govmmQemu.VSOCKDevice{
|
||||
ID: fmt.Sprintf("vsock-%d", vsock.ContextID),
|
||||
@ -592,7 +592,7 @@ func genericNetwork(endpoint Endpoint, vhost, nestedRun bool, index int) (govmmQ
|
||||
return d, nil
|
||||
}
|
||||
|
||||
func (q *qemuArchBase) appendNetwork(devices []govmmQemu.Device, endpoint Endpoint) ([]govmmQemu.Device, error) {
|
||||
func (q *qemuArchBase) appendNetwork(_ context.Context, devices []govmmQemu.Device, endpoint Endpoint) ([]govmmQemu.Device, error) {
|
||||
d, err := genericNetwork(endpoint, q.vhost, q.nestedRun, q.networkIndex)
|
||||
if err != nil {
|
||||
return devices, fmt.Errorf("Failed to append network %v", err)
|
||||
@ -624,7 +624,7 @@ func genericBlockDevice(drive config.BlockDrive, nestedRun bool) (govmmQemu.Bloc
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (q *qemuArchBase) appendBlockDevice(devices []govmmQemu.Device, drive config.BlockDrive) ([]govmmQemu.Device, error) {
|
||||
func (q *qemuArchBase) appendBlockDevice(_ context.Context, devices []govmmQemu.Device, drive config.BlockDrive) ([]govmmQemu.Device, error) {
|
||||
d, err := genericBlockDevice(drive, q.nestedRun)
|
||||
if err != nil {
|
||||
return devices, fmt.Errorf("Failed to append block device %v", err)
|
||||
@ -678,7 +678,7 @@ func (q *qemuArchBase) appendVFIODevice(devices []govmmQemu.Device, vfioDev conf
|
||||
return devices
|
||||
}
|
||||
|
||||
func (q *qemuArchBase) appendRNGDevice(devices []govmmQemu.Device, rngDev config.RNGDev) ([]govmmQemu.Device, error) {
|
||||
func (q *qemuArchBase) appendRNGDevice(_ context.Context, devices []govmmQemu.Device, rngDev config.RNGDev) ([]govmmQemu.Device, error) {
|
||||
devices = append(devices,
|
||||
govmmQemu.RngDevice{
|
||||
ID: rngDev.ID,
|
||||
|
@ -216,11 +216,11 @@ func testQemuArchBaseAppend(t *testing.T, structure interface{}, expected []govm
|
||||
|
||||
switch s := structure.(type) {
|
||||
case types.Volume:
|
||||
devices, err = qemuArchBase.append9PVolume(devices, s)
|
||||
devices, err = qemuArchBase.append9PVolume(context.Background(), devices, s)
|
||||
case types.Socket:
|
||||
devices = qemuArchBase.appendSocket(devices, s)
|
||||
case config.BlockDrive:
|
||||
devices, err = qemuArchBase.appendBlockDevice(devices, s)
|
||||
devices, err = qemuArchBase.appendBlockDevice(context.Background(), devices, s)
|
||||
case config.VFIODev:
|
||||
devices = qemuArchBase.appendVFIODevice(devices, s)
|
||||
case config.VhostUserDeviceAttrs:
|
||||
@ -254,7 +254,7 @@ func TestQemuArchBaseAppendConsoles(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
devices, err = qemuArchBase.appendConsole(devices, path)
|
||||
devices, err = qemuArchBase.appendConsole(context.Background(), devices, path)
|
||||
assert.NoError(err)
|
||||
assert.Equal(expectedOut, devices)
|
||||
}
|
||||
@ -270,7 +270,7 @@ func TestQemuArchBaseAppendImage(t *testing.T) {
|
||||
err = image.Close()
|
||||
assert.NoError(err)
|
||||
|
||||
devices, err = qemuArchBase.appendImage(devices, image.Name())
|
||||
devices, err = qemuArchBase.appendImage(context.Background(), devices, image.Name())
|
||||
assert.NoError(err)
|
||||
assert.Len(devices, 1)
|
||||
|
||||
@ -469,12 +469,12 @@ func TestQemuArchBaseAppendSCSIController(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
devices, ioThread, err := qemuArchBase.appendSCSIController(devices, false)
|
||||
devices, ioThread, err := qemuArchBase.appendSCSIController(context.Background(), devices, false)
|
||||
assert.Equal(expectedOut, devices)
|
||||
assert.Nil(ioThread)
|
||||
assert.NoError(err)
|
||||
|
||||
_, ioThread, err = qemuArchBase.appendSCSIController(devices, true)
|
||||
_, ioThread, err = qemuArchBase.appendSCSIController(context.Background(), devices, true)
|
||||
assert.NotNil(ioThread)
|
||||
assert.NoError(err)
|
||||
}
|
||||
@ -539,9 +539,9 @@ func TestQemuArchBaseAppendNetwork(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
devices, err = qemuArchBase.appendNetwork(devices, macvlanEp)
|
||||
devices, err = qemuArchBase.appendNetwork(context.Background(), devices, macvlanEp)
|
||||
assert.NoError(err)
|
||||
devices, err = qemuArchBase.appendNetwork(devices, macvtapEp)
|
||||
devices, err = qemuArchBase.appendNetwork(context.Background(), devices, macvtapEp)
|
||||
assert.NoError(err)
|
||||
assert.Equal(expectedOut, devices)
|
||||
}
|
||||
|
@ -93,11 +93,11 @@ func (q *qemuArm64) appendBridges(devices []govmmQemu.Device) []govmmQemu.Device
|
||||
return genericAppendBridges(devices, q.Bridges, q.qemuMachine.Type)
|
||||
}
|
||||
|
||||
func (q *qemuArm64) appendImage(devices []govmmQemu.Device, path string) ([]govmmQemu.Device, error) {
|
||||
func (q *qemuArm64) appendImage(ctx context.Context, devices []govmmQemu.Device, path string) ([]govmmQemu.Device, error) {
|
||||
if !q.disableNvdimm {
|
||||
return q.appendNvdimmImage(devices, path)
|
||||
}
|
||||
return q.appendBlockImage(devices, path)
|
||||
return q.appendBlockImage(ctx, devices, path)
|
||||
}
|
||||
|
||||
func (q *qemuArm64) setIgnoreSharedMemoryMigrationCaps(_ context.Context, _ *govmmQemu.QMP) error {
|
||||
@ -109,7 +109,7 @@ func (q *qemuArm64) appendIOMMU(devices []govmmQemu.Device) ([]govmmQemu.Device,
|
||||
return devices, fmt.Errorf("Arm64 architecture does not support vIOMMU")
|
||||
}
|
||||
|
||||
func (q *qemuArm64) append9PVolume(devices []govmmQemu.Device, volume types.Volume) ([]govmmQemu.Device, error) {
|
||||
func (q *qemuArm64) append9PVolume(_ context.Context, devices []govmmQemu.Device, volume types.Volume) ([]govmmQemu.Device, error) {
|
||||
d, err := genericAppend9PVolume(devices, volume, q.nestedRun)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@ -6,6 +6,7 @@
|
||||
package virtcontainers
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
@ -121,7 +122,7 @@ func TestQemuArm64AppendImage(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
devices, err = arm64.appendImage(devices, f.Name())
|
||||
devices, err = arm64.appendImage(context.Background(), devices, f.Name())
|
||||
assert.NoError(err)
|
||||
assert.Equal(expectedOut, devices)
|
||||
|
||||
|
@ -6,6 +6,7 @@
|
||||
package virtcontainers
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
@ -87,9 +88,9 @@ func (q *qemuS390x) bridges(number uint32) {
|
||||
|
||||
// appendConsole appends a console to devices.
|
||||
// The function has been overwriten to correctly set the driver to the CCW device
|
||||
func (q *qemuS390x) appendConsole(devices []govmmQemu.Device, path string) ([]govmmQemu.Device, error) {
|
||||
func (q *qemuS390x) appendConsole(ctx context.Context, devices []govmmQemu.Device, path string) ([]govmmQemu.Device, error) {
|
||||
id := "serial0"
|
||||
addr, b, err := q.addDeviceToBridge(id, types.CCW)
|
||||
addr, b, err := q.addDeviceToBridge(ctx, id, types.CCW)
|
||||
if err != nil {
|
||||
return devices, fmt.Errorf("Failed to append console %v", err)
|
||||
}
|
||||
@ -122,24 +123,24 @@ func (q *qemuS390x) appendConsole(devices []govmmQemu.Device, path string) ([]go
|
||||
return devices, nil
|
||||
}
|
||||
|
||||
func (q *qemuS390x) appendImage(devices []govmmQemu.Device, path string) ([]govmmQemu.Device, error) {
|
||||
func (q *qemuS390x) appendImage(ctx context.Context, devices []govmmQemu.Device, path string) ([]govmmQemu.Device, error) {
|
||||
drive, err := genericImage(path)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return q.appendCCWBlockDevice(devices, drive)
|
||||
return q.appendCCWBlockDevice(ctx, devices, drive)
|
||||
}
|
||||
|
||||
func (q *qemuS390x) appendBlockDevice(devices []govmmQemu.Device, drive config.BlockDrive) ([]govmmQemu.Device, error) {
|
||||
return q.appendCCWBlockDevice(devices, drive)
|
||||
func (q *qemuS390x) appendBlockDevice(ctx context.Context, devices []govmmQemu.Device, drive config.BlockDrive) ([]govmmQemu.Device, error) {
|
||||
return q.appendCCWBlockDevice(ctx, devices, drive)
|
||||
}
|
||||
|
||||
func (q *qemuS390x) appendCCWBlockDevice(devices []govmmQemu.Device, drive config.BlockDrive) ([]govmmQemu.Device, error) {
|
||||
func (q *qemuS390x) appendCCWBlockDevice(ctx context.Context, devices []govmmQemu.Device, drive config.BlockDrive) ([]govmmQemu.Device, error) {
|
||||
d, err := genericBlockDevice(drive, false)
|
||||
if err != nil {
|
||||
return devices, fmt.Errorf("Failed to append blk-dev %v", err)
|
||||
}
|
||||
addr, b, err := q.addDeviceToBridge(drive.ID, types.CCW)
|
||||
addr, b, err := q.addDeviceToBridge(ctx, drive.ID, types.CCW)
|
||||
if err != nil {
|
||||
return devices, fmt.Errorf("Failed to append blk-dev %v", err)
|
||||
}
|
||||
@ -163,13 +164,13 @@ func (q *qemuS390x) supportGuestMemoryHotplug() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (q *qemuS390x) appendNetwork(devices []govmmQemu.Device, endpoint Endpoint) ([]govmmQemu.Device, error) {
|
||||
func (q *qemuS390x) appendNetwork(ctx context.Context, devices []govmmQemu.Device, endpoint Endpoint) ([]govmmQemu.Device, error) {
|
||||
d, err := genericNetwork(endpoint, false, false, q.networkIndex)
|
||||
if err != nil {
|
||||
return devices, fmt.Errorf("Failed to append network %v", err)
|
||||
}
|
||||
q.networkIndex++
|
||||
addr, b, err := q.addDeviceToBridge(d.ID, types.CCW)
|
||||
addr, b, err := q.addDeviceToBridge(ctx, d.ID, types.CCW)
|
||||
if err != nil {
|
||||
return devices, fmt.Errorf("Failed to append network %v", err)
|
||||
}
|
||||
@ -182,8 +183,8 @@ func (q *qemuS390x) appendNetwork(devices []govmmQemu.Device, endpoint Endpoint)
|
||||
return devices, nil
|
||||
}
|
||||
|
||||
func (q *qemuS390x) appendRNGDevice(devices []govmmQemu.Device, rngDev config.RNGDev) ([]govmmQemu.Device, error) {
|
||||
addr, b, err := q.addDeviceToBridge(rngDev.ID, types.CCW)
|
||||
func (q *qemuS390x) appendRNGDevice(ctx context.Context, devices []govmmQemu.Device, rngDev config.RNGDev) ([]govmmQemu.Device, error) {
|
||||
addr, b, err := q.addDeviceToBridge(ctx, rngDev.ID, types.CCW)
|
||||
if err != nil {
|
||||
return devices, fmt.Errorf("Failed to append RNG-Device %v", err)
|
||||
}
|
||||
@ -204,12 +205,12 @@ func (q *qemuS390x) appendRNGDevice(devices []govmmQemu.Device, rngDev config.RN
|
||||
return devices, nil
|
||||
}
|
||||
|
||||
func (q *qemuS390x) append9PVolume(devices []govmmQemu.Device, volume types.Volume) ([]govmmQemu.Device, error) {
|
||||
func (q *qemuS390x) append9PVolume(ctx context.Context, devices []govmmQemu.Device, volume types.Volume) ([]govmmQemu.Device, error) {
|
||||
if volume.MountTag == "" || volume.HostPath == "" {
|
||||
return devices, nil
|
||||
}
|
||||
d := generic9PVolume(volume, false)
|
||||
addr, b, err := q.addDeviceToBridge(d.ID, types.CCW)
|
||||
addr, b, err := q.addDeviceToBridge(ctx, d.ID, types.CCW)
|
||||
if err != nil {
|
||||
return devices, fmt.Errorf("Failed to append 9p-Volume %v", err)
|
||||
}
|
||||
@ -226,9 +227,9 @@ func (q *qemuS390x) appendBridges(devices []govmmQemu.Device) []govmmQemu.Device
|
||||
return genericAppendBridges(devices, q.Bridges, q.qemuMachine.Type)
|
||||
}
|
||||
|
||||
func (q *qemuS390x) appendSCSIController(devices []govmmQemu.Device, enableIOThreads bool) ([]govmmQemu.Device, *govmmQemu.IOThread, error) {
|
||||
func (q *qemuS390x) appendSCSIController(ctx context.Context, devices []govmmQemu.Device, enableIOThreads bool) ([]govmmQemu.Device, *govmmQemu.IOThread, error) {
|
||||
d, t := genericSCSIController(enableIOThreads, q.nestedRun)
|
||||
addr, b, err := q.addDeviceToBridge(d.ID, types.CCW)
|
||||
addr, b, err := q.addDeviceToBridge(ctx, d.ID, types.CCW)
|
||||
if err != nil {
|
||||
return devices, nil, fmt.Errorf("Failed to append scsi-controller %v", err)
|
||||
}
|
||||
@ -241,10 +242,10 @@ func (q *qemuS390x) appendSCSIController(devices []govmmQemu.Device, enableIOThr
|
||||
return devices, t, nil
|
||||
}
|
||||
|
||||
func (q *qemuS390x) appendVSock(devices []govmmQemu.Device, vsock types.VSock) ([]govmmQemu.Device, error) {
|
||||
func (q *qemuS390x) appendVSock(ctx context.Context, devices []govmmQemu.Device, vsock types.VSock) ([]govmmQemu.Device, error) {
|
||||
var devno string
|
||||
id := fmt.Sprintf("vsock-%d", vsock.ContextID)
|
||||
addr, b, err := q.addDeviceToBridge(id, types.CCW)
|
||||
addr, b, err := q.addDeviceToBridge(ctx, id, types.CCW)
|
||||
if err != nil {
|
||||
return devices, fmt.Errorf("Failed to append VSock: %v", err)
|
||||
}
|
||||
@ -270,8 +271,8 @@ func (q *qemuS390x) appendIOMMU(devices []govmmQemu.Device) ([]govmmQemu.Device,
|
||||
return devices, fmt.Errorf("S390x does not support appending a vIOMMU")
|
||||
}
|
||||
|
||||
func (q *qemuS390x) addDeviceToBridge(ID string, t types.Type) (string, types.Bridge, error) {
|
||||
addr, b, err := genericAddDeviceToBridge(q.Bridges, ID, types.CCW)
|
||||
func (q *qemuS390x) addDeviceToBridge(ctx context.Context, ID string, t types.Type) (string, types.Bridge, error) {
|
||||
addr, b, err := genericAddDeviceToBridge(ctx, q.Bridges, ID, types.CCW)
|
||||
if err != nil {
|
||||
return "", b, err
|
||||
}
|
||||
|
@ -10,7 +10,6 @@ import (
|
||||
"testing"
|
||||
|
||||
govmmQemu "github.com/kata-containers/govmm/qemu"
|
||||
"github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user