protected ApplicationEntity.Status getApplicationStatus() { ApplicationEntity applicationEntity = applicationEntityService.getByUUIDOrAppId(null, config.getString(APP_ID_PATH)); return applicationEntity.getStatus(); }
protected void awaitApplicationStop(ApplicationEntity applicationEntity) throws InterruptedException { int attempt = 0; while (attempt < 30) { attempt ++; if (applicationEntity.getStatus() == ApplicationEntity.Status.STOPPED || applicationEntity.getStatus() == ApplicationEntity.Status.INITIALIZED) { break; } else { statusUpdateService.updateApplicationEntityStatus(applicationEntity); Thread.sleep(1000); } } if (attempt >= 30) { Assert.fail("Failed to wait for application to STOPPED after 10 attempts"); } }
protected void awaitApplicationStatus(ApplicationEntity applicationEntity, ApplicationEntity.Status status) throws InterruptedException { int attempt = 0; while (attempt < 30) { attempt ++; if (applicationEntity.getStatus() == status) { break; } else { statusUpdateService.updateApplicationEntityStatus(applicationEntity); Thread.sleep(1000); } } if (attempt >= 30) { Assert.fail("Failed to wait for application to STOPPED after 10 attempts"); } } }
private Collection<String> loadSites(String appType) { Set<String> sites = new HashSet<>(); Collection<ApplicationEntity> apps = applicationEntityService.findAll(); for (ApplicationEntity app : apps) { if (app.getDescriptor().getType().equalsIgnoreCase(appType) && app.getStatus().equals(ApplicationEntity.Status.RUNNING)) { sites.add(app.getSite().getSiteId()); } } LOG.info("Detected {} sites where MR_HISTORY_JOB_APP is Running: {}", sites.size(), sites); return sites; }
@POST @Path("/status") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public RESTResponse<ApplicationEntity.Status> checkApplicationStatusByUUID(ApplicationOperations.CheckStatusOperation operation) { return RESTResponse.<ApplicationEntity.Status>async((response) -> { ApplicationEntity.Status status = (entityService.getByUUIDOrAppId(null, operation.getAppId())).getStatus(); response.success(true).message("Successfully fetched application status"); response.data(status); }).get(); }
@POST @Path("/{appUuid}") @Produces(MediaType.APPLICATION_JSON) public RESTResponse<ApplicationEntity> updateApplicationEntity(@PathParam("appUuid") String appUuid, ApplicationOperations.UpdateOperation updateOperation) { return RESTResponse.async(() -> { ApplicationEntity applicationEntity = new ApplicationEntity(); applicationEntity.setStatus(entityService.getByUUID(appUuid).getStatus()); applicationEntity.setUuid(appUuid); applicationEntity.setJarPath(updateOperation.getJarPath()); applicationEntity.setMode(updateOperation.getMode()); applicationEntity.setConfiguration(updateOperation.getConfiguration()); return entityService.update(applicationEntity); }).get(); }
@Override public void updateApplicationEntityStatus(ApplicationEntity applicationEntity) { String appUuid = applicationEntity.getUuid(); ApplicationEntity.Status preStatus = applicationEntity.getStatus(); try { ApplicationEntity.Status currentStatus = applicationManagementService.getStatus(new ApplicationOperations.CheckStatusOperation(appUuid));
Thread stopThread = new Thread(() -> { applicationResource.stopApplication(new ApplicationOperations.StopOperation(applicationEntity.getUuid())); while (applicationEntity.getStatus() != ApplicationEntity.Status.INITIALIZED && applicationEntity.getStatus() != ApplicationEntity.Status.STOPPED) { statusUpdateService.updateApplicationEntityStatus(applicationEntity); try {
Preconditions.checkArgument(application.isExecutable(), "Application is not executable"); ApplicationEntity.Status currentStatus = appEntity.getStatus(); try { if (currentStatus == ApplicationEntity.Status.INITIALIZED || currentStatus == ApplicationEntity.Status.STOPPED) {
ApplicationEntity.Status currentStatus = applicationEntity.getStatus(); try { if (currentStatus == ApplicationEntity.Status.RUNNING) {
@Override public ApplicationEntity uninstall(ApplicationOperations.UninstallOperation operation) throws ApplicationWrongStatusException { ApplicationEntity appEntity = applicationEntityService.getByUUIDOrAppId(operation.getUuid(), operation.getAppId()); ApplicationProvider<?> appProvider = applicationProviderService.getApplicationProviderByType(appEntity.getDescriptor().getType()); ApplicationAction appAction = new ApplicationAction(appProvider.getApplication(), appEntity, config, alertMetadataService); ApplicationEntity.Status currentStatus = appEntity.getStatus(); try { if (currentStatus == ApplicationEntity.Status.INITIALIZED || currentStatus == ApplicationEntity.Status.STOPPED) { // AfterUninstall Callback appAction.doUninstall(); appProvider.getApplicationListener().ifPresent((listener) -> { currentInjector.injectMembers(listener); listener.init(appEntity); listener.afterUninstall(); }); applicationHealthCheckService.unregister(appEntity); return applicationEntityService.delete(appEntity); } else { throw new ApplicationWrongStatusException("App: " + appEntity.getAppId() + " status is " + currentStatus + ", uninstall operation is not allowed"); } } catch (Throwable throwable) { LOGGER.error(throwable.getMessage(), throwable); throw throwable; } }