mirror of
https://github.com/aljazceru/kata-containers.git
synced 2026-02-08 08:04:26 +01:00
device: Assign pci address to block device for kata_agent
Store PCI address for a block device on hotplugging it via virtio-blk. This address will be passed by kata agent in the device "Id" field. The agent within the guest can then use this to identify the PCI slot in the guest and create the device node based on it. Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
This commit is contained in:
@@ -391,6 +391,7 @@ func (device *BlockDevice) attach(h hypervisor, c *Container) (err error) {
|
||||
|
||||
if c.sandbox.config.HypervisorConfig.BlockDeviceDriver == VirtioBlock {
|
||||
device.VirtPath = filepath.Join("/dev", driveName)
|
||||
device.PCIAddr = drive.PCIAddr
|
||||
} else {
|
||||
scsiAddr, err := getSCSIAddress(index)
|
||||
if err != nil {
|
||||
|
||||
@@ -629,7 +629,7 @@ func (k *kataAgent) appendDevices(deviceList []*grpc.Device, devices []Device) [
|
||||
|
||||
if d.SCSIAddr == "" {
|
||||
kataDevice.Type = kataBlkDevType
|
||||
kataDevice.VmPath = d.VirtPath
|
||||
kataDevice.Id = d.PCIAddr
|
||||
} else {
|
||||
kataDevice.Type = kataSCSIDevType
|
||||
kataDevice.Id = d.SCSIAddr
|
||||
|
||||
@@ -24,9 +24,9 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
testKataProxyURLTempl = "unix://%s/kata-proxy-test.sock"
|
||||
testBlockDeviceVirtPath = "testBlockDeviceVirtPath"
|
||||
testBlockDeviceCtrPath = "testBlockDeviceCtrPath"
|
||||
testKataProxyURLTempl = "unix://%s/kata-proxy-test.sock"
|
||||
testBlockDeviceCtrPath = "testBlockDeviceCtrPath"
|
||||
testPCIAddr = "04/02"
|
||||
)
|
||||
|
||||
func proxyHandlerDiscard(c net.Conn) {
|
||||
@@ -366,16 +366,16 @@ func TestAppendDevices(t *testing.T) {
|
||||
expected := []*pb.Device{
|
||||
{
|
||||
Type: kataBlkDevType,
|
||||
VmPath: testBlockDeviceVirtPath,
|
||||
ContainerPath: testBlockDeviceCtrPath,
|
||||
Id: testPCIAddr,
|
||||
},
|
||||
}
|
||||
ctrDevices := []Device{
|
||||
&BlockDevice{
|
||||
VirtPath: testBlockDeviceVirtPath,
|
||||
DeviceInfo: DeviceInfo{
|
||||
ContainerPath: testBlockDeviceCtrPath,
|
||||
},
|
||||
PCIAddr: testPCIAddr,
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user