From 52e7b5b485a9a1e3b39c03af533430223612374c Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Sun, 4 May 2025 16:53:55 +0300 Subject: [PATCH] refactor(snix/build): drop build_request from Build{Result,Response} Back when initially working on this, having all info about the Build in one struct seemed a good idea for some future CI interface, but right now this simply raises more questions and is quite theoretic. Let's drop it for now, we can reintroduce it, or other request methods when we get to it. Change-Id: I105a8d5ae8bd7e0d5f8ee3e7edf2597100b43119 Reviewed-on: https://cl.snix.dev/c/snix/+/30425 Autosubmit: Florian Klink Tested-by: besadii Reviewed-by: Vova Kryachko --- snix/build/protos/build.proto | 5 +---- snix/build/src/buildservice/build_request.rs | 3 --- snix/build/src/buildservice/oci.rs | 11 ++++------- snix/build/src/proto/mod.rs | 6 ------ 4 files changed, 5 insertions(+), 20 deletions(-) diff --git a/snix/build/protos/build.proto b/snix/build/protos/build.proto index 01f35be40..811c47ee7 100644 --- a/snix/build/protos/build.proto +++ b/snix/build/protos/build.proto @@ -156,12 +156,9 @@ message BuildRequest { // A BuildResponse is (one possible) outcome of executing a [BuildRequest]. message BuildResponse { - // The orginal build request producing the build. - BuildRequest build_request = 1; // <- TODO: define hashing scheme for BuildRequest, refer to it by hash? - // The outputs that were produced after successfully building. // They are provided in the same order as specified in the [BuildRequest]. - repeated Output outputs = 2; + repeated Output outputs = 1; message Output { // Output entry produced by the build. It may not contain a name, diff --git a/snix/build/src/buildservice/build_request.rs b/snix/build/src/buildservice/build_request.rs index c4fd6e56f..2f54c5700 100644 --- a/snix/build/src/buildservice/build_request.rs +++ b/snix/build/src/buildservice/build_request.rs @@ -133,9 +133,6 @@ pub struct AdditionalFile { /// Describes the result of a [BuildRequest]. #[derive(Debug, Clone, PartialEq)] pub struct BuildResult { - /// The original BuildRequest. - pub build_request: BuildRequest, - /// The outputs that were produced after successfully building. // They are sorted by the order specified in the build request. pub outputs: Vec, diff --git a/snix/build/src/buildservice/oci.rs b/snix/build/src/buildservice/oci.rs index c93859aed..fcd648c2a 100644 --- a/snix/build/src/buildservice/oci.rs +++ b/snix/build/src/buildservice/oci.rs @@ -86,7 +86,7 @@ where .map_err(std::io::Error::other)?; // assemble a BTreeMap of Nodes to pass into SnixStoreFs. - let patterns = ReferencePattern::new(request.refscan_needles.clone()); + let patterns = ReferencePattern::new(request.refscan_needles); // NOTE: impl Drop for FuseDaemon unmounts, so if the call is cancelled, umount. let _fuse_daemon = tokio::task::spawn_blocking({ let blob_service = self.blob_service.clone(); @@ -94,7 +94,7 @@ where let dest = bundle_path.join("inputs"); - let root_nodes = Box::new(request.inputs.clone()); + let root_nodes = Box::new(request.inputs); move || { let fs = snix_castore::fs::SnixStoreFs::new( blob_service, @@ -143,7 +143,7 @@ where // mostly IO bound. let outputs = futures::future::try_join_all(host_output_paths.into_iter().enumerate().map( |(i, host_output_path)| { - let output_path = request.outputs[i].clone(); + let output_path = &request.outputs[i]; let patterns = patterns.clone(); async move { debug!(host.path=?host_output_path, output.path=?output_path, "ingesting path"); @@ -178,10 +178,7 @@ where )) .await?; - Ok(BuildResult { - build_request: request, - outputs, - }) + Ok(BuildResult { outputs }) } } diff --git a/snix/build/src/proto/mod.rs b/snix/build/src/proto/mod.rs index 82a9c2bff..23348a09e 100644 --- a/snix/build/src/proto/mod.rs +++ b/snix/build/src/proto/mod.rs @@ -282,7 +282,6 @@ impl TryFrom for crate::buildservice::BuildRequest { impl From for BuildResponse { fn from(value: BuildResult) -> Self { Self { - build_request: Some(value.build_request.into()), outputs: value .outputs .into_iter() @@ -303,11 +302,6 @@ impl TryFrom for BuildResult { fn try_from(value: BuildResponse) -> Result { Ok(Self { - build_request: value - .build_request - .ok_or(ValidateBuildResultError::MissingRequestField)? - .try_into() - .map_err(ValidateBuildResultError::InvalidBuildRequest)?, outputs: value .outputs .into_iter()