pub(crate) struct Storage {
pub physical_root: Dir,
pub physical_root_path: Utf8PathBuf,
pub boot_dir: Option<Dir>,
pub esp: Option<TempMount>,
run: Dir,
ostree: OnceCell<SysrootLock>,
composefs: OnceCell<Arc<Repository<Sha512HashValue>>>,
imgstore: OnceCell<CStorage>,
}Expand description
A reference to a physical filesystem root, plus accessors for the different types of container storage.
Fields§
§physical_root: DirDirectory holding the physical root
physical_root_path: Utf8PathBufAbsolute path to the physical root directory.
This is /sysroot on a running system, or the target mount point during install.
boot_dir: Option<Dir>The ‘boot’ directory, useful and Some only for composefs systems
For grub booted systems, this points to /sysroot/boot
For systemd booted systems, this points to the ESP
esp: Option<TempMount>The ESP mounted at a tmp location
run: DirOur runtime state
ostree: OnceCell<SysrootLock>The OSTree storage
composefs: OnceCell<Arc<Repository<Sha512HashValue>>>The composefs storage
imgstore: OnceCell<CStorage>The containers-image storage used for LBIs
Implementations§
Source§impl Storage
impl Storage
Sourcepub fn new_ostree(sysroot: SysrootLock, run: &Dir) -> Result<Self>
pub fn new_ostree(sysroot: SysrootLock, run: &Dir) -> Result<Self>
Create a new storage accessor from an existing ostree sysroot.
This is used for non-booted scenarios (e.g., bootc install) where
we’re operating on a target filesystem rather than the running system.
Sourcepub(crate) fn require_boot_dir(&self) -> Result<&Dir>
pub(crate) fn require_boot_dir(&self) -> Result<&Dir>
Returns boot_dir if it exists
Sourcepub(crate) fn get_ostree(&self) -> Result<&SysrootLock>
pub(crate) fn get_ostree(&self) -> Result<&SysrootLock>
Access the underlying ostree repository
Sourcepub(crate) fn get_ostree_cloned(&self) -> Result<Sysroot>
pub(crate) fn get_ostree_cloned(&self) -> Result<Sysroot>
Get a cloned reference to the ostree sysroot.
This is used when code needs an owned ostree::Sysroot rather than
a reference to the SysrootLock.
Sourcepub(crate) fn get_ensure_imgstore(&self) -> Result<&CStorage>
pub(crate) fn get_ensure_imgstore(&self) -> Result<&CStorage>
Access the image storage; will automatically initialize it if necessary.
Sourcepub(crate) fn get_ensure_composefs(
&self,
) -> Result<Arc<Repository<Sha512HashValue>>>
pub(crate) fn get_ensure_composefs( &self, ) -> Result<Arc<Repository<Sha512HashValue>>>
Access the composefs repository; will automatically initialize it if necessary.
This lazily opens the composefs repository, creating the directory if needed and bootstrapping verity settings from the ostree configuration.
Sourcepub(crate) fn update_mtime(&self) -> Result<()>
pub(crate) fn update_mtime(&self) -> Result<()>
Update the mtime on the storage root directory
Auto Trait Implementations§
impl !Freeze for Storage
impl !RefUnwindSafe for Storage
impl Send for Storage
impl !Sync for Storage
impl Unpin for Storage
impl UnwindSafe for Storage
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<D> OwoColorize for D
impl<D> OwoColorize for D
§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg] or
a color-specific method, such as [OwoColorize::green], Read more§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg] or
a color-specific method, such as [OwoColorize::on_yellow], Read more