rough-minister-58256
05/22/2018, 12:39 AMdiff --git a/src/rust/engine/process_execution/src/remote.rs b/src/rust/engine/process_execution/src/remote.rs
index d193a48..d936bad 100644
--- a/src/rust/engine/process_execution/src/remote.rs
+++ b/src/rust/engine/process_execution/src/remote.rs
@@ -332,30 +332,43 @@ impl CommandRunner {
&self,
execute_response: &bazel_protos::remote_execution::ExecuteResponse,
) -> BoxFuture<Bytes, ExecutionError> {
- let stdout = if execute_response.get_result().has_stdout_digest() {
- let stdout_digest = execute_response.get_result().get_stdout_digest().into();
+ let stdout_digest = if execute_response.get_result().has_stdout_digest() {
+ execute_response.get_result().get_stdout_digest() // -> &Digest ?
+ } else {
+ let stdout_raw = Bytes::from(execute_response.get_result().get_stdout_raw());
self
.store
- .load_file_bytes_with(stdout_digest, |v| v)
+ .store_file_bytes(stdout_raw, true)
.map_err(move |error| {
ExecutionError::Fatal(format!(
- "Error fetching stdout digest ({:?}): {:?}",
- stdout_digest, error
+ "Error storing raw stdout ({:?}): {:?}",
+ stdout_raw,
+ error
))
})
- .and_then(move |maybe_value| match maybe_value {
- Some(value) => return Ok(value),
- None => {
- return Err(ExecutionError::Fatal(format!(
- "Couldn't find stdout digest ({:?}), when fetching.",
- stdout_digest
- )))
- }
- })
- .to_boxed()
- } else {
- future::ok(Bytes::from(execute_response.get_result().get_stdout_raw())).to_boxed()
+ .???
};
+
+ let stdout = self
+ .store
+ .load_file_bytes_with(stdout_digest, |v| v)
+ .map_err(move |error| {
+ ExecutionError::Fatal(format!(
+ "Error fetching stdout digest ({:?}): {:?}",
+ stdout_digest, error
+ ))
+ })
+ .and_then(move |maybe_value| match maybe_value {
+ Some(value) => return Ok(value),
+ None => {
+ return Err(ExecutionError::Fatal(format!(
+ "Couldn't find stdout digest ({:?}), when fetching.",
+ stdout_digest
+ )))
+ }
+ })
+ .to_boxed();
+
return stdout;
}