Skip to content

Commit d6ea2cf

Browse files
author
Salim Terres
committed
Bug #15626 - [Operations Management] – Fix: cancellation of an operation in a non-cancellable step.
1 parent e47996c commit d6ea2cf

File tree

4 files changed

+24
-11
lines changed

4 files changed

+24
-11
lines changed

api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/rest/LogbookManagementOperationController.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,8 @@ public VitamUIProcessDetailResponseDto cancelOperationProcessExecution(
9090
request.getReason()
9191
);
9292
ProcessDetailDto processDetailDto = logbookManagementOperationService.cancelOperationProcessExecution(
93-
operationId
93+
operationId,
94+
request.isStepCancellable()
9495
);
9596
if (processDetailDto != null) {
9697
operationResponseDto = processDetailDto.getOperations();

api/api-referential/referential/src/main/java/fr/gouv/vitamui/referential/server/service/logbookmanagement/LogbookManagementOperationService.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -111,11 +111,14 @@ public ProcessDetailDto updateOperationActionProcess(
111111
return operation;
112112
}
113113

114-
public ProcessDetailDto cancelOperationProcessExecution(VitamContext vitamContext, String operationId)
115-
throws VitamClientException, JsonProcessingException {
114+
public ProcessDetailDto cancelOperationProcessExecution(
115+
VitamContext vitamContext,
116+
String operationId,
117+
boolean stepCancellable
118+
) throws VitamClientException, JsonProcessingException {
116119
ProcessDetailDto operation;
117120
LOGGER.info("Cancel the operation Id= {}", operationId);
118-
vitamOperationCommonService.cancelOperationProcessExecution(vitamContext, operationId);
121+
vitamOperationCommonService.cancelOperationProcessExecution(vitamContext, operationId, stepCancellable);
119122
ProcessQuery processQuery = new ProcessQuery();
120123
processQuery.setId(operationId);
121124
operation = searchOperationsDetails(vitamContext, processQuery);
@@ -141,10 +144,10 @@ public ProcessDetailDto updateOperationActionProcess(String actionId, String ope
141144
}
142145
}
143146

144-
public ProcessDetailDto cancelOperationProcessExecution(String operationId) {
147+
public ProcessDetailDto cancelOperationProcessExecution(String operationId, boolean stepCancellable) {
145148
VitamContext vitamContext = buildVitamContext();
146149
try {
147-
return this.cancelOperationProcessExecution(vitamContext, operationId);
150+
return this.cancelOperationProcessExecution(vitamContext, operationId, stepCancellable);
148151
} catch (VitamClientException | JsonProcessingException e) {
149152
throw new InternalServerException("Unable to cancel operation process execution", e);
150153
}

api/api-referential/referential/src/test/java/fr/gouv/vitamui/referential/server/service/LogbookManagementOperationInternalServiceTest.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,12 +144,16 @@ public void cancelOperationProcessExecution_should_throw_VitamClientException_wh
144144
String identifier = "identifier";
145145

146146
when(
147-
vitamOperationCommonService.cancelOperationProcessExecution(any(VitamContext.class), any(String.class))
147+
vitamOperationCommonService.cancelOperationProcessExecution(
148+
any(VitamContext.class),
149+
any(String.class),
150+
any(Boolean.class)
151+
)
148152
).thenThrow(new VitamClientException("Exception thrown by vitam"));
149153

150154
//When //Then
151155
assertThatCode(() -> {
152-
logbookManagementOperationService.cancelOperationProcessExecution(vitamContext, identifier);
156+
logbookManagementOperationService.cancelOperationProcessExecution(vitamContext, identifier, false);
153157
}).isInstanceOf(VitamClientException.class);
154158
}
155159

commons/commons-vitam/src/main/java/fr/gouv/vitamui/commons/vitam/api/administration/VitamOperationCommonService.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,13 @@ public RequestResponse<ItemStatus> updateOperationActionProcess(
7272
return adminExternalClient.updateOperationActionProcess(vitamContext, actionId, operationId);
7373
}
7474

75-
public RequestResponse<ItemStatus> cancelOperationProcessExecution(VitamContext vitamContext, String operationId)
76-
throws VitamClientException, IllegalArgumentException {
77-
return adminExternalClient.cancelOperationProcessExecution(vitamContext, operationId);
75+
public RequestResponse<ItemStatus> cancelOperationProcessExecution(
76+
VitamContext vitamContext,
77+
String operationId,
78+
boolean stepCancellable
79+
) throws VitamClientException, IllegalArgumentException {
80+
return stepCancellable
81+
? adminExternalClient.cancelOperationProcessExecution(vitamContext, operationId)
82+
: adminExternalClient.cancelOperationProcessExecution(vitamContext, operationId, true);
7883
}
7984
}

0 commit comments

Comments
 (0)