Merge pull request #8620 from Apokleos/enhance-directv-using-csi

runtime-rs: Enhancement of DirectVolume when using a dedicated CSI
This commit is contained in:
Alex.Lyn 2023-12-14 22:59:09 +08:00 committed by GitHub
commit c7c7632203
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 2 deletions

View File

@ -94,14 +94,18 @@ impl Mount {
#[derive(Debug, Clone, Eq, PartialEq, Default, Serialize, Deserialize)]
pub struct DirectVolumeMountInfo {
/// The type of the volume (ie. block)
#[serde(rename = "volume-type")]
pub volume_type: String,
/// The device backing the volume.
pub device: String,
/// The filesystem type to be mounted on the volume.
#[serde(rename = "fstype")]
pub fs_type: String,
/// Additional metadata to pass to the agent regarding this volume.
#[serde(default, skip_serializing_if = "HashMap::is_empty")]
pub metadata: HashMap<String, String>,
/// Additional mount options.
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub options: Vec<String>,
}

View File

@ -3,7 +3,7 @@
// SPDX-License-Identifier: Apache-2.0
//
use anyhow::{Context, Result};
use anyhow::{anyhow, Context, Result};
use kata_types::mount::{
get_volume_mount_info, join_path, DirectVolumeMountInfo, KATA_DIRECT_VOLUME_ROOT_PATH,
@ -28,5 +28,12 @@ pub fn get_direct_volume_path(volume_path: &str) -> Result<String> {
let volume_full_path =
join_path(KATA_DIRECT_VOLUME_ROOT_PATH, volume_path).context("failed to join path.")?;
Ok(volume_full_path.display().to_string())
if volume_full_path.exists() {
Ok(volume_full_path.display().to_string())
} else {
Err(anyhow!(format!(
"direct volume path {:?} Not Found",
&volume_full_path
)))
}
}