From d15a7baedd9705013741c9023058143420ea9a93 Mon Sep 17 00:00:00 2001 From: Hui Zhu Date: Mon, 30 Dec 2024 17:55:49 +0800 Subject: [PATCH] kata-ctl: direct-volume: Auto create KATA_DIRECT_VOLUME_ROOT_PATH Got following issue: kata-ctl direct-volume add /kubelet/kata-direct-vol-002/directvol002 "{\"device\": \"/home/t4/teawater/coco/t.img\", \"volume-type\": \"directvol\", \"fstype\": \"\", \"metadata\":"{}", \"options\": []}" subsystem: kata-ctl_main Dec 30 09:43:41.150 ERRO Os { code: 2, kind: NotFound, message: "No such file or directory", } The reason is KATA_DIRECT_VOLUME_ROOT_PATH is not exist. This commit create_dir_all KATA_DIRECT_VOLUME_ROOT_PATH before join_path to handle this issue. Fixes: #10695 Signed-off-by: Hui Zhu --- src/tools/kata-ctl/src/ops/volume_ops.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/tools/kata-ctl/src/ops/volume_ops.rs b/src/tools/kata-ctl/src/ops/volume_ops.rs index 2f7fded4e0a9..8a9667b6ce45 100644 --- a/src/tools/kata-ctl/src/ops/volume_ops.rs +++ b/src/tools/kata-ctl/src/ops/volume_ops.rs @@ -100,6 +100,7 @@ async fn stats(volume_path: &str) -> Result> { // add writes the mount info (json string) of a direct volume into a filesystem path known to Kata Containers. pub fn add(volume_path: &str, mount_info: &str) -> Result> { + fs::create_dir_all(KATA_DIRECT_VOLUME_ROOT_PATH)?; let mount_info_dir_path = join_path(KATA_DIRECT_VOLUME_ROOT_PATH, volume_path)?; // create directory if missing