From 3880e0c077129803859a70a2f6e8eb584ea80bbe Mon Sep 17 00:00:00 2001 From: Bin Liu Date: Mon, 13 Jun 2022 10:56:51 +0800 Subject: [PATCH 1/4] agent: refactor reading file timing for debugging In the original code, reads mountstats file and return the content in the error, but at this time the file maybe changed, we should return the file content that parsed line by line to check why there is not a fstype option. Fixes: #4246 Signed-off-by: Bin Liu --- src/agent/src/mount.rs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/agent/src/mount.rs b/src/agent/src/mount.rs index ff24f49571..568ea6aef2 100644 --- a/src/agent/src/mount.rs +++ b/src/agent/src/mount.rs @@ -840,15 +840,13 @@ pub fn get_mount_fs_type_from_file(mount_file: &str, mount_point: &str) -> Resul return Err(anyhow!("Invalid mount point {}", mount_point)); } - let file = File::open(mount_file)?; - let reader = BufReader::new(file); + let content = fs::read_to_string(mount_file)?; let re = Regex::new(format!("device .+ mounted on {} with fstype (.+)", mount_point).as_str())?; // Read the file line by line using the lines() iterator from std::io::BufRead. - for (_index, line) in reader.lines().enumerate() { - let line = line?; - let capes = match re.captures(line.as_str()) { + for (_index, line) in content.lines().enumerate() { + let capes = match re.captures(line) { Some(c) => c, None => continue, }; @@ -861,7 +859,7 @@ pub fn get_mount_fs_type_from_file(mount_file: &str, mount_point: &str) -> Resul Err(anyhow!( "failed to find FS type for mount point {}, mount file content: {:?}", mount_point, - fs::read_to_string(mount_file) + content )) } From f9e96c650641b49d4ab2b720687e6819e2e52276 Mon Sep 17 00:00:00 2001 From: Eric Ernst Date: Tue, 14 Jun 2022 14:11:39 -0700 Subject: [PATCH 2/4] runtime: device: move to top level package Let's move device package to runtime/pkg instead of being buried under virtcontainers. Signed-off-by: Eric Ernst --- ci/darwin-test.sh | 8 ++++---- .../{virtcontainers => pkg}/device/api/interface.go | 2 +- .../device/api/mockDeviceReceiver.go | 2 +- .../{virtcontainers => pkg}/device/config/config.go | 0 .../{virtcontainers => pkg}/device/config/config_test.go | 0 src/runtime/{virtcontainers => pkg}/device/config/pmem.go | 0 .../{virtcontainers => pkg}/device/config/pmem_test.go | 0 .../{virtcontainers => pkg}/device/drivers/block.go | 4 ++-- .../{virtcontainers => pkg}/device/drivers/generic.go | 4 ++-- .../device/drivers/generic_test.go | 2 +- .../{virtcontainers => pkg}/device/drivers/utils.go | 4 ++-- .../{virtcontainers => pkg}/device/drivers/vfio.go | 4 ++-- .../{virtcontainers => pkg}/device/drivers/vfio_test.go | 2 +- .../device/drivers/vhost_user_blk.go | 4 ++-- .../device/drivers/vhost_user_fs.go | 4 ++-- .../device/drivers/vhost_user_net.go | 4 ++-- .../device/drivers/vhost_user_scsi.go | 4 ++-- .../{virtcontainers => pkg}/device/manager/manager.go | 6 +++--- .../device/manager/manager_linux_test.go | 6 +++--- .../device/manager/manager_test.go | 6 +++--- .../{virtcontainers => pkg}/device/manager/utils.go | 2 +- .../{virtcontainers => pkg}/device/manager/utils_test.go | 2 +- src/runtime/pkg/katautils/config.go | 2 +- src/runtime/pkg/oci/utils.go | 2 +- src/runtime/pkg/oci/utils_test.go | 2 +- src/runtime/virtcontainers/acrn.go | 2 +- src/runtime/virtcontainers/acrn_arch_base.go | 2 +- src/runtime/virtcontainers/acrn_arch_base_test.go | 2 +- src/runtime/virtcontainers/acrn_test.go | 2 +- src/runtime/virtcontainers/api.go | 4 ++-- src/runtime/virtcontainers/clh.go | 2 +- src/runtime/virtcontainers/clh_test.go | 2 +- src/runtime/virtcontainers/container.go | 4 ++-- src/runtime/virtcontainers/container_test.go | 8 ++++---- src/runtime/virtcontainers/fc.go | 2 +- src/runtime/virtcontainers/fs_share_linux.go | 2 +- src/runtime/virtcontainers/hypervisor.go | 2 +- src/runtime/virtcontainers/interfaces.go | 4 ++-- src/runtime/virtcontainers/kata_agent.go | 4 ++-- src/runtime/virtcontainers/kata_agent_test.go | 8 ++++---- src/runtime/virtcontainers/persist.go | 2 +- src/runtime/virtcontainers/persist_test.go | 4 ++-- src/runtime/virtcontainers/physical_endpoint.go | 4 ++-- src/runtime/virtcontainers/pkg/vcmock/sandbox.go | 4 ++-- src/runtime/virtcontainers/pkg/vcmock/types.go | 4 ++-- src/runtime/virtcontainers/qemu.go | 4 ++-- src/runtime/virtcontainers/qemu_arch_base.go | 2 +- src/runtime/virtcontainers/qemu_arch_base_test.go | 2 +- src/runtime/virtcontainers/qemu_s390x.go | 2 +- src/runtime/virtcontainers/qemu_s390x_test.go | 2 +- src/runtime/virtcontainers/qemu_test.go | 2 +- src/runtime/virtcontainers/sandbox.go | 8 ++++---- src/runtime/virtcontainers/sandbox_test.go | 6 +++--- src/runtime/virtcontainers/vhostuser_endpoint.go | 2 +- 54 files changed, 87 insertions(+), 87 deletions(-) rename src/runtime/{virtcontainers => pkg}/device/api/interface.go (97%) rename src/runtime/{virtcontainers => pkg}/device/api/mockDeviceReceiver.go (93%) rename src/runtime/{virtcontainers => pkg}/device/config/config.go (100%) rename src/runtime/{virtcontainers => pkg}/device/config/config_test.go (100%) rename src/runtime/{virtcontainers => pkg}/device/config/pmem.go (100%) rename src/runtime/{virtcontainers => pkg}/device/config/pmem_test.go (100%) rename src/runtime/{virtcontainers => pkg}/device/drivers/block.go (97%) rename src/runtime/{virtcontainers => pkg}/device/drivers/generic.go (96%) rename src/runtime/{virtcontainers => pkg}/device/drivers/generic_test.go (92%) rename src/runtime/{virtcontainers => pkg}/device/drivers/utils.go (94%) rename src/runtime/{virtcontainers => pkg}/device/drivers/vfio.go (98%) rename src/runtime/{virtcontainers => pkg}/device/drivers/vfio_test.go (91%) rename src/runtime/{virtcontainers => pkg}/device/drivers/vhost_user_blk.go (96%) rename src/runtime/{virtcontainers => pkg}/device/drivers/vhost_user_fs.go (89%) rename src/runtime/{virtcontainers => pkg}/device/drivers/vhost_user_net.go (94%) rename src/runtime/{virtcontainers => pkg}/device/drivers/vhost_user_scsi.go (94%) rename src/runtime/{virtcontainers => pkg}/device/manager/manager.go (96%) rename src/runtime/{virtcontainers => pkg}/device/manager/manager_linux_test.go (90%) rename src/runtime/{virtcontainers => pkg}/device/manager/manager_test.go (96%) rename src/runtime/{virtcontainers => pkg}/device/manager/utils.go (92%) rename src/runtime/{virtcontainers => pkg}/device/manager/utils_test.go (95%) diff --git a/ci/darwin-test.sh b/ci/darwin-test.sh index 92317653be..f9d32e743d 100755 --- a/ci/darwin-test.sh +++ b/ci/darwin-test.sh @@ -11,10 +11,10 @@ runtimedir=$cidir/../src/runtime build_working_packages() { # working packages: - device_api=$runtimedir/virtcontainers/device/api - device_config=$runtimedir/virtcontainers/device/config - device_drivers=$runtimedir/virtcontainers/device/drivers - device_manager=$runtimedir/virtcontainers/device/manager + device_api=$runtimedir/pkg/device/api + device_config=$runtimedir/pkg/device/config + device_drivers=$runtimedir/pkg/device/drivers + device_manager=$runtimedir/pkg/device/manager rc_pkg_dir=$runtimedir/pkg/resourcecontrol/ utils_pkg_dir=$runtimedir/virtcontainers/utils diff --git a/src/runtime/virtcontainers/device/api/interface.go b/src/runtime/pkg/device/api/interface.go similarity index 97% rename from src/runtime/virtcontainers/device/api/interface.go rename to src/runtime/pkg/device/api/interface.go index 802efe861e..2db12f677f 100644 --- a/src/runtime/virtcontainers/device/api/interface.go +++ b/src/runtime/pkg/device/api/interface.go @@ -9,7 +9,7 @@ package api import ( "context" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" persistapi "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist/api" "github.com/sirupsen/logrus" ) diff --git a/src/runtime/virtcontainers/device/api/mockDeviceReceiver.go b/src/runtime/pkg/device/api/mockDeviceReceiver.go similarity index 93% rename from src/runtime/virtcontainers/device/api/mockDeviceReceiver.go rename to src/runtime/pkg/device/api/mockDeviceReceiver.go index d6c23d5d5c..f0bd947f7b 100644 --- a/src/runtime/virtcontainers/device/api/mockDeviceReceiver.go +++ b/src/runtime/pkg/device/api/mockDeviceReceiver.go @@ -8,7 +8,7 @@ package api import ( "context" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" ) // MockDeviceReceiver is a fake DeviceReceiver API implementation only used for test diff --git a/src/runtime/virtcontainers/device/config/config.go b/src/runtime/pkg/device/config/config.go similarity index 100% rename from src/runtime/virtcontainers/device/config/config.go rename to src/runtime/pkg/device/config/config.go diff --git a/src/runtime/virtcontainers/device/config/config_test.go b/src/runtime/pkg/device/config/config_test.go similarity index 100% rename from src/runtime/virtcontainers/device/config/config_test.go rename to src/runtime/pkg/device/config/config_test.go diff --git a/src/runtime/virtcontainers/device/config/pmem.go b/src/runtime/pkg/device/config/pmem.go similarity index 100% rename from src/runtime/virtcontainers/device/config/pmem.go rename to src/runtime/pkg/device/config/pmem.go diff --git a/src/runtime/virtcontainers/device/config/pmem_test.go b/src/runtime/pkg/device/config/pmem_test.go similarity index 100% rename from src/runtime/virtcontainers/device/config/pmem_test.go rename to src/runtime/pkg/device/config/pmem_test.go diff --git a/src/runtime/virtcontainers/device/drivers/block.go b/src/runtime/pkg/device/drivers/block.go similarity index 97% rename from src/runtime/virtcontainers/device/drivers/block.go rename to src/runtime/pkg/device/drivers/block.go index faaadf32c9..294e8da604 100644 --- a/src/runtime/virtcontainers/device/drivers/block.go +++ b/src/runtime/pkg/device/drivers/block.go @@ -10,8 +10,8 @@ import ( "context" "path/filepath" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/api" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/api" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" persistapi "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist/api" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/utils" ) diff --git a/src/runtime/virtcontainers/device/drivers/generic.go b/src/runtime/pkg/device/drivers/generic.go similarity index 96% rename from src/runtime/virtcontainers/device/drivers/generic.go rename to src/runtime/pkg/device/drivers/generic.go index fd2bfb671c..67cf243c7b 100644 --- a/src/runtime/virtcontainers/device/drivers/generic.go +++ b/src/runtime/pkg/device/drivers/generic.go @@ -10,8 +10,8 @@ import ( "context" "fmt" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/api" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/api" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" persistapi "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist/api" ) diff --git a/src/runtime/virtcontainers/device/drivers/generic_test.go b/src/runtime/pkg/device/drivers/generic_test.go similarity index 92% rename from src/runtime/virtcontainers/device/drivers/generic_test.go rename to src/runtime/pkg/device/drivers/generic_test.go index e2f6d2e4bd..1dbd505476 100644 --- a/src/runtime/virtcontainers/device/drivers/generic_test.go +++ b/src/runtime/pkg/device/drivers/generic_test.go @@ -8,7 +8,7 @@ package drivers import ( "testing" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" "github.com/stretchr/testify/assert" ) diff --git a/src/runtime/virtcontainers/device/drivers/utils.go b/src/runtime/pkg/device/drivers/utils.go similarity index 94% rename from src/runtime/virtcontainers/device/drivers/utils.go rename to src/runtime/pkg/device/drivers/utils.go index aa97747219..25f021eda0 100644 --- a/src/runtime/virtcontainers/device/drivers/utils.go +++ b/src/runtime/pkg/device/drivers/utils.go @@ -12,8 +12,8 @@ import ( "path/filepath" "strings" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/api" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/api" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" "github.com/sirupsen/logrus" ) diff --git a/src/runtime/virtcontainers/device/drivers/vfio.go b/src/runtime/pkg/device/drivers/vfio.go similarity index 98% rename from src/runtime/virtcontainers/device/drivers/vfio.go rename to src/runtime/pkg/device/drivers/vfio.go index 8e36ff46ba..ec10cc02d1 100644 --- a/src/runtime/virtcontainers/device/drivers/vfio.go +++ b/src/runtime/pkg/device/drivers/vfio.go @@ -16,8 +16,8 @@ import ( "github.com/sirupsen/logrus" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/api" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/api" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" persistapi "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist/api" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/utils" ) diff --git a/src/runtime/virtcontainers/device/drivers/vfio_test.go b/src/runtime/pkg/device/drivers/vfio_test.go similarity index 91% rename from src/runtime/virtcontainers/device/drivers/vfio_test.go rename to src/runtime/pkg/device/drivers/vfio_test.go index 05118871f5..3c25a64c3c 100644 --- a/src/runtime/virtcontainers/device/drivers/vfio_test.go +++ b/src/runtime/pkg/device/drivers/vfio_test.go @@ -9,7 +9,7 @@ package drivers import ( "testing" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" "github.com/stretchr/testify/assert" ) diff --git a/src/runtime/virtcontainers/device/drivers/vhost_user_blk.go b/src/runtime/pkg/device/drivers/vhost_user_blk.go similarity index 96% rename from src/runtime/virtcontainers/device/drivers/vhost_user_blk.go rename to src/runtime/pkg/device/drivers/vhost_user_blk.go index 4a495c9d51..9d6de5a05a 100644 --- a/src/runtime/virtcontainers/device/drivers/vhost_user_blk.go +++ b/src/runtime/pkg/device/drivers/vhost_user_blk.go @@ -9,8 +9,8 @@ package drivers import ( "context" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/api" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/api" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" persistapi "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist/api" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/utils" "github.com/sirupsen/logrus" diff --git a/src/runtime/virtcontainers/device/drivers/vhost_user_fs.go b/src/runtime/pkg/device/drivers/vhost_user_fs.go similarity index 89% rename from src/runtime/virtcontainers/device/drivers/vhost_user_fs.go rename to src/runtime/pkg/device/drivers/vhost_user_fs.go index 5724d1db0c..dba9ea79df 100644 --- a/src/runtime/virtcontainers/device/drivers/vhost_user_fs.go +++ b/src/runtime/pkg/device/drivers/vhost_user_fs.go @@ -9,8 +9,8 @@ import ( "context" "encoding/hex" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/api" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/api" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/utils" ) diff --git a/src/runtime/virtcontainers/device/drivers/vhost_user_net.go b/src/runtime/pkg/device/drivers/vhost_user_net.go similarity index 94% rename from src/runtime/virtcontainers/device/drivers/vhost_user_net.go rename to src/runtime/pkg/device/drivers/vhost_user_net.go index 7b70e97db2..6ac038b02e 100644 --- a/src/runtime/virtcontainers/device/drivers/vhost_user_net.go +++ b/src/runtime/pkg/device/drivers/vhost_user_net.go @@ -10,8 +10,8 @@ import ( "context" "encoding/hex" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/api" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/api" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" persistapi "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist/api" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/utils" ) diff --git a/src/runtime/virtcontainers/device/drivers/vhost_user_scsi.go b/src/runtime/pkg/device/drivers/vhost_user_scsi.go similarity index 94% rename from src/runtime/virtcontainers/device/drivers/vhost_user_scsi.go rename to src/runtime/pkg/device/drivers/vhost_user_scsi.go index 13b90cdf08..cd0c5f2640 100644 --- a/src/runtime/virtcontainers/device/drivers/vhost_user_scsi.go +++ b/src/runtime/pkg/device/drivers/vhost_user_scsi.go @@ -10,8 +10,8 @@ import ( "context" "encoding/hex" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/api" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/api" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" persistapi "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist/api" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/utils" ) diff --git a/src/runtime/virtcontainers/device/manager/manager.go b/src/runtime/pkg/device/manager/manager.go similarity index 96% rename from src/runtime/virtcontainers/device/manager/manager.go rename to src/runtime/pkg/device/manager/manager.go index 9a5bba2604..d9e3193cb6 100644 --- a/src/runtime/virtcontainers/device/manager/manager.go +++ b/src/runtime/pkg/device/manager/manager.go @@ -14,9 +14,9 @@ import ( "github.com/sirupsen/logrus" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/api" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/drivers" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/api" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/drivers" persistapi "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist/api" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/utils" ) diff --git a/src/runtime/virtcontainers/device/manager/manager_linux_test.go b/src/runtime/pkg/device/manager/manager_linux_test.go similarity index 90% rename from src/runtime/virtcontainers/device/manager/manager_linux_test.go rename to src/runtime/pkg/device/manager/manager_linux_test.go index abb7532911..fd790f093e 100644 --- a/src/runtime/virtcontainers/device/manager/manager_linux_test.go +++ b/src/runtime/pkg/device/manager/manager_linux_test.go @@ -13,10 +13,10 @@ import ( "path/filepath" "testing" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/api" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/drivers" ktu "github.com/kata-containers/kata-containers/src/runtime/pkg/katatestutils" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/api" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/drivers" "github.com/stretchr/testify/assert" "golang.org/x/sys/unix" diff --git a/src/runtime/virtcontainers/device/manager/manager_test.go b/src/runtime/pkg/device/manager/manager_test.go similarity index 96% rename from src/runtime/virtcontainers/device/manager/manager_test.go rename to src/runtime/pkg/device/manager/manager_test.go index ea20012a92..1070e6b8e2 100644 --- a/src/runtime/virtcontainers/device/manager/manager_test.go +++ b/src/runtime/pkg/device/manager/manager_test.go @@ -13,9 +13,9 @@ import ( "strconv" "testing" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/api" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/drivers" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/api" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/drivers" "github.com/stretchr/testify/assert" ) diff --git a/src/runtime/virtcontainers/device/manager/utils.go b/src/runtime/pkg/device/manager/utils.go similarity index 92% rename from src/runtime/virtcontainers/device/manager/utils.go rename to src/runtime/pkg/device/manager/utils.go index 61488ef9fd..17d14741c1 100644 --- a/src/runtime/virtcontainers/device/manager/utils.go +++ b/src/runtime/pkg/device/manager/utils.go @@ -10,7 +10,7 @@ import ( "path/filepath" "strings" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" ) const ( diff --git a/src/runtime/virtcontainers/device/manager/utils_test.go b/src/runtime/pkg/device/manager/utils_test.go similarity index 95% rename from src/runtime/virtcontainers/device/manager/utils_test.go rename to src/runtime/pkg/device/manager/utils_test.go index ec518ce7ad..273283823f 100644 --- a/src/runtime/virtcontainers/device/manager/utils_test.go +++ b/src/runtime/pkg/device/manager/utils_test.go @@ -9,7 +9,7 @@ package manager import ( "testing" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" "github.com/stretchr/testify/assert" ) diff --git a/src/runtime/pkg/katautils/config.go b/src/runtime/pkg/katautils/config.go index 2a62c3d6c3..7faf4e8563 100644 --- a/src/runtime/pkg/katautils/config.go +++ b/src/runtime/pkg/katautils/config.go @@ -16,12 +16,12 @@ import ( "strings" "github.com/BurntSushi/toml" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" "github.com/kata-containers/kata-containers/src/runtime/pkg/govmm" govmmQemu "github.com/kata-containers/kata-containers/src/runtime/pkg/govmm/qemu" "github.com/kata-containers/kata-containers/src/runtime/pkg/katautils/katatrace" "github.com/kata-containers/kata-containers/src/runtime/pkg/oci" vc "github.com/kata-containers/kata-containers/src/runtime/virtcontainers" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" exp "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/experimental" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/utils" "github.com/sirupsen/logrus" diff --git a/src/runtime/pkg/oci/utils.go b/src/runtime/pkg/oci/utils.go index e6e4dcfe6f..44c664ac43 100644 --- a/src/runtime/pkg/oci/utils.go +++ b/src/runtime/pkg/oci/utils.go @@ -27,7 +27,7 @@ import ( "github.com/kata-containers/kata-containers/src/runtime/pkg/govmm" vc "github.com/kata-containers/kata-containers/src/runtime/virtcontainers" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" exp "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/experimental" vcAnnotations "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/annotations" dockershimAnnotations "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/annotations/dockershim" diff --git a/src/runtime/pkg/oci/utils_test.go b/src/runtime/pkg/oci/utils_test.go index e6158a96eb..437dad5e5e 100644 --- a/src/runtime/pkg/oci/utils_test.go +++ b/src/runtime/pkg/oci/utils_test.go @@ -21,8 +21,8 @@ import ( "github.com/stretchr/testify/assert" "golang.org/x/sys/unix" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" vc "github.com/kata-containers/kata-containers/src/runtime/virtcontainers" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" vcAnnotations "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/annotations" dockerAnnotations "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/annotations/dockershim" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/compatoci" diff --git a/src/runtime/virtcontainers/acrn.go b/src/runtime/virtcontainers/acrn.go index 38f42a207b..f6da05ec58 100644 --- a/src/runtime/virtcontainers/acrn.go +++ b/src/runtime/virtcontainers/acrn.go @@ -22,10 +22,10 @@ import ( "github.com/pkg/errors" "github.com/sirupsen/logrus" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" hv "github.com/kata-containers/kata-containers/src/runtime/pkg/hypervisors" "github.com/kata-containers/kata-containers/src/runtime/pkg/katautils/katatrace" "github.com/kata-containers/kata-containers/src/runtime/pkg/uuid" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" persistapi "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist/api" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/types" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/utils" diff --git a/src/runtime/virtcontainers/acrn_arch_base.go b/src/runtime/virtcontainers/acrn_arch_base.go index ab547b6bd3..f84019ee61 100644 --- a/src/runtime/virtcontainers/acrn_arch_base.go +++ b/src/runtime/virtcontainers/acrn_arch_base.go @@ -16,7 +16,7 @@ import ( "os/exec" "strings" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/types" "github.com/sirupsen/logrus" ) diff --git a/src/runtime/virtcontainers/acrn_arch_base_test.go b/src/runtime/virtcontainers/acrn_arch_base_test.go index 19d7858c59..3d168f56f9 100644 --- a/src/runtime/virtcontainers/acrn_arch_base_test.go +++ b/src/runtime/virtcontainers/acrn_arch_base_test.go @@ -12,7 +12,7 @@ import ( "path/filepath" "testing" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist/fs" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/types" "github.com/stretchr/testify/assert" diff --git a/src/runtime/virtcontainers/acrn_test.go b/src/runtime/virtcontainers/acrn_test.go index b92f35a2fa..f0e8c7ce2c 100644 --- a/src/runtime/virtcontainers/acrn_test.go +++ b/src/runtime/virtcontainers/acrn_test.go @@ -14,7 +14,7 @@ import ( "path/filepath" "testing" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/types" "github.com/stretchr/testify/assert" diff --git a/src/runtime/virtcontainers/api.go b/src/runtime/virtcontainers/api.go index 4b85851cf6..437c926a7e 100644 --- a/src/runtime/virtcontainers/api.go +++ b/src/runtime/virtcontainers/api.go @@ -9,10 +9,10 @@ import ( "context" "runtime" + deviceApi "github.com/kata-containers/kata-containers/src/runtime/pkg/device/api" + deviceConfig "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" "github.com/kata-containers/kata-containers/src/runtime/pkg/katautils/katatrace" resCtrl "github.com/kata-containers/kata-containers/src/runtime/pkg/resourcecontrol" - deviceApi "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/api" - deviceConfig "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/compatoci" vcTypes "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/types" "github.com/sirupsen/logrus" diff --git a/src/runtime/virtcontainers/clh.go b/src/runtime/virtcontainers/clh.go index a47c688f4a..57f8eddb23 100644 --- a/src/runtime/virtcontainers/clh.go +++ b/src/runtime/virtcontainers/clh.go @@ -28,9 +28,9 @@ import ( "github.com/pkg/errors" log "github.com/sirupsen/logrus" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" hv "github.com/kata-containers/kata-containers/src/runtime/pkg/hypervisors" "github.com/kata-containers/kata-containers/src/runtime/pkg/katautils/katatrace" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/types" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/utils" ) diff --git a/src/runtime/virtcontainers/clh_test.go b/src/runtime/virtcontainers/clh_test.go index 79e35210b1..6ccf863970 100644 --- a/src/runtime/virtcontainers/clh_test.go +++ b/src/runtime/virtcontainers/clh_test.go @@ -17,7 +17,7 @@ import ( "strings" "testing" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist" chclient "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/cloud-hypervisor/client" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/types" diff --git a/src/runtime/virtcontainers/container.go b/src/runtime/virtcontainers/container.go index d5239a386e..f812f0f4c2 100644 --- a/src/runtime/virtcontainers/container.go +++ b/src/runtime/virtcontainers/container.go @@ -16,10 +16,10 @@ import ( "syscall" "time" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/manager" volume "github.com/kata-containers/kata-containers/src/runtime/pkg/direct-volume" "github.com/kata-containers/kata-containers/src/runtime/pkg/katautils/katatrace" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/manager" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/agent/protocols/grpc" vcAnnotations "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/annotations" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/types" diff --git a/src/runtime/virtcontainers/container_test.go b/src/runtime/virtcontainers/container_test.go index f6fce13e62..7a165ce9fc 100644 --- a/src/runtime/virtcontainers/container_test.go +++ b/src/runtime/virtcontainers/container_test.go @@ -14,11 +14,11 @@ import ( "syscall" "testing" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/api" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/drivers" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/manager" ktu "github.com/kata-containers/kata-containers/src/runtime/pkg/katatestutils" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/api" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/drivers" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/manager" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/types" "github.com/stretchr/testify/assert" diff --git a/src/runtime/virtcontainers/fc.go b/src/runtime/virtcontainers/fc.go index 3a89c7fa44..a9aa4befd6 100644 --- a/src/runtime/virtcontainers/fc.go +++ b/src/runtime/virtcontainers/fc.go @@ -24,9 +24,9 @@ import ( "syscall" "time" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" hv "github.com/kata-containers/kata-containers/src/runtime/pkg/hypervisors" "github.com/kata-containers/kata-containers/src/runtime/pkg/katautils/katatrace" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist/fs" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/firecracker/client" models "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/firecracker/client/models" diff --git a/src/runtime/virtcontainers/fs_share_linux.go b/src/runtime/virtcontainers/fs_share_linux.go index a7007826fa..5d56b457b8 100644 --- a/src/runtime/virtcontainers/fs_share_linux.go +++ b/src/runtime/virtcontainers/fs_share_linux.go @@ -19,8 +19,8 @@ import ( "github.com/pkg/errors" "github.com/sirupsen/logrus" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" "github.com/kata-containers/kata-containers/src/runtime/pkg/katautils/katatrace" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/agent/protocols/grpc" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/utils" ) diff --git a/src/runtime/virtcontainers/hypervisor.go b/src/runtime/virtcontainers/hypervisor.go index 9de4dc0d0a..5f1e00a81b 100644 --- a/src/runtime/virtcontainers/hypervisor.go +++ b/src/runtime/virtcontainers/hypervisor.go @@ -16,9 +16,9 @@ import ( "github.com/pkg/errors" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" "github.com/kata-containers/kata-containers/src/runtime/pkg/govmm" hv "github.com/kata-containers/kata-containers/src/runtime/pkg/hypervisors" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/types" "github.com/sirupsen/logrus" diff --git a/src/runtime/virtcontainers/interfaces.go b/src/runtime/virtcontainers/interfaces.go index df72978e50..7664f0281f 100644 --- a/src/runtime/virtcontainers/interfaces.go +++ b/src/runtime/virtcontainers/interfaces.go @@ -10,8 +10,8 @@ import ( "io" "syscall" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/api" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/api" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" pbTypes "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/agent/protocols" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/types" specs "github.com/opencontainers/runtime-spec/specs-go" diff --git a/src/runtime/virtcontainers/kata_agent.go b/src/runtime/virtcontainers/kata_agent.go index 2f85a2828a..ba2fc811d2 100644 --- a/src/runtime/virtcontainers/kata_agent.go +++ b/src/runtime/virtcontainers/kata_agent.go @@ -19,12 +19,12 @@ import ( "time" "github.com/docker/go-units" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/api" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" volume "github.com/kata-containers/kata-containers/src/runtime/pkg/direct-volume" "github.com/kata-containers/kata-containers/src/runtime/pkg/katautils/katatrace" resCtrl "github.com/kata-containers/kata-containers/src/runtime/pkg/resourcecontrol" "github.com/kata-containers/kata-containers/src/runtime/pkg/uuid" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/api" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" persistapi "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist/api" pbTypes "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/agent/protocols" kataclient "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/agent/protocols/client" diff --git a/src/runtime/virtcontainers/kata_agent_test.go b/src/runtime/virtcontainers/kata_agent_test.go index c24934b682..27a6837e9c 100644 --- a/src/runtime/virtcontainers/kata_agent_test.go +++ b/src/runtime/virtcontainers/kata_agent_test.go @@ -23,11 +23,11 @@ import ( "github.com/stretchr/testify/assert" "code.cloudfoundry.org/bytefmt" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/api" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/drivers" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/manager" volume "github.com/kata-containers/kata-containers/src/runtime/pkg/direct-volume" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/api" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/drivers" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/manager" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist" pbTypes "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/agent/protocols" pb "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/agent/protocols/grpc" diff --git a/src/runtime/virtcontainers/persist.go b/src/runtime/virtcontainers/persist.go index bc20af21fa..f559d82429 100644 --- a/src/runtime/virtcontainers/persist.go +++ b/src/runtime/virtcontainers/persist.go @@ -9,7 +9,7 @@ import ( "errors" hv "github.com/kata-containers/kata-containers/src/runtime/pkg/hypervisors" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/api" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/api" exp "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/experimental" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist" persistapi "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist/api" diff --git a/src/runtime/virtcontainers/persist_test.go b/src/runtime/virtcontainers/persist_test.go index b6c096a5d9..96b947e5b9 100644 --- a/src/runtime/virtcontainers/persist_test.go +++ b/src/runtime/virtcontainers/persist_test.go @@ -10,8 +10,8 @@ import ( "os" "testing" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/manager" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/manager" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/types" "github.com/stretchr/testify/assert" diff --git a/src/runtime/virtcontainers/physical_endpoint.go b/src/runtime/virtcontainers/physical_endpoint.go index 71f67da8fd..ea64ba926b 100644 --- a/src/runtime/virtcontainers/physical_endpoint.go +++ b/src/runtime/virtcontainers/physical_endpoint.go @@ -15,9 +15,9 @@ import ( "path/filepath" "strings" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/drivers" resCtrl "github.com/kata-containers/kata-containers/src/runtime/pkg/resourcecontrol" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/drivers" persistapi "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist/api" vcTypes "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/types" "github.com/safchain/ethtool" diff --git a/src/runtime/virtcontainers/pkg/vcmock/sandbox.go b/src/runtime/virtcontainers/pkg/vcmock/sandbox.go index 064a60af71..77f56846a2 100644 --- a/src/runtime/virtcontainers/pkg/vcmock/sandbox.go +++ b/src/runtime/virtcontainers/pkg/vcmock/sandbox.go @@ -11,9 +11,9 @@ import ( "io" "syscall" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/api" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" vc "github.com/kata-containers/kata-containers/src/runtime/virtcontainers" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/api" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" pbTypes "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/agent/protocols" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/types" specs "github.com/opencontainers/runtime-spec/specs-go" diff --git a/src/runtime/virtcontainers/pkg/vcmock/types.go b/src/runtime/virtcontainers/pkg/vcmock/types.go index 1125090a1b..05a0a98592 100644 --- a/src/runtime/virtcontainers/pkg/vcmock/types.go +++ b/src/runtime/virtcontainers/pkg/vcmock/types.go @@ -10,9 +10,9 @@ import ( "io" "syscall" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/api" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" vc "github.com/kata-containers/kata-containers/src/runtime/virtcontainers" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/api" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" pbTypes "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/agent/protocols" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/types" specs "github.com/opencontainers/runtime-spec/specs-go" diff --git a/src/runtime/virtcontainers/qemu.go b/src/runtime/virtcontainers/qemu.go index 656548e88c..1b3cb04b65 100644 --- a/src/runtime/virtcontainers/qemu.go +++ b/src/runtime/virtcontainers/qemu.go @@ -33,12 +33,12 @@ import ( "github.com/sirupsen/logrus" "golang.org/x/sys/unix" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/drivers" hv "github.com/kata-containers/kata-containers/src/runtime/pkg/hypervisors" "github.com/kata-containers/kata-containers/src/runtime/pkg/katautils/katatrace" pkgUtils "github.com/kata-containers/kata-containers/src/runtime/pkg/utils" "github.com/kata-containers/kata-containers/src/runtime/pkg/uuid" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/drivers" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/types" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/utils" ) diff --git a/src/runtime/virtcontainers/qemu_arch_base.go b/src/runtime/virtcontainers/qemu_arch_base.go index a2873a2160..23ab16836f 100644 --- a/src/runtime/virtcontainers/qemu_arch_base.go +++ b/src/runtime/virtcontainers/qemu_arch_base.go @@ -19,7 +19,7 @@ import ( govmmQemu "github.com/kata-containers/kata-containers/src/runtime/pkg/govmm/qemu" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/types" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/utils" ) diff --git a/src/runtime/virtcontainers/qemu_arch_base_test.go b/src/runtime/virtcontainers/qemu_arch_base_test.go index 57c97f773b..41d3bbd430 100644 --- a/src/runtime/virtcontainers/qemu_arch_base_test.go +++ b/src/runtime/virtcontainers/qemu_arch_base_test.go @@ -19,7 +19,7 @@ import ( govmmQemu "github.com/kata-containers/kata-containers/src/runtime/pkg/govmm/qemu" "github.com/stretchr/testify/assert" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist/fs" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/types" "github.com/pkg/errors" diff --git a/src/runtime/virtcontainers/qemu_s390x.go b/src/runtime/virtcontainers/qemu_s390x.go index f0946698f7..46a1af4ad5 100644 --- a/src/runtime/virtcontainers/qemu_s390x.go +++ b/src/runtime/virtcontainers/qemu_s390x.go @@ -13,8 +13,8 @@ import ( "fmt" "time" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" govmmQemu "github.com/kata-containers/kata-containers/src/runtime/pkg/govmm/qemu" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/types" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/utils" "github.com/sirupsen/logrus" diff --git a/src/runtime/virtcontainers/qemu_s390x_test.go b/src/runtime/virtcontainers/qemu_s390x_test.go index 3d0c393a69..ada3cefc6e 100644 --- a/src/runtime/virtcontainers/qemu_s390x_test.go +++ b/src/runtime/virtcontainers/qemu_s390x_test.go @@ -16,7 +16,7 @@ import ( govmmQemu "github.com/kata-containers/kata-containers/src/runtime/pkg/govmm/qemu" "github.com/stretchr/testify/assert" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" ) func newTestQemu(assert *assert.Assertions, machineType string) qemuArch { diff --git a/src/runtime/virtcontainers/qemu_test.go b/src/runtime/virtcontainers/qemu_test.go index 0c27240be6..b50d73a917 100644 --- a/src/runtime/virtcontainers/qemu_test.go +++ b/src/runtime/virtcontainers/qemu_test.go @@ -15,9 +15,9 @@ import ( "path/filepath" "testing" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" "github.com/kata-containers/kata-containers/src/runtime/pkg/govmm" govmmQemu "github.com/kata-containers/kata-containers/src/runtime/pkg/govmm/qemu" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/types" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/utils" diff --git a/src/runtime/virtcontainers/sandbox.go b/src/runtime/virtcontainers/sandbox.go index 71851c2cfb..a995f1f77b 100644 --- a/src/runtime/virtcontainers/sandbox.go +++ b/src/runtime/virtcontainers/sandbox.go @@ -25,12 +25,12 @@ import ( "github.com/sirupsen/logrus" "github.com/vishvananda/netlink" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/api" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/drivers" + deviceManager "github.com/kata-containers/kata-containers/src/runtime/pkg/device/manager" "github.com/kata-containers/kata-containers/src/runtime/pkg/katautils/katatrace" resCtrl "github.com/kata-containers/kata-containers/src/runtime/pkg/resourcecontrol" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/api" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/drivers" - deviceManager "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/manager" exp "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/experimental" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist" persistapi "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist/api" diff --git a/src/runtime/virtcontainers/sandbox_test.go b/src/runtime/virtcontainers/sandbox_test.go index 31bec93818..331094ee39 100644 --- a/src/runtime/virtcontainers/sandbox_test.go +++ b/src/runtime/virtcontainers/sandbox_test.go @@ -16,10 +16,10 @@ import ( "syscall" "testing" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/drivers" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/manager" ktu "github.com/kata-containers/kata-containers/src/runtime/pkg/katatestutils" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/drivers" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/manager" exp "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/experimental" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist/fs" diff --git a/src/runtime/virtcontainers/vhostuser_endpoint.go b/src/runtime/virtcontainers/vhostuser_endpoint.go index ecdfa8a5ef..c27f1159d7 100644 --- a/src/runtime/virtcontainers/vhostuser_endpoint.go +++ b/src/runtime/virtcontainers/vhostuser_endpoint.go @@ -14,7 +14,7 @@ import ( "fmt" "os" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/device/config" + "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" persistapi "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist/api" vcTypes "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/types" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/utils" From f97d9b45c8a59afa573ba08bb4ead303598e05dc Mon Sep 17 00:00:00 2001 From: Eric Ernst Date: Thu, 16 Jun 2022 00:24:04 -0700 Subject: [PATCH 3/4] runtime: device/persist: drop persist dependency from device pkgs Rather than have device package depend on persist, let's define the (almost duplicate) structures within device itself, and have the Kata Container's persist pkg import these. This'll help avoid unecessary dependencies within our core packages. Signed-off-by: Eric Ernst --- src/runtime/pkg/device/api/interface.go | 7 +++---- .../device/config/device_state.go} | 18 +++++++++--------- src/runtime/pkg/device/drivers/block.go | 7 +++---- src/runtime/pkg/device/drivers/generic.go | 7 +++---- src/runtime/pkg/device/drivers/vfio.go | 7 +++---- .../pkg/device/drivers/vhost_user_blk.go | 7 +++---- .../pkg/device/drivers/vhost_user_net.go | 7 +++---- .../pkg/device/drivers/vhost_user_scsi.go | 7 +++---- src/runtime/pkg/device/manager/manager.go | 3 +-- src/runtime/virtcontainers/persist.go | 7 ++++--- .../virtcontainers/persist/api/sandbox.go | 3 ++- 11 files changed, 37 insertions(+), 43 deletions(-) rename src/runtime/{virtcontainers/persist/api/device.go => pkg/device/config/device_state.go} (88%) diff --git a/src/runtime/pkg/device/api/interface.go b/src/runtime/pkg/device/api/interface.go index 2db12f677f..074980f44f 100644 --- a/src/runtime/pkg/device/api/interface.go +++ b/src/runtime/pkg/device/api/interface.go @@ -10,7 +10,6 @@ import ( "context" "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" - persistapi "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist/api" "github.com/sirupsen/logrus" ) @@ -78,10 +77,10 @@ type Device interface { Dereference() uint // Save converts Device to DeviceState - Save() persistapi.DeviceState + Save() config.DeviceState // Load loads DeviceState and converts it to specific device - Load(persistapi.DeviceState) + Load(config.DeviceState) } // DeviceManager can be used to create a new device, this can be used as single @@ -94,5 +93,5 @@ type DeviceManager interface { IsDeviceAttached(string) bool GetDeviceByID(string) Device GetAllDevices() []Device - LoadDevices([]persistapi.DeviceState) + LoadDevices([]config.DeviceState) } diff --git a/src/runtime/virtcontainers/persist/api/device.go b/src/runtime/pkg/device/config/device_state.go similarity index 88% rename from src/runtime/virtcontainers/persist/api/device.go rename to src/runtime/pkg/device/config/device_state.go index dd61efbfcf..36d513fa65 100644 --- a/src/runtime/virtcontainers/persist/api/device.go +++ b/src/runtime/pkg/device/config/device_state.go @@ -4,7 +4,7 @@ // SPDX-License-Identifier: Apache-2.0 // -package persistapi +package config import vcTypes "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/types" @@ -12,7 +12,7 @@ import vcTypes "github.com/kata-containers/kata-containers/src/runtime/virtconta // BlockDrive represents a block storage drive which may be used in case the storage // driver has an underlying block storage device. -type BlockDrive struct { +type BlockDriveState struct { // File is the path to the disk-image/device which will be used with this drive File string @@ -50,7 +50,7 @@ type BlockDrive struct { } // VFIODev represents a VFIO drive used for hotplugging -type VFIODev struct { +type VFIODevState struct { // ID is used to identify this drive in the hypervisor options. ID string @@ -65,7 +65,7 @@ type VFIODev struct { } // VhostUserDeviceAttrs represents data shared by most vhost-user devices -type VhostUserDeviceAttrs struct { +type VhostUserDeviceAttrsState struct { DevID string SocketPath string Type string @@ -89,11 +89,11 @@ type DeviceState struct { // for example, for BlockDevice, we can set DriverOptions["block-driver"]="virtio-blk" DriverOptions map[string]string - // VhostUserDeviceAttrs is specific for vhost-user device driver - VhostUserDev *VhostUserDeviceAttrs `json:",omitempty"` + // VhostUserDeviceAttrsState is specific for vhost-user device driver + VhostUserDev *VhostUserDeviceAttrsState `json:",omitempty"` // BlockDrive is specific for block device driver - BlockDrive *BlockDrive `json:",omitempty"` + BlockDrive *BlockDriveState `json:",omitempty"` ID string @@ -108,8 +108,8 @@ type DeviceState struct { // More info in mknod(1). DevType string - // VFIODev is specific VFIO device driver - VFIODevs []*VFIODev `json:",omitempty"` + // VFIODevState is specific VFIO device driver + VFIODevs []*VFIODevState `json:",omitempty"` RefCount uint AttachCount uint diff --git a/src/runtime/pkg/device/drivers/block.go b/src/runtime/pkg/device/drivers/block.go index 294e8da604..6088a5c9f5 100644 --- a/src/runtime/pkg/device/drivers/block.go +++ b/src/runtime/pkg/device/drivers/block.go @@ -12,7 +12,6 @@ import ( "github.com/kata-containers/kata-containers/src/runtime/pkg/device/api" "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" - persistapi "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist/api" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/utils" ) @@ -159,13 +158,13 @@ func (device *BlockDevice) GetDeviceInfo() interface{} { } // Save converts Device to DeviceState -func (device *BlockDevice) Save() persistapi.DeviceState { +func (device *BlockDevice) Save() config.DeviceState { ds := device.GenericDevice.Save() ds.Type = string(device.DeviceType()) drive := device.BlockDrive if drive != nil { - ds.BlockDrive = &persistapi.BlockDrive{ + ds.BlockDrive = &config.BlockDriveState{ File: drive.File, Format: drive.Format, ID: drive.ID, @@ -183,7 +182,7 @@ func (device *BlockDevice) Save() persistapi.DeviceState { } // Load loads DeviceState and converts it to specific device -func (device *BlockDevice) Load(ds persistapi.DeviceState) { +func (device *BlockDevice) Load(ds config.DeviceState) { device.GenericDevice = &GenericDevice{} device.GenericDevice.Load(ds) diff --git a/src/runtime/pkg/device/drivers/generic.go b/src/runtime/pkg/device/drivers/generic.go index 67cf243c7b..38358ed248 100644 --- a/src/runtime/pkg/device/drivers/generic.go +++ b/src/runtime/pkg/device/drivers/generic.go @@ -12,7 +12,6 @@ import ( "github.com/kata-containers/kata-containers/src/runtime/pkg/device/api" "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" - persistapi "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist/api" ) // GenericDevice refers to a device that is neither a VFIO device, block device or VhostUserDevice. @@ -128,8 +127,8 @@ func (device *GenericDevice) bumpAttachCount(attach bool) (skip bool, err error) } // Save converts Device to DeviceState -func (device *GenericDevice) Save() persistapi.DeviceState { - dss := persistapi.DeviceState{ +func (device *GenericDevice) Save() config.DeviceState { + dss := config.DeviceState{ ID: device.ID, Type: string(device.DeviceType()), RefCount: device.RefCount, @@ -148,7 +147,7 @@ func (device *GenericDevice) Save() persistapi.DeviceState { } // Load loads DeviceState and converts it to specific device -func (device *GenericDevice) Load(ds persistapi.DeviceState) { +func (device *GenericDevice) Load(ds config.DeviceState) { device.ID = ds.ID device.RefCount = ds.RefCount device.AttachCount = ds.AttachCount diff --git a/src/runtime/pkg/device/drivers/vfio.go b/src/runtime/pkg/device/drivers/vfio.go index ec10cc02d1..ed791f8416 100644 --- a/src/runtime/pkg/device/drivers/vfio.go +++ b/src/runtime/pkg/device/drivers/vfio.go @@ -18,7 +18,6 @@ import ( "github.com/kata-containers/kata-containers/src/runtime/pkg/device/api" "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" - persistapi "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist/api" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/utils" ) @@ -174,14 +173,14 @@ func (device *VFIODevice) GetDeviceInfo() interface{} { } // Save converts Device to DeviceState -func (device *VFIODevice) Save() persistapi.DeviceState { +func (device *VFIODevice) Save() config.DeviceState { ds := device.GenericDevice.Save() ds.Type = string(device.DeviceType()) devs := device.VfioDevs for _, dev := range devs { if dev != nil { - ds.VFIODevs = append(ds.VFIODevs, &persistapi.VFIODev{ + ds.VFIODevs = append(ds.VFIODevs, &config.VFIODevState{ ID: dev.ID, Type: uint32(dev.Type), BDF: dev.BDF, @@ -193,7 +192,7 @@ func (device *VFIODevice) Save() persistapi.DeviceState { } // Load loads DeviceState and converts it to specific device -func (device *VFIODevice) Load(ds persistapi.DeviceState) { +func (device *VFIODevice) Load(ds config.DeviceState) { device.GenericDevice = &GenericDevice{} device.GenericDevice.Load(ds) diff --git a/src/runtime/pkg/device/drivers/vhost_user_blk.go b/src/runtime/pkg/device/drivers/vhost_user_blk.go index 9d6de5a05a..75d65d0a5a 100644 --- a/src/runtime/pkg/device/drivers/vhost_user_blk.go +++ b/src/runtime/pkg/device/drivers/vhost_user_blk.go @@ -11,7 +11,6 @@ import ( "github.com/kata-containers/kata-containers/src/runtime/pkg/device/api" "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" - persistapi "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist/api" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/utils" "github.com/sirupsen/logrus" ) @@ -156,13 +155,13 @@ func (device *VhostUserBlkDevice) GetDeviceInfo() interface{} { } // Save converts Device to DeviceState -func (device *VhostUserBlkDevice) Save() persistapi.DeviceState { +func (device *VhostUserBlkDevice) Save() config.DeviceState { ds := device.GenericDevice.Save() ds.Type = string(device.DeviceType()) vAttr := device.VhostUserDeviceAttrs if vAttr != nil { - ds.VhostUserDev = &persistapi.VhostUserDeviceAttrs{ + ds.VhostUserDev = &config.VhostUserDeviceAttrsState{ DevID: vAttr.DevID, SocketPath: vAttr.SocketPath, Type: string(vAttr.Type), @@ -174,7 +173,7 @@ func (device *VhostUserBlkDevice) Save() persistapi.DeviceState { } // Load loads DeviceState and converts it to specific device -func (device *VhostUserBlkDevice) Load(ds persistapi.DeviceState) { +func (device *VhostUserBlkDevice) Load(ds config.DeviceState) { device.GenericDevice = &GenericDevice{} device.GenericDevice.Load(ds) diff --git a/src/runtime/pkg/device/drivers/vhost_user_net.go b/src/runtime/pkg/device/drivers/vhost_user_net.go index 6ac038b02e..7441c2d892 100644 --- a/src/runtime/pkg/device/drivers/vhost_user_net.go +++ b/src/runtime/pkg/device/drivers/vhost_user_net.go @@ -12,7 +12,6 @@ import ( "github.com/kata-containers/kata-containers/src/runtime/pkg/device/api" "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" - persistapi "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist/api" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/utils" ) @@ -75,10 +74,10 @@ func (device *VhostUserNetDevice) GetDeviceInfo() interface{} { } // Save converts Device to DeviceState -func (device *VhostUserNetDevice) Save() persistapi.DeviceState { +func (device *VhostUserNetDevice) Save() config.DeviceState { ds := device.GenericDevice.Save() ds.Type = string(device.DeviceType()) - ds.VhostUserDev = &persistapi.VhostUserDeviceAttrs{ + ds.VhostUserDev = &config.VhostUserDeviceAttrsState{ DevID: device.DevID, SocketPath: device.SocketPath, Type: string(device.Type), @@ -88,7 +87,7 @@ func (device *VhostUserNetDevice) Save() persistapi.DeviceState { } // Load loads DeviceState and converts it to specific device -func (device *VhostUserNetDevice) Load(ds persistapi.DeviceState) { +func (device *VhostUserNetDevice) Load(ds config.DeviceState) { device.GenericDevice = &GenericDevice{} device.GenericDevice.Load(ds) diff --git a/src/runtime/pkg/device/drivers/vhost_user_scsi.go b/src/runtime/pkg/device/drivers/vhost_user_scsi.go index cd0c5f2640..7fbcc382c4 100644 --- a/src/runtime/pkg/device/drivers/vhost_user_scsi.go +++ b/src/runtime/pkg/device/drivers/vhost_user_scsi.go @@ -12,7 +12,6 @@ import ( "github.com/kata-containers/kata-containers/src/runtime/pkg/device/api" "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" - persistapi "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist/api" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/utils" ) @@ -75,10 +74,10 @@ func (device *VhostUserSCSIDevice) GetDeviceInfo() interface{} { } // Save converts Device to DeviceState -func (device *VhostUserSCSIDevice) Save() persistapi.DeviceState { +func (device *VhostUserSCSIDevice) Save() config.DeviceState { ds := device.GenericDevice.Save() ds.Type = string(device.DeviceType()) - ds.VhostUserDev = &persistapi.VhostUserDeviceAttrs{ + ds.VhostUserDev = &config.VhostUserDeviceAttrsState{ DevID: device.DevID, SocketPath: device.SocketPath, Type: string(device.Type), @@ -88,7 +87,7 @@ func (device *VhostUserSCSIDevice) Save() persistapi.DeviceState { } // Load loads DeviceState and converts it to specific device -func (device *VhostUserSCSIDevice) Load(ds persistapi.DeviceState) { +func (device *VhostUserSCSIDevice) Load(ds config.DeviceState) { device.GenericDevice = &GenericDevice{} device.GenericDevice.Load(ds) diff --git a/src/runtime/pkg/device/manager/manager.go b/src/runtime/pkg/device/manager/manager.go index d9e3193cb6..eed9e39f1e 100644 --- a/src/runtime/pkg/device/manager/manager.go +++ b/src/runtime/pkg/device/manager/manager.go @@ -17,7 +17,6 @@ import ( "github.com/kata-containers/kata-containers/src/runtime/pkg/device/api" "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" "github.com/kata-containers/kata-containers/src/runtime/pkg/device/drivers" - persistapi "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist/api" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/utils" ) @@ -242,7 +241,7 @@ func (dm *deviceManager) IsDeviceAttached(id string) bool { } // LoadDevices load devices from persist state -func (dm *deviceManager) LoadDevices(devStates []persistapi.DeviceState) { +func (dm *deviceManager) LoadDevices(devStates []config.DeviceState) { dm.Lock() defer dm.Unlock() diff --git a/src/runtime/virtcontainers/persist.go b/src/runtime/virtcontainers/persist.go index f559d82429..56a63ae59e 100644 --- a/src/runtime/virtcontainers/persist.go +++ b/src/runtime/virtcontainers/persist.go @@ -8,8 +8,9 @@ package virtcontainers import ( "errors" - hv "github.com/kata-containers/kata-containers/src/runtime/pkg/hypervisors" "github.com/kata-containers/kata-containers/src/runtime/pkg/device/api" + devconfig "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" + hv "github.com/kata-containers/kata-containers/src/runtime/pkg/hypervisors" exp "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/experimental" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist" persistapi "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/persist/api" @@ -65,7 +66,7 @@ func (s *Sandbox) dumpHypervisor(ss *persistapi.SandboxState) { ss.HypervisorState.BlockIndexMap = s.state.BlockIndexMap } -func deviceToDeviceState(devices []api.Device) (dss []persistapi.DeviceState) { +func deviceToDeviceState(devices []api.Device) (dss []devconfig.DeviceState) { for _, dev := range devices { dss = append(dss, dev.Save()) } @@ -323,7 +324,7 @@ func (s *Sandbox) loadAgent(as persistapi.AgentState) { } } -func (s *Sandbox) loadDevices(devStates []persistapi.DeviceState) { +func (s *Sandbox) loadDevices(devStates []devconfig.DeviceState) { s.devManager.LoadDevices(devStates) } diff --git a/src/runtime/virtcontainers/persist/api/sandbox.go b/src/runtime/virtcontainers/persist/api/sandbox.go index 09196637ca..665edd2804 100644 --- a/src/runtime/virtcontainers/persist/api/sandbox.go +++ b/src/runtime/virtcontainers/persist/api/sandbox.go @@ -7,6 +7,7 @@ package persistapi import ( + dev "github.com/kata-containers/kata-containers/src/runtime/pkg/device/config" hv "github.com/kata-containers/kata-containers/src/runtime/pkg/hypervisors" ) @@ -26,7 +27,7 @@ type SandboxState struct { CgroupPaths map[string]string // Devices plugged to sandbox(hypervisor) - Devices []DeviceState + Devices []dev.DeviceState // State is sandbox running status State string From e32bf53318d540367802cced4b7851b6603f698d Mon Sep 17 00:00:00 2001 From: Eric Ernst Date: Thu, 16 Jun 2022 03:57:20 -0700 Subject: [PATCH 4/4] device: deduplicate state structures Before, we maintained almost identical structures between our persist API and what we keep for our devices, with the persist API being a slight subset of device structures. Let's deduplicate this, now that persist is importing device package. Json unmarshal of prior persist structure will work fine, since it was an exact subset of fields. Fixes: #4468 Signed-off-by: Eric Ernst --- src/runtime/pkg/device/config/config.go | 42 ++++++ src/runtime/pkg/device/config/device_state.go | 124 ------------------ src/runtime/pkg/device/drivers/block.go | 36 +---- src/runtime/pkg/device/drivers/vfio.go | 7 +- .../pkg/device/drivers/vhost_user_blk.go | 25 +--- .../pkg/device/drivers/vhost_user_net.go | 25 +--- .../pkg/device/drivers/vhost_user_scsi.go | 24 +--- 7 files changed, 59 insertions(+), 224 deletions(-) delete mode 100644 src/runtime/pkg/device/config/device_state.go diff --git a/src/runtime/pkg/device/config/config.go b/src/runtime/pkg/device/config/config.go index 48280092d6..748c5b4e51 100644 --- a/src/runtime/pkg/device/config/config.go +++ b/src/runtime/pkg/device/config/config.go @@ -441,3 +441,45 @@ func getVhostUserDevName(dirname string, majorNum, minorNum uint32) (string, err return "", fmt.Errorf("Required device node (%d:%d) doesn't exist under directory %s", majorNum, minorNum, dirname) } + +// DeviceState is a structure which represents host devices +// plugged to a hypervisor, one Device can be shared among containers in POD +// Refs: virtcontainers/device/drivers/generic.go:GenericDevice +type DeviceState struct { + // DriverOptions is specific options for each device driver + // for example, for BlockDevice, we can set DriverOptions["block-driver"]="virtio-blk" + DriverOptions map[string]string + + // VhostUserDeviceAttrs is specific for vhost-user device driver + VhostUserDev *VhostUserDeviceAttrs `json:",omitempty"` + + // BlockDrive is specific for block device driver + BlockDrive *BlockDrive `json:",omitempty"` + + ID string + + // Type is used to specify driver type + // Refs: virtcontainers/device/config/config.go:DeviceType + Type string + + // Type of device: c, b, u or p + // c , u - character(unbuffered) + // p - FIFO + // b - block(buffered) special file + // More info in mknod(1). + DevType string + + // VFIODev is specific VFIO device driver + VFIODevs []*VFIODev `json:",omitempty"` + + RefCount uint + AttachCount uint + + // Major, minor numbers for device. + Major int64 + Minor int64 + + // ColdPlug specifies whether the device must be cold plugged (true) + // or hot plugged (false). + ColdPlug bool +} diff --git a/src/runtime/pkg/device/config/device_state.go b/src/runtime/pkg/device/config/device_state.go deleted file mode 100644 index 36d513fa65..0000000000 --- a/src/runtime/pkg/device/config/device_state.go +++ /dev/null @@ -1,124 +0,0 @@ -// Copyright (c) 2016 Intel Corporation -// Copyright (c) 2019 Huawei Corporation -// -// SPDX-License-Identifier: Apache-2.0 -// - -package config - -import vcTypes "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/types" - -// ============= sandbox level resources ============= - -// BlockDrive represents a block storage drive which may be used in case the storage -// driver has an underlying block storage device. -type BlockDriveState struct { - // File is the path to the disk-image/device which will be used with this drive - File string - - // Format of the drive - Format string - - // ID is used to identify this drive in the hypervisor options. - ID string - - // MmioAddr is used to identify the slot at which the drive is attached (order?). - MmioAddr string - - // SCSI Address of the block device, in case the device is attached using SCSI driver - // SCSI address is in the format SCSI-Id:LUN - SCSIAddr string - - // NvdimmID is the nvdimm id inside the VM - NvdimmID string - - // VirtPath at which the device appears inside the VM, outside of the container mount namespace - VirtPath string - - // DevNo - DevNo string - - // PCIPath is the PCI path used to identify the slot at which the drive is attached. - PCIPath vcTypes.PciPath - - // Index assigned to the drive. In case of virtio-scsi, this is used as SCSI LUN index - Index int - - // Pmem enabled persistent memory. Use File as backing file - // for a nvdimm device in the guest. - Pmem bool -} - -// VFIODev represents a VFIO drive used for hotplugging -type VFIODevState struct { - // ID is used to identify this drive in the hypervisor options. - ID string - - // BDF (Bus:Device.Function) of the PCI address - BDF string - - // Sysfsdev of VFIO mediated device - SysfsDev string - - // Type of VFIO device - Type uint32 -} - -// VhostUserDeviceAttrs represents data shared by most vhost-user devices -type VhostUserDeviceAttrsState struct { - DevID string - SocketPath string - Type string - - // MacAddress is only meaningful for vhost user net device - MacAddress string - - // PCIPath is the PCI path used to identify the slot at which the drive is attached. - // It is only meaningful for vhost user block devices - PCIPath vcTypes.PciPath - - // Block index of the device if assigned - Index int -} - -// DeviceState is sandbox level resource which represents host devices -// plugged to hypervisor, one Device can be shared among containers in POD -// Refs: virtcontainers/device/drivers/generic.go:GenericDevice -type DeviceState struct { - // DriverOptions is specific options for each device driver - // for example, for BlockDevice, we can set DriverOptions["block-driver"]="virtio-blk" - DriverOptions map[string]string - - // VhostUserDeviceAttrsState is specific for vhost-user device driver - VhostUserDev *VhostUserDeviceAttrsState `json:",omitempty"` - - // BlockDrive is specific for block device driver - BlockDrive *BlockDriveState `json:",omitempty"` - - ID string - - // Type is used to specify driver type - // Refs: virtcontainers/device/config/config.go:DeviceType - Type string - - // Type of device: c, b, u or p - // c , u - character(unbuffered) - // p - FIFO - // b - block(buffered) special file - // More info in mknod(1). - DevType string - - // VFIODevState is specific VFIO device driver - VFIODevs []*VFIODevState `json:",omitempty"` - - RefCount uint - AttachCount uint - - // Major, minor numbers for device. - Major int64 - Minor int64 - - // ColdPlug specifies whether the device must be cold plugged (true) - // or hot plugged (false). - ColdPlug bool -} diff --git a/src/runtime/pkg/device/drivers/block.go b/src/runtime/pkg/device/drivers/block.go index 6088a5c9f5..d2e9644fde 100644 --- a/src/runtime/pkg/device/drivers/block.go +++ b/src/runtime/pkg/device/drivers/block.go @@ -162,22 +162,8 @@ func (device *BlockDevice) Save() config.DeviceState { ds := device.GenericDevice.Save() ds.Type = string(device.DeviceType()) - drive := device.BlockDrive - if drive != nil { - ds.BlockDrive = &config.BlockDriveState{ - File: drive.File, - Format: drive.Format, - ID: drive.ID, - Index: drive.Index, - MmioAddr: drive.MmioAddr, - PCIPath: drive.PCIPath, - SCSIAddr: drive.SCSIAddr, - NvdimmID: drive.NvdimmID, - VirtPath: drive.VirtPath, - DevNo: drive.DevNo, - Pmem: drive.Pmem, - } - } + ds.BlockDrive = device.BlockDrive + return ds } @@ -186,23 +172,7 @@ func (device *BlockDevice) Load(ds config.DeviceState) { device.GenericDevice = &GenericDevice{} device.GenericDevice.Load(ds) - bd := ds.BlockDrive - if bd == nil { - return - } - device.BlockDrive = &config.BlockDrive{ - File: bd.File, - Format: bd.Format, - ID: bd.ID, - Index: bd.Index, - MmioAddr: bd.MmioAddr, - PCIPath: bd.PCIPath, - SCSIAddr: bd.SCSIAddr, - NvdimmID: bd.NvdimmID, - VirtPath: bd.VirtPath, - DevNo: bd.DevNo, - Pmem: bd.Pmem, - } + device.BlockDrive = ds.BlockDrive } // It should implement GetAttachCount() and DeviceID() as api.Device implementation diff --git a/src/runtime/pkg/device/drivers/vfio.go b/src/runtime/pkg/device/drivers/vfio.go index ed791f8416..58658b0b88 100644 --- a/src/runtime/pkg/device/drivers/vfio.go +++ b/src/runtime/pkg/device/drivers/vfio.go @@ -180,12 +180,7 @@ func (device *VFIODevice) Save() config.DeviceState { devs := device.VfioDevs for _, dev := range devs { if dev != nil { - ds.VFIODevs = append(ds.VFIODevs, &config.VFIODevState{ - ID: dev.ID, - Type: uint32(dev.Type), - BDF: dev.BDF, - SysfsDev: dev.SysfsDev, - }) + ds.VFIODevs = append(ds.VFIODevs, dev) } } return ds diff --git a/src/runtime/pkg/device/drivers/vhost_user_blk.go b/src/runtime/pkg/device/drivers/vhost_user_blk.go index 75d65d0a5a..49c66e7117 100644 --- a/src/runtime/pkg/device/drivers/vhost_user_blk.go +++ b/src/runtime/pkg/device/drivers/vhost_user_blk.go @@ -158,17 +158,8 @@ func (device *VhostUserBlkDevice) GetDeviceInfo() interface{} { func (device *VhostUserBlkDevice) Save() config.DeviceState { ds := device.GenericDevice.Save() ds.Type = string(device.DeviceType()) + ds.VhostUserDev = device.VhostUserDeviceAttrs - vAttr := device.VhostUserDeviceAttrs - if vAttr != nil { - ds.VhostUserDev = &config.VhostUserDeviceAttrsState{ - DevID: vAttr.DevID, - SocketPath: vAttr.SocketPath, - Type: string(vAttr.Type), - PCIPath: vAttr.PCIPath, - Index: vAttr.Index, - } - } return ds } @@ -176,19 +167,7 @@ func (device *VhostUserBlkDevice) Save() config.DeviceState { func (device *VhostUserBlkDevice) Load(ds config.DeviceState) { device.GenericDevice = &GenericDevice{} device.GenericDevice.Load(ds) - - dev := ds.VhostUserDev - if dev == nil { - return - } - - device.VhostUserDeviceAttrs = &config.VhostUserDeviceAttrs{ - DevID: dev.DevID, - SocketPath: dev.SocketPath, - Type: config.DeviceType(dev.Type), - PCIPath: dev.PCIPath, - Index: dev.Index, - } + device.VhostUserDeviceAttrs = ds.VhostUserDev } // It should implement GetAttachCount() and DeviceID() as api.Device implementation diff --git a/src/runtime/pkg/device/drivers/vhost_user_net.go b/src/runtime/pkg/device/drivers/vhost_user_net.go index 7441c2d892..39c38751e2 100644 --- a/src/runtime/pkg/device/drivers/vhost_user_net.go +++ b/src/runtime/pkg/device/drivers/vhost_user_net.go @@ -18,7 +18,7 @@ import ( // VhostUserNetDevice is a network vhost-user based device type VhostUserNetDevice struct { *GenericDevice - config.VhostUserDeviceAttrs + *config.VhostUserDeviceAttrs } // @@ -70,19 +70,16 @@ func (device *VhostUserNetDevice) DeviceType() config.DeviceType { // GetDeviceInfo returns device information used for creating func (device *VhostUserNetDevice) GetDeviceInfo() interface{} { device.Type = device.DeviceType() - return &device.VhostUserDeviceAttrs + return device.VhostUserDeviceAttrs } // Save converts Device to DeviceState func (device *VhostUserNetDevice) Save() config.DeviceState { ds := device.GenericDevice.Save() ds.Type = string(device.DeviceType()) - ds.VhostUserDev = &config.VhostUserDeviceAttrsState{ - DevID: device.DevID, - SocketPath: device.SocketPath, - Type: string(device.Type), - MacAddress: device.MacAddress, - } + + ds.VhostUserDev = device.VhostUserDeviceAttrs + return ds } @@ -91,17 +88,7 @@ func (device *VhostUserNetDevice) Load(ds config.DeviceState) { device.GenericDevice = &GenericDevice{} device.GenericDevice.Load(ds) - dev := ds.VhostUserDev - if dev == nil { - return - } - - device.VhostUserDeviceAttrs = config.VhostUserDeviceAttrs{ - DevID: dev.DevID, - SocketPath: dev.SocketPath, - Type: config.DeviceType(dev.Type), - MacAddress: dev.MacAddress, - } + device.VhostUserDeviceAttrs = ds.VhostUserDev } // It should implement GetAttachCount() and DeviceID() as api.Device implementation diff --git a/src/runtime/pkg/device/drivers/vhost_user_scsi.go b/src/runtime/pkg/device/drivers/vhost_user_scsi.go index 7fbcc382c4..bb9fe97227 100644 --- a/src/runtime/pkg/device/drivers/vhost_user_scsi.go +++ b/src/runtime/pkg/device/drivers/vhost_user_scsi.go @@ -18,7 +18,7 @@ import ( // VhostUserSCSIDevice is a SCSI vhost-user based device type VhostUserSCSIDevice struct { *GenericDevice - config.VhostUserDeviceAttrs + *config.VhostUserDeviceAttrs } // @@ -70,19 +70,15 @@ func (device *VhostUserSCSIDevice) DeviceType() config.DeviceType { // GetDeviceInfo returns device information used for creating func (device *VhostUserSCSIDevice) GetDeviceInfo() interface{} { device.Type = device.DeviceType() - return &device.VhostUserDeviceAttrs + return device.VhostUserDeviceAttrs } // Save converts Device to DeviceState func (device *VhostUserSCSIDevice) Save() config.DeviceState { ds := device.GenericDevice.Save() ds.Type = string(device.DeviceType()) - ds.VhostUserDev = &config.VhostUserDeviceAttrsState{ - DevID: device.DevID, - SocketPath: device.SocketPath, - Type: string(device.Type), - MacAddress: device.MacAddress, - } + ds.VhostUserDev = device.VhostUserDeviceAttrs + return ds } @@ -91,17 +87,7 @@ func (device *VhostUserSCSIDevice) Load(ds config.DeviceState) { device.GenericDevice = &GenericDevice{} device.GenericDevice.Load(ds) - dev := ds.VhostUserDev - if dev == nil { - return - } - - device.VhostUserDeviceAttrs = config.VhostUserDeviceAttrs{ - DevID: dev.DevID, - SocketPath: dev.SocketPath, - Type: config.DeviceType(dev.Type), - MacAddress: dev.MacAddress, - } + device.VhostUserDeviceAttrs = ds.VhostUserDev } // It should implement GetAttachCount() and DeviceID() as api.Device implementation