Skip to content

Commit

Permalink
Merge pull request containers#728 from cgwalters/storage-install-time
Browse files Browse the repository at this point in the history
storage: Two prep changes
  • Loading branch information
cgwalters authored Jul 25, 2024
2 parents 45178c3 + fe6407a commit a557143
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 7 deletions.
2 changes: 1 addition & 1 deletion lib/src/cli.rs
Original file line number Diff line number Diff line change
Expand Up @@ -433,7 +433,7 @@ pub(crate) async fn get_locked_sysroot() -> Result<ostree_ext::sysroot::SysrootL
#[context("Initializing storage")]
pub(crate) async fn get_storage() -> Result<crate::store::Storage> {
let sysroot = get_locked_sysroot().await?;
Ok(crate::store::Storage::new(sysroot))
crate::store::Storage::new(sysroot)
}

#[context("Querying root privilege")]
Expand Down
9 changes: 5 additions & 4 deletions lib/src/install.rs
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ use self::baseline::InstallBlockDeviceOpts;
use crate::containerenv::ContainerExecutionInfo;
use crate::mount::Filesystem;
use crate::spec::ImageReference;
use crate::store::Storage;
use crate::task::Task;
use crate::utils::sigpolicy_from_opts;

Expand Down Expand Up @@ -549,7 +550,7 @@ pub(crate) fn print_configuration() -> Result<()> {
}

#[context("Creating ostree deployment")]
async fn initialize_ostree_root(state: &State, root_setup: &RootSetup) -> Result<ostree::Sysroot> {
async fn initialize_ostree_root(state: &State, root_setup: &RootSetup) -> Result<Storage> {
let sepolicy = state.load_policy()?;
let sepolicy = sepolicy.as_ref();
// Load a fd for the mounted target physical root
Expand Down Expand Up @@ -608,7 +609,8 @@ async fn initialize_ostree_root(state: &State, root_setup: &RootSetup) -> Result

let sysroot = ostree::Sysroot::new(Some(&gio::File::for_path(rootfs)));
sysroot.load(cancellable)?;
Ok(sysroot)
let sysroot = SysrootLock::new_from_sysroot(&sysroot).await?;
Storage::new(sysroot)
}

#[context("Creating ostree deployment")]
Expand Down Expand Up @@ -1270,11 +1272,10 @@ async fn prepare_install(
async fn install_with_sysroot(
state: &State,
rootfs: &RootSetup,
sysroot: &ostree::Sysroot,
sysroot: &Storage,
boot_uuid: &str,
bound_images: &[crate::boundimage::ResolvedBoundImage],
) -> Result<()> {
let sysroot = SysrootLock::new_from_sysroot(&sysroot).await?;
// And actually set up the container in that root, returning a deployment and
// the aleph state (see below).
let (deployment, aleph) = install_container(state, rootfs, &sysroot).await?;
Expand Down
4 changes: 2 additions & 2 deletions lib/src/store/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ impl Deref for Storage {
}

impl Storage {
pub fn new(sysroot: SysrootLock) -> Self {
pub fn new(sysroot: SysrootLock) -> Result<Self> {
let store = match env::var("BOOTC_STORAGE") {
Ok(val) => crate::spec::Store::from_str(&val, true).unwrap_or_else(|_| {
let default = crate::spec::Store::default();
Expand All @@ -60,7 +60,7 @@ impl Storage {

let store = load(store);

Self { sysroot, store }
Ok(Self { sysroot, store })
}
}

Expand Down

0 comments on commit a557143

Please sign in to comment.