vmconfig: remove path (use paths always)
Fixes: 190503456
Test: MicrodroidHostTestCases
Change-Id: I083eaacf5057337334467713ab3f8d12813491e2
diff --git a/microdroid/microdroid.json b/microdroid/microdroid.json
index fbbee29..b1ef86a 100644
--- a/microdroid/microdroid.json
+++ b/microdroid/microdroid.json
@@ -5,23 +5,23 @@
"partitions": [
{
"label": "boot_a",
- "path": "/apex/com.android.virt/etc/fs/microdroid_boot-5.10.img"
+ "paths": ["/apex/com.android.virt/etc/fs/microdroid_boot-5.10.img"]
},
{
"label": "vendor_boot_a",
- "path": "/apex/com.android.virt/etc/fs/microdroid_vendor_boot-5.10.img"
+ "paths": ["/apex/com.android.virt/etc/fs/microdroid_vendor_boot-5.10.img"]
},
{
"label": "vbmeta_a",
- "path": "/apex/com.android.virt/etc/fs/microdroid_vbmeta.img"
+ "paths": ["/apex/com.android.virt/etc/fs/microdroid_vbmeta.img"]
},
{
"label": "vbmeta_system_a",
- "path": "/apex/com.android.virt/etc/fs/microdroid_vbmeta_system.img"
+ "paths": ["/apex/com.android.virt/etc/fs/microdroid_vbmeta_system.img"]
},
{
"label": "super",
- "path": "/apex/com.android.virt/etc/fs/microdroid_super.img"
+ "paths": ["/apex/com.android.virt/etc/fs/microdroid_super.img"]
}
],
"writable": false
@@ -30,7 +30,7 @@
"partitions": [
{
"label": "uboot_env",
- "path": "/apex/com.android.virt/etc/uboot_env.img"
+ "paths": ["/apex/com.android.virt/etc/uboot_env.img"]
}
],
"writable": false
diff --git a/virtualizationservice/src/payload.rs b/virtualizationservice/src/payload.rs
index 19a6d9f..aaf43e4 100644
--- a/virtualizationservice/src/payload.rs
+++ b/virtualizationservice/src/payload.rs
@@ -102,8 +102,7 @@
// put metadata at the first partition
let mut partitions = vec![Partition {
label: String::from("metadata"),
- path: Some(metadata_path),
- paths: vec![],
+ paths: vec![metadata_path],
writable: false,
}];
@@ -117,9 +116,9 @@
if make_filler(size, &filler_path)? {
filler_count += 1;
- Ok(Partition { label, path: None, paths: vec![path, filler_path], writable: false })
+ Ok(Partition { label, paths: vec![path, filler_path], writable: false })
} else {
- Ok(Partition { label, path: Some(path), paths: vec![], writable: false })
+ Ok(Partition { label, paths: vec![path], writable: false })
}
};
for (i, apex) in apexes.iter().enumerate() {
diff --git a/vmconfig/src/lib.rs b/vmconfig/src/lib.rs
index e5c8e1b..7b0d2a5 100644
--- a/vmconfig/src/lib.rs
+++ b/vmconfig/src/lib.rs
@@ -121,9 +121,6 @@
pub label: String,
/// The filename of the partition image.
#[serde(default)]
- pub path: Option<PathBuf>,
- /// The filename of the partition image.
- #[serde(default)]
pub paths: Vec<PathBuf>,
/// Whether the partition should be writable.
#[serde(default)]
@@ -132,26 +129,15 @@
impl Partition {
fn to_parcelable(&self) -> Result<AidlPartition> {
- if !self.paths.is_empty() {
- if self.path.is_some() {
- bail!("Partition {} contains both path/paths", &self.label);
- }
- let images = self
- .paths
- .iter()
- .map(|path| open_parcel_file(&path, self.writable))
- .collect::<Result<Vec<_>, _>>()?;
- Ok(AidlPartition { images, writable: self.writable, label: self.label.to_owned() })
- } else {
- let path = self.path.as_ref().ok_or_else(|| {
- Error::msg(format!("Partition {} doesn't set path/paths", &self.label))
- })?;
- Ok(AidlPartition {
- images: vec![open_parcel_file(&path, self.writable)?],
- writable: self.writable,
- label: self.label.to_owned(),
- })
+ if self.paths.is_empty() {
+ bail!("Partition {} contains no paths", &self.label);
}
+ let images = self
+ .paths
+ .iter()
+ .map(|path| open_parcel_file(&path, self.writable))
+ .collect::<Result<Vec<_>, _>>()?;
+ Ok(AidlPartition { images, writable: self.writable, label: self.label.to_owned() })
}
}