Search in sources :

Example 36 with PollerException

use of com.dyngr.exception.PollerException in project cloudbreak by hortonworks.

the class SdxStopAllDatahubHandler method doAccept.

@Override
protected Selectable doAccept(HandlerEvent<SdxStopAllDatahubRequest> event) {
    SdxStopAllDatahubRequest stopAllDatahubRequest = event.getData();
    Long sdxId = stopAllDatahubRequest.getResourceId();
    String userId = stopAllDatahubRequest.getUserId();
    Selectable response;
    try {
        LOGGER.debug("Polling is started for the operation of stopping all datahubs clusters for sdx with id: {}", sdxId);
        sdxStopService.stopAllDatahub(sdxId);
        response = new SdxEvent(SdxStopEvent.SDX_STOP_IN_PROGRESS_EVENT.event(), sdxId, userId);
    } catch (UserBreakException userBreakException) {
        LOGGER.error("Polling exited before timeout. Cause ", userBreakException);
        response = new SdxStopFailedEvent(sdxId, userId, userBreakException);
    } catch (PollerStoppedException pollerStoppedException) {
        LOGGER.error("Poller stopped for stack: " + sdxId, pollerStoppedException);
        response = new SdxStopFailedEvent(sdxId, userId, new PollerStoppedException("Datalake stop timed out after " + DURATION_IN_MINUTES + " minutes", pollerStoppedException));
    } catch (PollerException exception) {
        LOGGER.error("Polling failed for stack: {}", sdxId);
        response = new SdxStopFailedEvent(sdxId, userId, exception);
    } catch (BadRequestException badRequest) {
        LOGGER.error("Datahub stop failed.", badRequest);
        response = new SdxStopFailedEvent(sdxId, userId, badRequest);
    }
    return response;
}
Also used : UserBreakException(com.dyngr.exception.UserBreakException) SdxStopAllDatahubRequest(com.sequenceiq.datalake.flow.stop.event.SdxStopAllDatahubRequest) Selectable(com.sequenceiq.cloudbreak.common.event.Selectable) PollerException(com.dyngr.exception.PollerException) SdxStopFailedEvent(com.sequenceiq.datalake.flow.stop.event.SdxStopFailedEvent) BadRequestException(javax.ws.rs.BadRequestException) SdxEvent(com.sequenceiq.datalake.flow.SdxEvent) PollerStoppedException(com.dyngr.exception.PollerStoppedException)

Example 37 with PollerException

use of com.dyngr.exception.PollerException in project cloudbreak by hortonworks.

the class GcpProvisionSetup method copyImage.

public void copyImage(final String sourceBucket, final String sourceKey, final String destBucket, final String destKey, Storage storage) {
    try {
        Storage.Objects.Rewrite rewrite = storage.objects().rewrite(sourceBucket, sourceKey, destBucket, destKey, new StorageObject());
        RewriteResponse rewriteResponse = rewrite.execute();
        GcpImageAttemptMaker gcpImageAttemptMaker = gcpImageAttemptMakerFactory.create(rewriteResponse.getRewriteToken(), sourceBucket, sourceKey, destBucket, destKey, storage);
        Polling.stopAfterAttempt(ATTEMPT_COUNT).stopIfException(true).waitPeriodly(SLEEPTIME, TimeUnit.SECONDS).run(gcpImageAttemptMaker);
        LOGGER.info("Image copy has been finished successfully for {}/{}.", destBucket, destKey);
    } catch (PollerStoppedException pollerStoppedException) {
        LOGGER.error("Poller stopped for image copy: ", pollerStoppedException);
        throw new CloudbreakServiceException("Image copy failed because the copy take too long time. " + "Please check Google Cloud console because probably the image should be ready.");
    } catch (PollerException exception) {
        LOGGER.error("Polling failed for image copy: {}", sourceKey, exception);
        throw new CloudbreakServiceException("Image copy failed because: " + exception.getMessage());
    } catch (Exception e) {
        LOGGER.error("Polling could not started because: {}", e.getMessage(), e);
        throw new CloudbreakServiceException("Copying the image could not be started, " + "please check whether you have given access to CDP for storage API.");
    }
}
Also used : StorageObject(com.google.api.services.storage.model.StorageObject) CloudbreakServiceException(com.sequenceiq.cloudbreak.common.exception.CloudbreakServiceException) PollerException(com.dyngr.exception.PollerException) PollerStoppedException(com.dyngr.exception.PollerStoppedException) CloudConnectorException(com.sequenceiq.cloudbreak.cloud.exception.CloudConnectorException) IOException(java.io.IOException) TokenResponseException(com.google.api.client.auth.oauth2.TokenResponseException) CloudbreakServiceException(com.sequenceiq.cloudbreak.common.exception.CloudbreakServiceException) PollerException(com.dyngr.exception.PollerException) PollerStoppedException(com.dyngr.exception.PollerStoppedException) RewriteResponse(com.google.api.services.storage.model.RewriteResponse)

Aggregations

PollerException (com.dyngr.exception.PollerException)37 PollerStoppedException (com.dyngr.exception.PollerStoppedException)31 UserBreakException (com.dyngr.exception.UserBreakException)30 Selectable (com.sequenceiq.cloudbreak.common.event.Selectable)28 PollingConfig (com.sequenceiq.datalake.service.sdx.PollingConfig)22 DetailedEnvironmentResponse (com.sequenceiq.environment.api.v1.environment.model.response.DetailedEnvironmentResponse)7 SdxCluster (com.sequenceiq.datalake.entity.SdxCluster)5 SdxCreateFailedEvent (com.sequenceiq.datalake.flow.create.event.SdxCreateFailedEvent)5 DatabaseAvailabilityType (com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.request.database.DatabaseAvailabilityType)4 Stack (com.sequenceiq.cloudbreak.domain.stack.Stack)4 SdxEvent (com.sequenceiq.datalake.flow.SdxEvent)4 SdxStopFailedEvent (com.sequenceiq.datalake.flow.stop.event.SdxStopFailedEvent)4 Test (org.junit.jupiter.api.Test)4 DatalakeUpgradeFailedEvent (com.sequenceiq.datalake.flow.datalake.upgrade.event.DatalakeUpgradeFailedEvent)3 SdxDiagnosticsSuccessEvent (com.sequenceiq.datalake.flow.diagnostics.event.SdxDiagnosticsSuccessEvent)3 CloudbreakApiException (com.sequenceiq.cloudbreak.exception.CloudbreakApiException)2 StackCreationSuccessEvent (com.sequenceiq.datalake.flow.create.event.StackCreationSuccessEvent)2 StackCreationWaitRequest (com.sequenceiq.datalake.flow.create.event.StackCreationWaitRequest)2 SdxDeletionFailedEvent (com.sequenceiq.datalake.flow.delete.event.SdxDeletionFailedEvent)2 SdxDiagnosticsFailedEvent (com.sequenceiq.datalake.flow.diagnostics.event.SdxDiagnosticsFailedEvent)2