@@ -15,7 +15,7 @@ pub struct PreComputeArgs {
1515 // Input files
1616 pub input_files : Vec < String > ,
1717 // Bulk processing
18- pub bulk_size : usize ,
18+ pub iexec_bulk_slice_size : usize ,
1919 pub datasets : Vec < Dataset > ,
2020}
2121
@@ -28,24 +28,24 @@ impl PreComputeArgs {
2828 /// - `IEXEC_PRE_COMPUTE_OUT`: Output directory path
2929 /// - `IEXEC_DATASET_REQUIRED`: Boolean ("true"/"false") indicating dataset requirement
3030 /// - `IEXEC_INPUT_FILES_NUMBER`: Number of input files to load
31- /// - `BULK_SIZE `: Number of bulk datasets (0 means no bulk processing)
31+ /// - `IEXEC_BULK_SLICE_SIZE `: Number of bulk datasets (0 means no bulk processing)
3232 /// - Required when `IEXEC_DATASET_REQUIRED` = "true":
3333 /// - `IEXEC_DATASET_URL`: Encrypted dataset URL
3434 /// - `IEXEC_DATASET_KEY`: Base64-encoded dataset encryption key
3535 /// - `IEXEC_DATASET_CHECKSUM`: Encrypted dataset checksum
3636 /// - `IEXEC_DATASET_FILENAME`: Decrypted dataset filename
37- /// - Required when `BULK_SIZE ` > 0 (for each dataset index from 1 to BULK_SIZE ):
38- /// - `BULK_DATASET_ #_URL`: Dataset URL
39- /// - `BULK_DATASET_ #_CHECKSUM`: Dataset checksum
40- /// - `BULK_DATASET_ #_FILENAME`: Dataset filename
41- /// - `BULK_DATASET_ #_KEY`: Dataset decryption key
37+ /// - Required when `IEXEC_BULK_SLICE_SIZE ` > 0 (for each dataset index from 1 to IEXEC_BULK_SLICE_SIZE ):
38+ /// - `IEXEC_DATASET_ #_URL`: Dataset URL
39+ /// - `IEXEC_DATASET_ #_CHECKSUM`: Dataset checksum
40+ /// - `IEXEC_DATASET_ #_FILENAME`: Dataset filename
41+ /// - `IEXEC_DATASET_ #_KEY`: Dataset decryption key
4242 /// - Input file URLs (`IEXEC_INPUT_FILE_URL_1`, `IEXEC_INPUT_FILE_URL_2`, etc.)
4343 ///
4444 /// # Errors
4545 /// Returns `ReplicateStatusCause` error variants for:
4646 /// - Missing required environment variables
4747 /// - Invalid boolean values in `IEXEC_DATASET_REQUIRED`
48- /// - Invalid numeric format in `IEXEC_INPUT_FILES_NUMBER` or `BULK_SIZE `
48+ /// - Invalid numeric format in `IEXEC_INPUT_FILES_NUMBER` or `IEXEC_BULK_SLICE_SIZE `
4949 /// - Missing dataset parameters when required
5050 /// - Missing input file URLs
5151 /// - Missing bulk dataset parameters when bulk processing is enabled
@@ -73,51 +73,33 @@ impl PreComputeArgs {
7373 . parse :: < bool > ( )
7474 . map_err ( |_| ReplicateStatusCause :: PreComputeIsDatasetRequiredMissing ) ?;
7575
76- // Read bulk size (defaults to 0 if not present for backward compatibility)
77- let bulk_size_str = std:: env:: var ( TeeSessionEnvironmentVariable :: BulkSize . name ( ) )
78- . unwrap_or ( "0" . to_string ( ) ) ;
79- let bulk_size = bulk_size_str
76+ // Read iexec bulk slice size (defaults to 0 if not present for backward compatibility)
77+ let iexec_bulk_slice_size_str =
78+ std:: env:: var ( TeeSessionEnvironmentVariable :: IexecBulkSliceSize . name ( ) )
79+ . unwrap_or ( "0" . to_string ( ) ) ;
80+ let iexec_bulk_slice_size = iexec_bulk_slice_size_str
8081 . parse :: < usize > ( )
8182 . map_err ( |_| ReplicateStatusCause :: PreComputeIsDatasetRequiredMissing ) ?;
8283
83- let mut datasets = Vec :: with_capacity ( bulk_size + 1 ) ;
84+ let mut datasets = Vec :: with_capacity ( iexec_bulk_slice_size + 1 ) ;
8485
85- if is_dataset_required {
86+ // Read datasets
87+ let start_index = if is_dataset_required { 0 } else { 1 } ;
88+ for i in start_index..=iexec_bulk_slice_size {
8689 let url = get_env_var_or_error (
87- TeeSessionEnvironmentVariable :: IexecDatasetUrl ,
88- ReplicateStatusCause :: PreComputeDatasetUrlMissing ,
89- ) ?;
90- let key = get_env_var_or_error (
91- TeeSessionEnvironmentVariable :: IexecDatasetKey ,
92- ReplicateStatusCause :: PreComputeDatasetKeyMissing ,
93- ) ?;
94- let checksum = get_env_var_or_error (
95- TeeSessionEnvironmentVariable :: IexecDatasetChecksum ,
96- ReplicateStatusCause :: PreComputeDatasetChecksumMissing ,
97- ) ?;
98- let filename = get_env_var_or_error (
99- TeeSessionEnvironmentVariable :: IexecDatasetFilename ,
100- ReplicateStatusCause :: PreComputeDatasetFilenameMissing ,
101- ) ?;
102- datasets. push ( Dataset :: new ( url, checksum, filename, key) ) ;
103- }
104-
105- // Read bulk datasets
106- for i in 1 ..=bulk_size {
107- let url = get_env_var_or_error (
108- TeeSessionEnvironmentVariable :: BulkDatasetUrl ( i) ,
90+ TeeSessionEnvironmentVariable :: IexecDatasetUrl ( i) ,
10991 ReplicateStatusCause :: PreComputeDatasetUrlMissing ,
11092 ) ?;
11193 let checksum = get_env_var_or_error (
112- TeeSessionEnvironmentVariable :: BulkDatasetChecksum ( i) ,
94+ TeeSessionEnvironmentVariable :: IexecDatasetChecksum ( i) ,
11395 ReplicateStatusCause :: PreComputeDatasetChecksumMissing ,
11496 ) ?;
11597 let filename = get_env_var_or_error (
116- TeeSessionEnvironmentVariable :: BulkDatasetFilename ( i) ,
98+ TeeSessionEnvironmentVariable :: IexecDatasetFilename ( i) ,
11799 ReplicateStatusCause :: PreComputeDatasetFilenameMissing ,
118100 ) ?;
119101 let key = get_env_var_or_error (
120- TeeSessionEnvironmentVariable :: BulkDatasetKey ( i) ,
102+ TeeSessionEnvironmentVariable :: IexecDatasetKey ( i) ,
121103 ReplicateStatusCause :: PreComputeDatasetKeyMissing ,
122104 ) ?;
123105
@@ -145,7 +127,7 @@ impl PreComputeArgs {
145127 output_dir,
146128 is_dataset_required,
147129 input_files,
148- bulk_size ,
130+ iexec_bulk_slice_size ,
149131 datasets,
150132 } )
151133 }
@@ -169,16 +151,16 @@ mod tests {
169151 vars. insert ( IexecPreComputeOut . name ( ) , OUTPUT_DIR . to_string ( ) ) ;
170152 vars. insert ( IsDatasetRequired . name ( ) , "true" . to_string ( ) ) ;
171153 vars. insert ( IexecInputFilesNumber . name ( ) , "0" . to_string ( ) ) ;
172- vars. insert ( BulkSize . name ( ) , "0" . to_string ( ) ) ; // Default to no bulk processing
154+ vars. insert ( IexecBulkSliceSize . name ( ) , "0" . to_string ( ) ) ; // Default to no bulk processing
173155 vars
174156 }
175157
176158 fn setup_dataset_env_vars ( ) -> HashMap < String , String > {
177159 let mut vars = HashMap :: new ( ) ;
178- vars. insert ( IexecDatasetUrl . name ( ) , DATASET_URL . to_string ( ) ) ;
179- vars. insert ( IexecDatasetKey . name ( ) , DATASET_KEY . to_string ( ) ) ;
180- vars. insert ( IexecDatasetChecksum . name ( ) , DATASET_CHECKSUM . to_string ( ) ) ;
181- vars. insert ( IexecDatasetFilename . name ( ) , DATASET_FILENAME . to_string ( ) ) ;
160+ vars. insert ( IexecDatasetUrl ( 0 ) . name ( ) , DATASET_URL . to_string ( ) ) ;
161+ vars. insert ( IexecDatasetKey ( 0 ) . name ( ) , DATASET_KEY . to_string ( ) ) ;
162+ vars. insert ( IexecDatasetChecksum ( 0 ) . name ( ) , DATASET_CHECKSUM . to_string ( ) ) ;
163+ vars. insert ( IexecDatasetFilename ( 0 ) . name ( ) , DATASET_FILENAME . to_string ( ) ) ;
182164 vars
183165 }
184166
@@ -198,19 +180,19 @@ mod tests {
198180 // TODO: Collect all errors instead of propagating immediately, and return the list of errors
199181 fn setup_bulk_dataset_env_vars ( count : usize ) -> HashMap < String , String > {
200182 let mut vars = HashMap :: new ( ) ;
201- vars. insert ( BulkSize . name ( ) , count. to_string ( ) ) ;
183+ vars. insert ( IexecBulkSliceSize . name ( ) , count. to_string ( ) ) ;
202184
203185 for i in 1 ..=count {
204186 vars. insert (
205- BulkDatasetUrl ( i) . name ( ) ,
187+ IexecDatasetUrl ( i) . name ( ) ,
206188 format ! ( "https://bulk-dataset-{i}.bin" ) ,
207189 ) ;
208- vars. insert ( BulkDatasetChecksum ( i) . name ( ) , format ! ( "0x{i}23checksum" ) ) ;
190+ vars. insert ( IexecDatasetChecksum ( i) . name ( ) , format ! ( "0x{i}23checksum" ) ) ;
209191 vars. insert (
210- BulkDatasetFilename ( i) . name ( ) ,
192+ IexecDatasetFilename ( i) . name ( ) ,
211193 format ! ( "bulk-dataset-{i}.txt" ) ,
212194 ) ;
213- vars. insert ( BulkDatasetKey ( i) . name ( ) , format ! ( "bulkKey{i}23" ) ) ;
195+ vars. insert ( IexecDatasetKey ( i) . name ( ) , format ! ( "bulkKey{i}23" ) ) ;
214196 }
215197 vars
216198 }
@@ -235,7 +217,7 @@ mod tests {
235217 assert ! ( !args. is_dataset_required) ;
236218 assert_eq ! ( args. input_files. len( ) , 1 ) ;
237219 assert_eq ! ( args. input_files[ 0 ] , "https://input-1.txt" ) ;
238- assert_eq ! ( args. bulk_size , 0 ) ;
220+ assert_eq ! ( args. iexec_bulk_slice_size , 0 ) ;
239221 assert_eq ! ( args. datasets. len( ) , 0 ) ;
240222 } ) ;
241223 }
@@ -260,7 +242,7 @@ mod tests {
260242 assert_eq ! ( args. datasets[ 0 ] . checksum, DATASET_CHECKSUM . to_string( ) ) ;
261243 assert_eq ! ( args. datasets[ 0 ] . filename, DATASET_FILENAME . to_string( ) ) ;
262244 assert_eq ! ( args. input_files. len( ) , 0 ) ;
263- assert_eq ! ( args. bulk_size , 0 ) ;
245+ assert_eq ! ( args. iexec_bulk_slice_size , 0 ) ;
264246 assert_eq ! ( args. datasets. len( ) , 1 ) ;
265247 } ) ;
266248 }
@@ -285,7 +267,7 @@ mod tests {
285267 assert_eq ! ( args. input_files[ 0 ] , "https://input-1.txt" ) ;
286268 assert_eq ! ( args. input_files[ 1 ] , "https://input-2.txt" ) ;
287269 assert_eq ! ( args. input_files[ 2 ] , "https://input-3.txt" ) ;
288- assert_eq ! ( args. bulk_size , 0 ) ;
270+ assert_eq ! ( args. iexec_bulk_slice_size , 0 ) ;
289271 assert_eq ! ( args. datasets. len( ) , 0 ) ;
290272 } ) ;
291273 }
@@ -359,7 +341,7 @@ mod tests {
359341
360342 assert_eq ! ( args. output_dir, OUTPUT_DIR ) ;
361343 assert ! ( !args. is_dataset_required) ;
362- assert_eq ! ( args. bulk_size , 3 ) ;
344+ assert_eq ! ( args. iexec_bulk_slice_size , 3 ) ;
363345 assert_eq ! ( args. datasets. len( ) , 3 ) ;
364346 assert_eq ! ( args. input_files. len( ) , 0 ) ;
365347
@@ -398,7 +380,7 @@ mod tests {
398380
399381 assert_eq ! ( args. output_dir, OUTPUT_DIR ) ;
400382 assert ! ( args. is_dataset_required) ;
401- assert_eq ! ( args. bulk_size , 2 ) ;
383+ assert_eq ! ( args. iexec_bulk_slice_size , 2 ) ;
402384 assert_eq ! ( args. datasets. len( ) , 3 ) ; // 1 regular + 2 bulk datasets
403385 assert_eq ! ( args. input_files. len( ) , 0 ) ;
404386
@@ -415,10 +397,10 @@ mod tests {
415397 }
416398
417399 #[ test]
418- fn read_args_fails_when_invalid_bulk_size_format ( ) {
400+ fn read_args_fails_when_invalid_iexec_bulk_slice_size_format ( ) {
419401 let mut env_vars = setup_basic_env_vars ( ) ;
420402 env_vars. insert ( IsDatasetRequired . name ( ) , "false" . to_string ( ) ) ;
421- env_vars. insert ( BulkSize . name ( ) , "not-a-number" . to_string ( ) ) ;
403+ env_vars. insert ( IexecBulkSliceSize . name ( ) , "not-a-number" . to_string ( ) ) ;
422404 env_vars. extend ( setup_input_files_env_vars ( 0 ) ) ;
423405
424406 temp_env:: with_vars ( to_temp_env_vars ( env_vars) , || {
@@ -438,7 +420,7 @@ mod tests {
438420 env_vars. extend ( setup_input_files_env_vars ( 0 ) ) ;
439421 env_vars. extend ( setup_bulk_dataset_env_vars ( 2 ) ) ;
440422 // Remove one of the bulk dataset URLs
441- env_vars. remove ( & BulkDatasetUrl ( 1 ) . name ( ) ) ;
423+ env_vars. remove ( & IexecDatasetUrl ( 1 ) . name ( ) ) ;
442424
443425 temp_env:: with_vars ( to_temp_env_vars ( env_vars) , || {
444426 let result = PreComputeArgs :: read_args ( ) ;
@@ -457,7 +439,7 @@ mod tests {
457439 env_vars. extend ( setup_input_files_env_vars ( 0 ) ) ;
458440 env_vars. extend ( setup_bulk_dataset_env_vars ( 2 ) ) ;
459441 // Remove one of the bulk dataset checksums
460- env_vars. remove ( & BulkDatasetChecksum ( 2 ) . name ( ) ) ;
442+ env_vars. remove ( & IexecDatasetChecksum ( 2 ) . name ( ) ) ;
461443
462444 temp_env:: with_vars ( to_temp_env_vars ( env_vars) , || {
463445 let result = PreComputeArgs :: read_args ( ) ;
@@ -476,7 +458,7 @@ mod tests {
476458 env_vars. extend ( setup_input_files_env_vars ( 0 ) ) ;
477459 env_vars. extend ( setup_bulk_dataset_env_vars ( 3 ) ) ;
478460 // Remove one of the bulk dataset filenames
479- env_vars. remove ( & BulkDatasetFilename ( 2 ) . name ( ) ) ;
461+ env_vars. remove ( & IexecDatasetFilename ( 2 ) . name ( ) ) ;
480462
481463 temp_env:: with_vars ( to_temp_env_vars ( env_vars) , || {
482464 let result = PreComputeArgs :: read_args ( ) ;
@@ -495,7 +477,7 @@ mod tests {
495477 env_vars. extend ( setup_input_files_env_vars ( 0 ) ) ;
496478 env_vars. extend ( setup_bulk_dataset_env_vars ( 2 ) ) ;
497479 // Remove one of the bulk dataset keys
498- env_vars. remove ( & BulkDatasetKey ( 1 ) . name ( ) ) ;
480+ env_vars. remove ( & IexecDatasetKey ( 1 ) . name ( ) ) ;
499481
500482 temp_env:: with_vars ( to_temp_env_vars ( env_vars) , || {
501483 let result = PreComputeArgs :: read_args ( ) ;
@@ -525,19 +507,19 @@ mod tests {
525507 ReplicateStatusCause :: PreComputeInputFilesNumberMissing ,
526508 ) ,
527509 (
528- IexecDatasetUrl ,
510+ IexecDatasetUrl ( 0 ) ,
529511 ReplicateStatusCause :: PreComputeDatasetUrlMissing ,
530512 ) ,
531513 (
532- IexecDatasetKey ,
514+ IexecDatasetKey ( 0 ) ,
533515 ReplicateStatusCause :: PreComputeDatasetKeyMissing ,
534516 ) ,
535517 (
536- IexecDatasetChecksum ,
518+ IexecDatasetChecksum ( 0 ) ,
537519 ReplicateStatusCause :: PreComputeDatasetChecksumMissing ,
538520 ) ,
539521 (
540- IexecDatasetFilename ,
522+ IexecDatasetFilename ( 0 ) ,
541523 ReplicateStatusCause :: PreComputeDatasetFilenameMissing ,
542524 ) ,
543525 (
0 commit comments