11package org .cloudfoundry .multiapps .controller .web .api .impl ;
22
3- import java .text .MessageFormat ;
4- import java .time .ZoneId ;
5- import java .time .ZonedDateTime ;
6- import java .time .format .DateTimeFormatter ;
7- import java .util .Arrays ;
8- import java .util .Collections ;
9- import java .util .Date ;
10- import java .util .HashMap ;
11- import java .util .List ;
12- import java .util .Map ;
13- import java .util .Set ;
14- import java .util .UUID ;
15- import java .util .stream .Collectors ;
16-
173import jakarta .inject .Inject ;
184import jakarta .inject .Named ;
195import jakarta .persistence .NoResultException ;
3824import org .cloudfoundry .multiapps .controller .core .cf .CloudControllerClientFactory ;
3925import org .cloudfoundry .multiapps .controller .core .security .token .TokenService ;
4026import org .cloudfoundry .multiapps .controller .core .util .UserInfo ;
41- import org .cloudfoundry .multiapps .controller .persistence .Constants ;
4227import org .cloudfoundry .multiapps .controller .persistence .OrderDirection ;
4328import org .cloudfoundry .multiapps .controller .persistence .model .ProgressMessage ;
4429import org .cloudfoundry .multiapps .controller .persistence .model .ProgressMessage .ProgressMessageType ;
5439import org .cloudfoundry .multiapps .controller .process .metadata .ProcessTypeToOperationMetadataMapper ;
5540import org .cloudfoundry .multiapps .controller .process .util .OperationsHelper ;
5641import org .cloudfoundry .multiapps .controller .process .variables .Variables ;
42+ import org .cloudfoundry .multiapps .controller .web .Constants ;
5743import org .cloudfoundry .multiapps .controller .web .Messages ;
44+ import org .cloudfoundry .multiapps .controller .web .monitoring .ApiUsageLogger ;
5845import org .cloudfoundry .multiapps .controller .web .util .SecurityContextUtil ;
5946import org .flowable .engine .runtime .ProcessInstance ;
6047import org .slf4j .Logger ;
6350import org .springframework .http .ResponseEntity ;
6451import org .springframework .web .server .ResponseStatusException ;
6552
53+ import java .text .MessageFormat ;
54+ import java .time .ZoneId ;
55+ import java .time .ZonedDateTime ;
56+ import java .time .format .DateTimeFormatter ;
57+ import java .util .Arrays ;
58+ import java .util .Collections ;
59+ import java .util .Date ;
60+ import java .util .HashMap ;
61+ import java .util .List ;
62+ import java .util .Map ;
63+ import java .util .Set ;
64+ import java .util .UUID ;
65+ import java .util .stream .Collectors ;
66+
67+ import static org .cloudfoundry .multiapps .controller .persistence .Constants .VARIABLE_NAME_SERVICE_ID ;
6668import static org .cloudfoundry .multiapps .controller .web .Constants .NAMES_OF_SERVICE_PARAMETERS ;
6769
6870@ Named
@@ -89,9 +91,14 @@ public class OperationsApiServiceImpl implements OperationsApiService {
8991 private ProcessActionRegistry processActionRegistry ;
9092 @ Inject
9193 private OperationsApiServiceAuditLog operationsApiServiceAuditLog ;
94+ @ Inject
95+ private ApiUsageLogger apiUsageLogger ;
96+ @ Inject
97+ private HttpServletRequest httpServletRequest ;
9298
9399 @ Override
94100 public ResponseEntity <List <Operation >> getOperations (String spaceGuid , String mtaId , List <String > stateStrings , Integer last ) {
101+ apiUsageLogger .logOperationsReadCall (spaceGuid , Constants .ApiEndpointsNames .GET_OPERATIONS , null , httpServletRequest );
95102 operationsApiServiceAuditLog .logGetOperations (SecurityContextUtil .getUsername (), spaceGuid , mtaId );
96103 List <Operation .State > states = getStates (stateStrings );
97104 List <Operation > operations = filterByQueryParameters (last , states , spaceGuid , mtaId );
@@ -101,6 +108,8 @@ public ResponseEntity<List<Operation>> getOperations(String spaceGuid, String mt
101108
102109 @ Override
103110 public ResponseEntity <Void > executeOperationAction (String spaceGuid , String operationId , String actionId ) {
111+ apiUsageLogger .logOperationsMutatingCall (spaceGuid , Constants .ApiEndpointsNames .EXECUTE_OPERATION_ACTION , operationId ,
112+ httpServletRequest );
104113 operationsApiServiceAuditLog .logExecuteOperationAction (SecurityContextUtil .getUsername (), spaceGuid , operationId , actionId );
105114 Operation operation = getOperationByOperationGuidAndSpaceGuid (operationId , spaceGuid );
106115 List <String > availableOperations = getAvailableActions (operation );
@@ -119,6 +128,8 @@ public ResponseEntity<Void> executeOperationAction(String spaceGuid, String oper
119128 @ Override
120129 public ResponseEntity <List <Log >> getOperationLogs (String spaceGuid , String operationId ) {
121130 try {
131+ apiUsageLogger .logOperationsReadCall (spaceGuid , Constants .ApiEndpointsNames .GET_OPERATION_LOGS , operationId ,
132+ httpServletRequest );
122133 operationsApiServiceAuditLog .logGetOperationLogs (SecurityContextUtil .getUsername (), spaceGuid , operationId );
123134 getOperationByOperationGuidAndSpaceGuid (operationId , spaceGuid );
124135 List <String > logIds = logsService .getLogNames (spaceGuid , operationId );
@@ -138,6 +149,8 @@ public ResponseEntity<List<Log>> getOperationLogs(String spaceGuid, String opera
138149 @ Override
139150 public ResponseEntity <String > getOperationLogContent (String spaceGuid , String operationId , String logId ) {
140151 try {
152+ apiUsageLogger .logOperationsReadCall (spaceGuid , Constants .ApiEndpointsNames .GET_OPERATION_LOG_CONTENT , operationId ,
153+ httpServletRequest );
141154 operationsApiServiceAuditLog .logGetOperationLogContent (SecurityContextUtil .getUsername (), spaceGuid , operationId , logId );
142155 String content = logsService .getOperationLog (spaceGuid , operationId , logId );
143156
@@ -150,6 +163,7 @@ public ResponseEntity<String> getOperationLogContent(String spaceGuid, String op
150163
151164 @ Override
152165 public ResponseEntity <Operation > startOperation (String spaceGuid , Operation operation , HttpServletRequest httpServletRequest ) {
166+ apiUsageLogger .logOperationsMutatingCall (spaceGuid , Constants .ApiEndpointsNames .START_OPERATION , null , httpServletRequest );
153167 operationsApiServiceAuditLog .logStartOperation (SecurityContextUtil .getUsername (), spaceGuid , operation );
154168 UserInfo authenticatedUser = getAuthenticatedUser ();
155169 String processDefinitionKey = operationsHelper .getProcessDefinitionKey (operation );
@@ -167,6 +181,7 @@ public ResponseEntity<Operation> startOperation(String spaceGuid, Operation oper
167181
168182 @ Override
169183 public ResponseEntity <Operation > getOperation (String spaceGuid , String operationId , String embed ) {
184+ apiUsageLogger .logOperationsReadCall (spaceGuid , Constants .ApiEndpointsNames .GET_OPERATION , operationId , httpServletRequest );
170185 operationsApiServiceAuditLog .logGetOperation (SecurityContextUtil .getUsername (), spaceGuid , operationId , embed );
171186 Operation operation = getOperationByOperationGuidAndSpaceGuid (operationId , spaceGuid );
172187 if (!operation .getSpaceId ()
@@ -213,6 +228,7 @@ private List<Operation> filterByQueryParameters(Integer lastRequestedOperationsC
213228
214229 @ Override
215230 public ResponseEntity <List <String >> getOperationActions (String spaceGuid , String operationId ) {
231+ apiUsageLogger .logOperationsReadCall (spaceGuid , Constants .ApiEndpointsNames .GET_OPERATION_ACTIONS , operationId , httpServletRequest );
216232 operationsApiServiceAuditLog .logGetOperationActions (spaceGuid , SecurityContextUtil .getUsername (), operationId );
217233 Operation operation = getOperationByOperationGuidAndSpaceGuid (operationId , spaceGuid );
218234 return ResponseEntity .ok ()
@@ -257,7 +273,7 @@ private Operation addServiceParameters(Operation operation, String spaceGuid, St
257273
258274 String processDefinitionKey = operationsHelper .getProcessDefinitionKey (operation );
259275
260- parameters .put (Constants . VARIABLE_NAME_SERVICE_ID , processDefinitionKey );
276+ parameters .put (VARIABLE_NAME_SERVICE_ID , processDefinitionKey );
261277 parameters .put (Variables .USER .getName (), user );
262278 parameters .put (Variables .USER_GUID .getName (), userGuid );
263279 parameters .put (Variables .SPACE_NAME .getName (), space .getName ());
0 commit comments