|
40 | 40 | import javax.servlet.http.HttpServletRequest; |
41 | 41 | import java.text.SimpleDateFormat; |
42 | 42 | import java.util.*; |
| 43 | +import lombok.AllArgsConstructor; |
| 44 | +import org.cerberus.core.api.controllers.wrappers.ResponseWrapper; |
43 | 45 | import org.cerberus.core.crud.service.ITagService; |
| 46 | +import org.cerberus.core.engine.queuemanagement.IExecutionThreadPoolService; |
| 47 | +import org.cerberus.core.util.answer.AnswerItem; |
44 | 48 | import org.cerberus.core.util.servlet.ServletUtil; |
45 | 49 |
|
| 50 | +@AllArgsConstructor |
46 | 51 | @RestController |
47 | 52 | @RequestMapping("/campaignexecutions/") |
48 | 53 | public class CampaignExecutionPrivateController { |
49 | 54 |
|
50 | 55 | private static final Logger LOG = LogManager.getLogger(CampaignExecutionPrivateController.class); |
| 56 | + private final IExecutionThreadPoolService executionThreadPoolService; |
51 | 57 | @Autowired |
52 | 58 | private ITagStatisticService tagStatisticService; |
53 | 59 | @Autowired |
@@ -238,8 +244,12 @@ public ResponseEntity<String> getCampaignStatisticsByCountryEnv( |
238 | 244 | aggregateListByCampaign.add(value); |
239 | 245 | String environment = key.split("_")[0]; |
240 | 246 | String country = key.split("_")[1]; |
241 | | - if (!environments.contains(environment)) environments.add(environment); |
242 | | - if (!countries.contains(country)) countries.add(country); |
| 247 | + if (!environments.contains(environment)) { |
| 248 | + environments.add(environment); |
| 249 | + } |
| 250 | + if (!countries.contains(country)) { |
| 251 | + countries.add(country); |
| 252 | + } |
243 | 253 | }); |
244 | 254 |
|
245 | 255 | response.put("campaignStatistics", aggregateListByCampaign); |
@@ -287,6 +297,77 @@ public String updateUndeclareFalseNegative( |
287 | 297 |
|
288 | 298 | } |
289 | 299 |
|
| 300 | + @PostMapping(path = "{executionId}/cancel", produces = MediaType.APPLICATION_JSON_VALUE) |
| 301 | + public ResponseWrapper cancelTag( |
| 302 | + @PathVariable("executionId") String tag, |
| 303 | + HttpServletRequest request) { |
| 304 | + |
| 305 | + // Calling Servlet Transversal Util. |
| 306 | + ServletUtil.servletStart(request); |
| 307 | + try { |
| 308 | + AnswerItem<Integer> ansNb = tagService.cancelAllExecutions(tag, request.getUserPrincipal().getName()); |
| 309 | + String message = ""; |
| 310 | + if (ansNb.getItem() <= 0) { |
| 311 | + message = "No queue entries were canceled. Probably all of them were already triggered."; |
| 312 | + } else { |
| 313 | + message = ansNb.getItem() + " queue entry(ies) was(were) cancelled."; |
| 314 | + } |
| 315 | + return new ResponseWrapper(HttpStatus.OK, message); |
| 316 | + } catch (CerberusException ex) { |
| 317 | + LOG.error(ex, ex); |
| 318 | + return new ResponseWrapper(HttpStatus.INTERNAL_SERVER_ERROR, ex.getMessage(), ex); |
| 319 | + } |
| 320 | + } |
| 321 | + |
| 322 | + @PostMapping(path = "{executionId}/pause", produces = MediaType.APPLICATION_JSON_VALUE) |
| 323 | + public ResponseWrapper pauseTag( |
| 324 | + @PathVariable("executionId") String tag, |
| 325 | + HttpServletRequest request) { |
| 326 | + |
| 327 | + // Calling Servlet Transversal Util. |
| 328 | + ServletUtil.servletStart(request); |
| 329 | + try { |
| 330 | + AnswerItem<Integer> ansNb = tagService.pauseAllExecutions(tag, request.getUserPrincipal().getName()); |
| 331 | + String message = ""; |
| 332 | + if (ansNb.getItem() <= 0) { |
| 333 | + message = "No queue entries were paused. Probably all of them were already triggered."; |
| 334 | + } else { |
| 335 | + message = ansNb.getItem() + " queue entry(ies) was(were) paused."; |
| 336 | + } |
| 337 | + return new ResponseWrapper(HttpStatus.OK, message); |
| 338 | + } catch (CerberusException ex) { |
| 339 | + LOG.error(ex, ex); |
| 340 | + return new ResponseWrapper(HttpStatus.INTERNAL_SERVER_ERROR, ex.getMessage(), ex); |
| 341 | + } |
| 342 | + } |
| 343 | + |
| 344 | + @PostMapping(path = "{executionId}/resume", produces = MediaType.APPLICATION_JSON_VALUE) |
| 345 | + public ResponseWrapper resumeTag( |
| 346 | + @PathVariable("executionId") String tag, |
| 347 | + HttpServletRequest request) { |
| 348 | + |
| 349 | + // Calling Servlet Transversal Util. |
| 350 | + ServletUtil.servletStart(request); |
| 351 | + try { |
| 352 | + AnswerItem<Integer> ansNb = tagService.resumeAllExecutions(tag, request.getUserPrincipal().getName()); |
| 353 | + String message = ""; |
| 354 | + if (ansNb.getItem() <= 0) { |
| 355 | + message = "No queue entry were resumed. No paused queue entry(ies) was(were) found."; |
| 356 | + } else { |
| 357 | + // executionQueueService.checkAndReleaseQueuedEntry(long1, tCExecution.getTag()); |
| 358 | + |
| 359 | + message = ansNb.getItem() + " queue entry(ies) was(were) resumed."; |
| 360 | + // After every execution finished we try to trigger more from the queue;-). |
| 361 | + executionThreadPoolService.executeNextInQueueAsynchroneously(false); |
| 362 | + |
| 363 | + } |
| 364 | + return new ResponseWrapper(HttpStatus.OK, message); |
| 365 | + } catch (CerberusException ex) { |
| 366 | + LOG.error(ex, ex); |
| 367 | + return new ResponseWrapper(HttpStatus.INTERNAL_SERVER_ERROR, ex.getMessage(), ex); |
| 368 | + } |
| 369 | + } |
| 370 | + |
290 | 371 | private List<String> checkMissingFilters(Map<String, Object> filters) { |
291 | 372 | List<String> missingParameters = new ArrayList<>(); |
292 | 373 | for (Map.Entry<String, Object> filter : filters.entrySet()) { |
|
0 commit comments