use of com.sequenceiq.cloudbreak.reactor.api.event.cluster.dr.backup.DatabaseBackupSuccess in project cloudbreak by hortonworks.
the class DatabaseBackupHandler method doAccept.
@Override
protected Selectable doAccept(HandlerEvent<DatabaseBackupRequest> event) {
DatabaseBackupRequest request = event.getData();
Selectable result;
Long stackId = request.getResourceId();
LOGGER.debug("Backing up database on stack {}, backup id {}", stackId, request.getBackupId());
try {
Stack stack = stackService.getByIdWithListsInTransaction(stackId);
Cluster cluster = stack.getCluster();
InstanceMetaData gatewayInstance = stack.getPrimaryGatewayInstance();
GatewayConfig gatewayConfig = gatewayConfigService.getGatewayConfig(stack, gatewayInstance, cluster.hasGateway());
Set<String> gatewayFQDN = Collections.singleton(gatewayInstance.getDiscoveryFQDN());
ExitCriteriaModel exitModel = ClusterDeletionBasedExitCriteriaModel.clusterDeletionBasedModel(stackId, cluster.getId());
String rangerAdminGroup = rangerVirtualGroupService.getRangerVirtualGroup(stack);
SaltConfig saltConfig = saltConfigGenerator.createSaltConfig(request.getBackupLocation(), request.getBackupId(), rangerAdminGroup, request.getCloseConnections(), stack);
hostOrchestrator.backupDatabase(gatewayConfig, gatewayFQDN, stackUtil.collectReachableNodes(stack), saltConfig, exitModel);
result = new DatabaseBackupSuccess(stackId);
} catch (Exception e) {
LOGGER.error("Database backup event failed", e);
result = new DatabaseBackupFailedEvent(stackId, e, DetailedStackStatus.DATABASE_BACKUP_FAILED);
}
return result;
}
Aggregations