From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <pve-devel-bounces@lists.proxmox.com> Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 9BE921FF15E for <inbox@lore.proxmox.com>; Tue, 20 May 2025 14:43:54 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id D06D41CDE1; Tue, 20 May 2025 14:43:37 +0200 (CEST) From: Filip Schauer <f.schauer@proxmox.com> To: pve-devel@lists.proxmox.com Date: Tue, 20 May 2025 14:42:50 +0200 Message-Id: <20250520124257.165949-3-f.schauer@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250520124257.165949-1-f.schauer@proxmox.com> References: <20250520124257.165949-1-f.schauer@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.018 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [genpackage.pl, oci.rs, lib.rs] Subject: [pve-devel] [PATCH proxmox-perl-rs 2/9] add Perl mapping for OCI container image parser X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com> List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe> List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/> List-Post: <mailto:pve-devel@lists.proxmox.com> List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help> List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe> Reply-To: Proxmox VE development discussion <pve-devel@lists.proxmox.com> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com> Signed-off-by: Filip Schauer <f.schauer@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