1414import com .iexec .worker .config .WorkerConfigurationService ;
1515import com .iexec .worker .dataset .DataService ;
1616import com .iexec .worker .docker .ComputationService ;
17+ import com .iexec .worker .docker .ComputeMeta ;
1718import com .iexec .worker .result .ResultService ;
1819import com .iexec .worker .tee .scone .SconeTeeService ;
1920import com .iexec .worker .utils .LoggingUtils ;
@@ -191,21 +192,26 @@ ReplicateActionResponse compute(String chainTaskId) {
191192 return ReplicateActionResponse .failure (APP_NOT_FOUND_LOCALLY );
192193 }
193194
194- boolean isComputed ;
195195 WorkerpoolAuthorization workerpoolAuthorization =
196196 contributionService .getWorkerpoolAuthorization (chainTaskId );
197197
198- if (taskDescription .isTeeTask ()) {
199- isComputed = computationService .runTeeComputation (taskDescription , workerpoolAuthorization );
200- } else {
201- isComputed = computationService .runNonTeeComputation (taskDescription , workerpoolAuthorization );
198+ ComputeMeta computeMeta = ComputeMeta .builder ().chainTaskId (chainTaskId ).build ();
199+ computationService .runPreCompute (computeMeta , taskDescription , workerpoolAuthorization );
200+ if (!computeMeta .isPreComputed ()) {
201+ log .error ("Failed to pre-compute [chainTaskId:{}]" , chainTaskId );
202+ return ReplicateActionResponse .failure (PRE_COMPUTE_FAILED );
202203 }
203-
204- if (!isComputed ) {
204+ computationService . runComputation ( computeMeta , taskDescription );
205+ if (!computeMeta . isComputed () ) {
205206 log .error ("Failed to compute [chainTaskId:{}]" , chainTaskId );
206207 return ReplicateActionResponse .failure ();
207208 }
208-
209+ computationService .runPostCompute (computeMeta , taskDescription );
210+ if (!computeMeta .isPostComputed ()) {
211+ log .error ("Failed to post-compute [chainTaskId:{}]" , chainTaskId );
212+ return ReplicateActionResponse .failure (POST_COMPUTE_FAILED );
213+ }
214+ resultService .saveResultInfo (chainTaskId , taskDescription );
209215 return ReplicateActionResponse .success ();
210216 }
211217
@@ -231,7 +237,7 @@ ReplicateActionResponse contribute(String chainTaskId) {
231237 // System.exit(0);
232238 }
233239
234- ComputedFile computedFile = resultService .getComputedFile (chainTaskId );
240+ ComputedFile computedFile = computationService .getComputedFile (chainTaskId );
235241 if (computedFile == null ) {
236242 log .error ("Cannot contribute, getComputedFile [chainTaskId:{}]" , chainTaskId );
237243 return ReplicateActionResponse .failure (DETERMINISM_HASH_NOT_FOUND );
@@ -255,7 +261,7 @@ ReplicateActionResponse contribute(String chainTaskId) {
255261 ReplicateActionResponse reveal (String chainTaskId , TaskNotificationExtra extra ) {
256262 unsetTaskUsingCpu (chainTaskId );
257263
258- ComputedFile computedFile = resultService .getComputedFile (chainTaskId );
264+ ComputedFile computedFile = computationService .getComputedFile (chainTaskId );
259265 String resultDigest = computedFile != null ? computedFile .getResultDigest () : "" ;
260266
261267 if (resultDigest .isEmpty ()) {
@@ -298,26 +304,13 @@ ReplicateActionResponse reveal(String chainTaskId, TaskNotificationExtra extra)
298304
299305 ReplicateActionResponse uploadResult (String chainTaskId ) {
300306 unsetTaskUsingCpu (chainTaskId );
301-
302- boolean isResultEncryptionNeeded = resultService .isResultEncryptionNeeded (chainTaskId );
303- boolean isResultEncrypted = false ;
304-
305- if (isResultEncryptionNeeded ) {
306- isResultEncrypted = resultService .encryptResult (chainTaskId );
307- }
308-
309- if (isResultEncryptionNeeded && !isResultEncrypted ) {
310- log .error ("Cannot upload, failed to encrypt result [chainTaskId:{}]" , chainTaskId );
311- return ReplicateActionResponse .failure (RESULT_ENCRYPTION_FAILED );
312- }
313-
314307 String resultLink = resultService .uploadResultAndGetLink (chainTaskId );
315308 if (resultLink .isEmpty ()) {
316309 log .error ("Cannot upload, resultLink missing [chainTaskId:{}]" , chainTaskId );
317310 return ReplicateActionResponse .failure (RESULT_LINK_MISSING );
318311 }
319312
320- ComputedFile computedFile = resultService .getComputedFile (chainTaskId );
313+ ComputedFile computedFile = computationService .getComputedFile (chainTaskId );
321314 String callbackData = computedFile != null ? computedFile .getCallbackData () : "" ;
322315
323316 log .info ("Result uploaded [chainTaskId:{}, resultLink:{}, callbackData:{}]" ,
0 commit comments