From 3fbd1b5ddcbc1fbd15689bf74c8e3a0def08c4cc Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Tue, 2 Dec 2025 11:43:48 -0500 Subject: [PATCH] Add plugin support for trustee Signed-off-by: Salman Ahmed --- .../kbs_protocol/src/client/rcar_client.rs | 19 +++++++++++++++---- .../kbs_protocol/src/client/token_client.rs | 19 +++++++++++++++---- 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/attestation-agent/kbs_protocol/src/client/rcar_client.rs b/attestation-agent/kbs_protocol/src/client/rcar_client.rs index a8f9d5767..1c8558883 100644 --- a/attestation-agent/kbs_protocol/src/client/rcar_client.rs +++ b/attestation-agent/kbs_protocol/src/client/rcar_client.rs @@ -309,10 +309,21 @@ impl KbsClient> { #[async_trait] impl KbsClientCapabilities for KbsClient> { async fn get_resource(&mut self, resource_uri: ResourceUri) -> Result> { - let mut remote_url = format!( - "{}/{KBS_PREFIX}/resource/{}/{}/{}", - self.kbs_host_url, resource_uri.repository, resource_uri.r#type, resource_uri.tag - ); + let mut remote_url = if resource_uri.repository == "plugin" { + // plugin case → format: {host}/{KBS_PREFIX}/{plugin_name}/{tag} + format!( + "{}/{KBS_PREFIX}/{}/{}", + self.kbs_host_url, + resource_uri.r#type, // plugin name + resource_uri.tag + ) + } else { + // resource plugin case → format: {host}/{KBS_PREFIX}/resource/{repository}/{type}/{tag} + format!( + "{}/{KBS_PREFIX}/resource/{}/{}/{}", + self.kbs_host_url, resource_uri.repository, resource_uri.r#type, resource_uri.tag + ) + }; if let Some(ref q) = resource_uri.query { remote_url = format!("{remote_url}?{q}"); } diff --git a/attestation-agent/kbs_protocol/src/client/token_client.rs b/attestation-agent/kbs_protocol/src/client/token_client.rs index 96e8b71b6..7adefe555 100644 --- a/attestation-agent/kbs_protocol/src/client/token_client.rs +++ b/attestation-agent/kbs_protocol/src/client/token_client.rs @@ -31,10 +31,21 @@ impl KbsClient> { #[async_trait] impl KbsClientCapabilities for KbsClient> { async fn get_resource(&mut self, resource_uri: ResourceUri) -> Result> { - let mut remote_url = format!( - "{}/{KBS_PREFIX}/resource/{}/{}/{}", - self.kbs_host_url, resource_uri.repository, resource_uri.r#type, resource_uri.tag - ); + let mut remote_url = if resource_uri.repository == "plugin" { + // plugin case → format: {host}/{KBS_PREFIX}/{plugin_name}/{tag} + format!( + "{}/{KBS_PREFIX}/{}/{}", + self.kbs_host_url, + resource_uri.r#type, // plugin name + resource_uri.tag + ) + } else { + // resource plugin case → format: {host}/{KBS_PREFIX}/resource/{repository}/{type}/{tag} + format!( + "{}/{KBS_PREFIX}/resource/{}/{}/{}", + self.kbs_host_url, resource_uri.repository, resource_uri.r#type, resource_uri.tag + ) + }; if let Some(ref q) = resource_uri.query { remote_url = format!("{remote_url}?{q}"); }