mirror of
https://github.com/aljazceru/kata-containers.git
synced 2025-12-17 22:34:25 +01:00
Refactor the container builder code (`InitContainer` and `ActivatedContainer`) to make it easier to understand and to maintain. The details: 1. Separate the existing `builder.rs` into an `init_builder.rs` and `activated_builder.rs` to make them easy to read and maintain. 2. Move the `create_linux_container` function from the `builder.rs` to `container.rs` because it is shared by the both files. 3. Some validation functions such as `validate_spec` from `builder.rs` to `utils.rs` because they will be also used by other components as utilities in the future. Fixes: #5033 Signed-off-by: Manabu Sugimoto <Manabu.Sugimoto@sony.com>
28 lines
750 B
Rust
28 lines
750 B
Rust
// Copyright 2021-2022 Sony Group Corporation
|
|
//
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
//
|
|
|
|
use anyhow::Result;
|
|
use libcontainer::{container::ContainerAction, init_builder::InitContainerBuilder};
|
|
use liboci_cli::Run;
|
|
use slog::{info, Logger};
|
|
use std::path::Path;
|
|
|
|
pub async fn run(opts: Run, root: &Path, logger: &Logger) -> Result<()> {
|
|
let mut launcher = InitContainerBuilder::default()
|
|
.id(opts.container_id)
|
|
.bundle(opts.bundle)
|
|
.root(root.to_path_buf())
|
|
.console_socket(opts.console_socket)
|
|
.pid_file(opts.pid_file)
|
|
.build()?
|
|
.create_launcher(logger)?;
|
|
|
|
launcher.launch(ContainerAction::Run, logger).await?;
|
|
|
|
info!(&logger, "run command finished successfully");
|
|
|
|
Ok(())
|
|
}
|