Skip to content

Commit bfc6f08

Browse files
Merge branch 'main' into feature/pre-compute-app-remove-option-fields
2 parents 5d6b31d + 239ba9e commit bfc6f08

File tree

2 files changed

+45
-56
lines changed

2 files changed

+45
-56
lines changed

src/compute/pre_compute_app.rs

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ impl PreComputeAppTrait for PreComputeApp {
156156
fn download_encrypted_dataset(&self) -> Result<Vec<u8>, ReplicateStatusCause> {
157157
let args = &self.pre_compute_args;
158158
let chain_task_id = &self.chain_task_id;
159-
let encrypted_dataset_url = args.encrypted_dataset_url.as_ref().unwrap();
159+
let encrypted_dataset_url: &str = &args.encrypted_dataset_url;
160160

161161
info!(
162162
"Downloading encrypted dataset file [chainTaskId:{chain_task_id}, url:{encrypted_dataset_url}]",
@@ -181,13 +181,10 @@ impl PreComputeAppTrait for PreComputeApp {
181181
.ok_or(ReplicateStatusCause::PreComputeDatasetDownloadFailed)?;
182182

183183
info!("Checking encrypted dataset checksum [chainTaskId:{chain_task_id}]");
184-
let expected_checksum = args
185-
.encrypted_dataset_checksum
186-
.as_ref()
187-
.ok_or(ReplicateStatusCause::PreComputeDatasetDownloadFailed)?;
184+
let expected_checksum: &str = &args.encrypted_dataset_checksum;
188185
let actual_checksum = sha256_from_bytes(&encrypted_content);
189186

190-
if actual_checksum != *expected_checksum {
187+
if actual_checksum != expected_checksum {
191188
error!(
192189
"Invalid dataset checksum [chainTaskId:{chain_task_id}, expected:{expected_checksum}, actual:{actual_checksum}]"
193190
);
@@ -223,11 +220,9 @@ impl PreComputeAppTrait for PreComputeApp {
223220
/// let decrypted = app.decrypt_dataset(&encrypted)?;
224221
/// ```
225222
fn decrypt_dataset(&self, encrypted_content: &[u8]) -> Result<Vec<u8>, ReplicateStatusCause> {
226-
let base64_key = self
223+
let base64_key: &str = &self
227224
.pre_compute_args
228-
.encrypted_dataset_base64_key
229-
.as_ref()
230-
.unwrap();
225+
.encrypted_dataset_base64_key;
231226

232227
let key = general_purpose::STANDARD
233228
.decode(base64_key)
@@ -273,7 +268,7 @@ impl PreComputeAppTrait for PreComputeApp {
273268
let chain_task_id: &str = &self.chain_task_id;
274269
let args = &self.pre_compute_args;
275270
let output_dir: &str = &args.output_dir;
276-
let plain_dataset_filename: &str = args.plain_dataset_filename.as_ref().unwrap();
271+
let plain_dataset_filename: &str = &args.plain_dataset_filename;
277272

278273
let mut path = PathBuf::from(output_dir);
279274
path.push(plain_dataset_filename);
@@ -325,10 +320,10 @@ mod tests {
325320
input_files: urls.into_iter().map(String::from).collect(),
326321
output_dir: output_dir.to_string(),
327322
is_dataset_required: true,
328-
encrypted_dataset_url: Some(HTTP_DATASET_URL.to_string()),
329-
encrypted_dataset_base64_key: Some(ENCRYPTED_DATASET_KEY.to_string()),
330-
encrypted_dataset_checksum: Some(DATASET_CHECKSUM.to_string()),
331-
plain_dataset_filename: Some(PLAIN_DATA_FILE.to_string()),
323+
encrypted_dataset_url: HTTP_DATASET_URL.to_string(),
324+
encrypted_dataset_base64_key: ENCRYPTED_DATASET_KEY.to_string(),
325+
encrypted_dataset_checksum: DATASET_CHECKSUM.to_string(),
326+
plain_dataset_filename: PLAIN_DATA_FILE.to_string(),
332327
},
333328
}
334329
}
@@ -477,7 +472,7 @@ mod tests {
477472
#[test]
478473
fn download_encrypted_dataset_failure_with_invalid_dataset_url() {
479474
let mut app = get_pre_compute_app(CHAIN_TASK_ID, vec![], "");
480-
app.pre_compute_args.encrypted_dataset_url = Some("http://bad-url".to_string());
475+
app.pre_compute_args.encrypted_dataset_url = "http://bad-url".to_string();
481476
let actual_content = app.download_encrypted_dataset();
482477
assert_eq!(
483478
actual_content,
@@ -488,9 +483,9 @@ mod tests {
488483
#[test]
489484
fn download_encrypted_dataset_success_with_valid_iexec_gateway() {
490485
let mut app = get_pre_compute_app(CHAIN_TASK_ID, vec![], "");
491-
app.pre_compute_args.encrypted_dataset_url = Some(IPFS_DATASET_URL.to_string());
486+
app.pre_compute_args.encrypted_dataset_url = IPFS_DATASET_URL.to_string();
492487
app.pre_compute_args.encrypted_dataset_checksum =
493-
Some("0x323b1637c7999942fbebfe5d42fe15dbfe93737577663afa0181938d7ad4a2ac".to_string());
488+
"0x323b1637c7999942fbebfe5d42fe15dbfe93737577663afa0181938d7ad4a2ac".to_string();
494489
let actual_content = app.download_encrypted_dataset();
495490
let expected_content = Ok("hello world !\n".as_bytes().to_vec());
496491
assert_eq!(actual_content, expected_content);
@@ -500,7 +495,7 @@ mod tests {
500495
fn download_encrypted_dataset_failure_with_invalid_gateway() {
501496
let mut app = get_pre_compute_app(CHAIN_TASK_ID, vec![], "");
502497
app.pre_compute_args.encrypted_dataset_url =
503-
Some("/ipfs/INVALID_IPFS_DATASET_URL".to_string());
498+
"/ipfs/INVALID_IPFS_DATASET_URL".to_string();
504499
let actual_content = app.download_encrypted_dataset();
505500
let expected_content = Err(ReplicateStatusCause::PreComputeDatasetDownloadFailed);
506501
assert_eq!(actual_content, expected_content);
@@ -510,7 +505,7 @@ mod tests {
510505
fn download_encrypted_dataset_failure_with_invalid_dataset_checksum() {
511506
let mut app = get_pre_compute_app(CHAIN_TASK_ID, vec![], "");
512507
app.pre_compute_args.encrypted_dataset_checksum =
513-
Some("invalid_dataset_checksum".to_string());
508+
"invalid_dataset_checksum".to_string();
514509
let actual_content = app.download_encrypted_dataset();
515510
let expected_content = Err(ReplicateStatusCause::PreComputeInvalidDatasetChecksum);
516511
assert_eq!(actual_content, expected_content);
@@ -532,7 +527,7 @@ mod tests {
532527
#[test]
533528
fn decrypt_dataset_failure_with_bad_key() {
534529
let mut app = get_pre_compute_app(CHAIN_TASK_ID, vec![], "");
535-
app.pre_compute_args.encrypted_dataset_base64_key = Some("bad_key".to_string());
530+
app.pre_compute_args.encrypted_dataset_base64_key = "bad_key".to_string();
536531
let encrypted_data = app.download_encrypted_dataset().unwrap();
537532
let actual_plain_data = app.decrypt_dataset(&encrypted_data);
538533

@@ -577,7 +572,7 @@ mod tests {
577572

578573
let mut app = get_pre_compute_app(CHAIN_TASK_ID, vec![], output_path);
579574
app.pre_compute_args.plain_dataset_filename =
580-
Some("/some-folder-123/not-found".to_string());
575+
"/some-folder-123/not-found".to_string();
581576
let plain_dataset = "Some very useful data.".as_bytes().to_vec();
582577
let saved_dataset = app.save_plain_dataset_file(&plain_dataset);
583578

src/compute/pre_compute_args.rs

Lines changed: 28 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ pub struct PreComputeArgs {
1010
pub output_dir: String,
1111
// Dataset related fields
1212
pub is_dataset_required: bool,
13-
pub encrypted_dataset_url: Option<String>,
14-
pub encrypted_dataset_base64_key: Option<String>,
15-
pub encrypted_dataset_checksum: Option<String>,
16-
pub plain_dataset_filename: Option<String>,
13+
pub encrypted_dataset_url: String,
14+
pub encrypted_dataset_base64_key: String,
15+
pub encrypted_dataset_checksum: String,
16+
pub plain_dataset_filename: String,
1717
// Input files
1818
pub input_files: Vec<String>,
1919
}
@@ -64,28 +64,28 @@ impl PreComputeArgs {
6464
.parse::<bool>()
6565
.map_err(|_| ReplicateStatusCause::PreComputeIsDatasetRequiredMissing)?;
6666

67-
let mut encrypted_dataset_url = None;
68-
let mut encrypted_dataset_base64_key = None;
69-
let mut encrypted_dataset_checksum = None;
70-
let mut plain_dataset_filename = None;
67+
let mut encrypted_dataset_url = String::new();
68+
let mut encrypted_dataset_base64_key = String::new();
69+
let mut encrypted_dataset_checksum = String::new();
70+
let mut plain_dataset_filename = String::new();
7171

7272
if is_dataset_required {
73-
encrypted_dataset_url = Some(get_env_var_or_error(
73+
encrypted_dataset_url = get_env_var_or_error(
7474
TeeSessionEnvironmentVariable::IexecDatasetUrl,
7575
ReplicateStatusCause::PreComputeDatasetUrlMissing,
76-
)?);
77-
encrypted_dataset_base64_key = Some(get_env_var_or_error(
76+
)?;
77+
encrypted_dataset_base64_key = get_env_var_or_error(
7878
TeeSessionEnvironmentVariable::IexecDatasetKey,
7979
ReplicateStatusCause::PreComputeDatasetKeyMissing,
80-
)?);
81-
encrypted_dataset_checksum = Some(get_env_var_or_error(
80+
)?;
81+
encrypted_dataset_checksum = get_env_var_or_error(
8282
TeeSessionEnvironmentVariable::IexecDatasetChecksum,
8383
ReplicateStatusCause::PreComputeDatasetChecksumMissing,
84-
)?);
85-
plain_dataset_filename = Some(get_env_var_or_error(
84+
)?;
85+
plain_dataset_filename = get_env_var_or_error(
8686
TeeSessionEnvironmentVariable::IexecDatasetFilename,
8787
ReplicateStatusCause::PreComputeDatasetFilenameMissing,
88-
)?);
88+
)?;
8989
}
9090

9191
let input_files_nb_str = get_env_var_or_error(
@@ -178,10 +178,10 @@ mod tests {
178178

179179
assert_eq!(args.output_dir, OUTPUT_DIR);
180180
assert!(!args.is_dataset_required);
181-
assert_eq!(args.encrypted_dataset_url, None);
182-
assert_eq!(args.encrypted_dataset_base64_key, None);
183-
assert_eq!(args.encrypted_dataset_checksum, None);
184-
assert_eq!(args.plain_dataset_filename, None);
181+
assert_eq!(args.encrypted_dataset_url, "");
182+
assert_eq!(args.encrypted_dataset_base64_key, "");
183+
assert_eq!(args.encrypted_dataset_checksum, "");
184+
assert_eq!(args.plain_dataset_filename, "");
185185
assert_eq!(args.input_files.len(), 1);
186186
assert_eq!(args.input_files[0], "https://input-1.txt");
187187
});
@@ -202,19 +202,13 @@ mod tests {
202202

203203
assert_eq!(args.output_dir, OUTPUT_DIR);
204204
assert!(args.is_dataset_required);
205-
assert_eq!(args.encrypted_dataset_url, Some(DATASET_URL.to_string()));
206-
assert_eq!(
207-
args.encrypted_dataset_base64_key,
208-
Some(DATASET_KEY.to_string())
209-
);
205+
assert_eq!(args.encrypted_dataset_url, DATASET_URL.to_string());
206+
assert_eq!(args.encrypted_dataset_base64_key, DATASET_KEY.to_string());
210207
assert_eq!(
211208
args.encrypted_dataset_checksum,
212-
Some(DATASET_CHECKSUM.to_string())
213-
);
214-
assert_eq!(
215-
args.plain_dataset_filename,
216-
Some(DATASET_FILENAME.to_string())
209+
DATASET_CHECKSUM.to_string()
217210
);
211+
assert_eq!(args.plain_dataset_filename, DATASET_FILENAME.to_string());
218212
assert_eq!(args.input_files.len(), 0);
219213
});
220214
}
@@ -235,10 +229,10 @@ mod tests {
235229

236230
assert_eq!(args.output_dir, OUTPUT_DIR);
237231
assert!(!args.is_dataset_required);
238-
assert_eq!(args.encrypted_dataset_url, None);
239-
assert_eq!(args.encrypted_dataset_base64_key, None);
240-
assert_eq!(args.encrypted_dataset_checksum, None);
241-
assert_eq!(args.plain_dataset_filename, None);
232+
assert_eq!(args.encrypted_dataset_url, "");
233+
assert_eq!(args.encrypted_dataset_base64_key, "");
234+
assert_eq!(args.encrypted_dataset_checksum, "");
235+
assert_eq!(args.plain_dataset_filename, "");
242236
assert_eq!(args.input_files.len(), 3);
243237
assert_eq!(args.input_files[0], "https://input-1.txt");
244238
assert_eq!(args.input_files[1], "https://input-2.txt");

0 commit comments

Comments
 (0)