Signed-off-by: Filip Schauer <f.scha...@proxmox.com> --- pve-rs/Cargo.toml | 2 ++ pve-rs/Makefile | 1 + pve-rs/src/lib.rs | 1 + pve-rs/src/oci.rs | 20 ++++++++++++++++++++ 4 files changed, 24 insertions(+) create mode 100644 pve-rs/src/oci.rs
diff --git a/pve-rs/Cargo.toml b/pve-rs/Cargo.toml index 82ebce4..2ca5f9f 100644 --- a/pve-rs/Cargo.toml +++ b/pve-rs/Cargo.toml @@ -21,6 +21,7 @@ hex = "0.4" http = "0.2.7" libc = "0.2" nix = "0.26" +oci-spec = "0.8.1" openssl = "0.10.40" serde = "1.0" serde_bytes = "0.11" @@ -45,3 +46,4 @@ proxmox-sys = "0.6" proxmox-tfa = { version = "5", features = ["api"] } proxmox-time = "2" proxmox-ve-config = { version = "0.2.1" } +proxmox-oci = "0.1.0" diff --git a/pve-rs/Makefile b/pve-rs/Makefile index 4a5a277..b9c07c0 100644 --- a/pve-rs/Makefile +++ b/pve-rs/Makefile @@ -28,6 +28,7 @@ PERLMOD_GENPACKAGE := /usr/lib/perlmod/genpackage.pl \ PERLMOD_PACKAGES := \ PVE::RS::Firewall::SDN \ + PVE::RS::OCI \ PVE::RS::OpenId \ PVE::RS::ResourceScheduling::Static \ PVE::RS::TFA diff --git a/pve-rs/src/lib.rs b/pve-rs/src/lib.rs index bb979b9..1fe9e77 100644 --- a/pve-rs/src/lib.rs +++ b/pve-rs/src/lib.rs @@ -12,6 +12,7 @@ use proxmox_notify::{Config, Notification, Severity}; mod common; pub mod firewall; +pub mod oci; pub mod openid; pub mod bindings; diff --git a/pve-rs/src/oci.rs b/pve-rs/src/oci.rs new file mode 100644 index 0000000..3ce06c0 --- /dev/null +++ b/pve-rs/src/oci.rs @@ -0,0 +1,20 @@ +#[perlmod::package(name = "PVE::RS::OCI")] +mod export { + use anyhow::{bail, Error}; + use oci_spec::image::Config; + use proxmox_oci::ProxmoxOciError; + + #[export] + pub fn parse_oci_image( + oci_tar_path: &str, + rootfs_path: &str, + ) -> Result<Option<Config>, Error> { + match proxmox_oci::parse_oci_image(oci_tar_path, rootfs_path) { + Ok(config) => Ok(Some(config.unwrap_or_default())), + Err(err) => match err { + ProxmoxOciError::NotAnOciImage => Ok(None), + ProxmoxOciError::OciSpecError(e) => bail!("{e}"), + } + } + } +} -- 2.39.5 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel