Skip to content

Commit

Permalink
Updates for method name changes, moves size limit lookup into add_ext…
Browse files Browse the repository at this point in the history
…ernal_data

Signed-off-by: David Gilligan-Cook <dcook@imageworks.com>
  • Loading branch information
dcookspi committed Sep 29, 2023
1 parent 6e56145 commit d1a71b5
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 16 deletions.
4 changes: 1 addition & 3 deletions crates/spfs-cli/main/src/cmd_run.rs
Original file line number Diff line number Diff line change
Expand Up @@ -245,9 +245,7 @@ impl CmdRun {
if !data.is_empty() {
tracing::debug!("with extra external data: {data:?}");
for (key, value) in data {
runtime
.add_external_data(key, value, config.filesystem.external_data_size_limit)
.await?;
runtime.add_external_data(key, value).await?;
}
}

Expand Down
5 changes: 4 additions & 1 deletion crates/spfs/src/runtime/storage.rs
Original file line number Diff line number Diff line change
Expand Up @@ -485,8 +485,11 @@ impl Runtime {
&mut self,
key: String,
value: String,
size_limit: usize,
//size_limit: usize,
) -> Result<()> {
let config = crate::config::get_config()?;
let size_limit = config.filesystem.external_data_size_limit;

tracing::debug!(
"about to insert external data key: {} => value: {} [len: {} > {}]",
key,
Expand Down
13 changes: 4 additions & 9 deletions crates/spfs/src/runtime/storage_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,6 @@ async fn test_storage_runtime_with_external_data(tmpdir: tempfile::TempDir) {
.unwrap(),
);
let storage = Storage::new(repo);
let limit: usize = 16 * 1024;

let keep_runtime = false;
let extra_mounts = None;
Expand All @@ -117,15 +116,12 @@ async fn test_storage_runtime_with_external_data(tmpdir: tempfile::TempDir) {
// Test - insert new data
let key = "somefield".to_string();
let value = "somevalue".to_string();
assert!(runtime
.add_external_data(key.clone(), value, limit)
.await
.is_ok());
assert!(runtime.add_external_data(key.clone(), value).await.is_ok());

// Test - insert over existing data
let value2 = "someothervalue".to_string();
assert!(runtime
.add_external_data(key.clone(), value2.clone(), limit)
.add_external_data(key.clone(), value2.clone())
.await
.is_ok());

Expand Down Expand Up @@ -193,7 +189,6 @@ async fn test_storage_runtime_with_external_data_all(tmpdir: tempfile::TempDir)
.unwrap(),
);
let storage = Storage::new(repo);
let limit: usize = 16 * 1024;

let keep_runtime = false;
let extra_mounts = None;
Expand All @@ -206,14 +201,14 @@ async fn test_storage_runtime_with_external_data_all(tmpdir: tempfile::TempDir)
let key = "somefield".to_string();
let value = "somevalue".to_string();
assert!(runtime
.add_external_data(key.clone(), value.clone(), limit)
.add_external_data(key.clone(), value.clone())
.await
.is_ok());

let key2 = "somefield2".to_string();
let value2 = "somevalue2".to_string();
assert!(runtime
.add_external_data(key2.clone(), value2.clone(), limit)
.add_external_data(key2.clone(), value2.clone())
.await
.is_ok());

Expand Down
4 changes: 2 additions & 2 deletions crates/spk-cli/common/src/env.rs
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,8 @@ pub async fn current_env() -> crate::Result<Solution> {

// Pull the stored packages to solve data out of the runtime
let solve_data: PackagesToSolveData =
if let Some(json_data) = runtime.extra_data(&SPK_SOLVE_EXTRA_DATA_KEY.to_string()) {
serde_json::from_str(json_data).map_err(|err| Error::String(err.to_string()))?
if let Some(json_data) = runtime.external_data(SPK_SOLVE_EXTRA_DATA_KEY).await? {
serde_json::from_str(&json_data).map_err(|err| Error::String(err.to_string()))?
} else {
// Fallback for older runtimes without any requested by extra data.
Default::default()
Expand Down
3 changes: 2 additions & 1 deletion crates/spk-exec/src/exec.rs
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,8 @@ pub async fn setup_runtime(rt: &mut spfs::runtime::Runtime, solution: &Solution)
// runtime can access it.
let solve_data = serde_json::to_string(&solution.packages_to_solve_data())
.map_err(|err| Error::String(err.to_string()))?;
rt.insert_extra_data(SPK_SOLVE_EXTRA_DATA_KEY.to_string(), solve_data);
rt.add_external_data(SPK_SOLVE_EXTRA_DATA_KEY.to_string(), solve_data)
.await?;

rt.save_state_to_storage().await?;
spfs::remount_runtime(rt).await?;
Expand Down

0 comments on commit d1a71b5

Please sign in to comment.