private void predecessorSuccessfullyReplacedResult(ResourceEntity successorResource, String predecessorName, PredecessorResult predecessorResult) { predecessorResult.setProcessingState(ProcessingState.OK); // only if really successful if (predecessorResult.getMessages().isEmpty()) { predecessorResult.addMessage(new PredecessorResultMessage(MessageSeverity.INFO, "Predecessor application " + predecessorName + " successfully replaced by " + successorResource.getName())); } }
private PredecessorResult handleAsForSuccessorResourceRelease(ResourceEntity successorResource, ResourceGroupEntity asPredecessorGroup) { PredecessorResult predecessorResult = new PredecessorResult(); try { if (getOrCreateAsInSuccessorRelease(asPredecessorGroup, successorResource) == null) { log.warning("No Applicationerver could be created or found for successor release"); throw new AMWException("No Applicationerver could be created or found for successor release"); } } catch (ForeignableOwnerViolationException e) { log.log(Level.WARNING, "Error while creating As in Successor Release", e); predecessorResult.setProcessingState(ProcessingState.FAILED); predecessorResult.addMessage(new PredecessorResultMessage(MessageSeverity.ERROR, "Error while creating As in Successor Release: " + e.getMessage())); } catch (AMWException e) { log.log(Level.WARNING, "Error while creating As in Successor Release", e); predecessorResult.setProcessingState(ProcessingState.FAILED); predecessorResult.addMessage(new PredecessorResultMessage(MessageSeverity.WARNING, "Error while creating As in Successor Release: " + e.getMessage())); } return predecessorResult; }
private boolean copyPredecessorApplicationToSuccessor(ResourceEntity successorResource, ForeignableOwner actingOwner, PredecessorResult predecessorResult, ResourceEntity predecessorResource) { // copy application try { copyService.copyFromPredecessorToSuccessorResource(predecessorResource, successorResource, actingOwner); } catch (ForeignableOwnerViolationException e) { log.warning(e.getMessage()); predecessorResult.addMessage(new PredecessorResultMessage(MessageSeverity.ERROR, e.getMessage())); return false; } catch (AMWException e) { log.warning(e.getMessage()); predecessorResult.setProcessingState(ProcessingState.OK); predecessorResult.addMessage(new PredecessorResultMessage(MessageSeverity.WARNING, e.getMessage())); return false; } return true; }
private PredecessorResult doHandlePredecessor(ResourceEntity successorResource, String predecessorName, ForeignableOwner actingOwner) { PredecessorResult predecessorResult = new PredecessorResult(successorResource.getName(), ProcessingState.FAILED); List<ResourceEntity> predecessorCandidates = getPredecessorCandidates(predecessorName); if (!predecessorCandidates.isEmpty()) { ResourceEntity predecessorResource = findPredecessor(predecessorCandidates, successorResource, predecessorResult); if (copyPredecessorApplicationToSuccessor(successorResource, actingOwner, predecessorResult, predecessorResource) && copyCpisFromPredecessorToSuccessor(successorResource, actingOwner, predecessorResult, predecessorResource) && copyPpisFromPredecessorToSuccessor(successorResource, actingOwner, predecessorResult, predecessorResource) && handleApplicationServerRelations(successorResource, predecessorResult, predecessorResource)) { predecessorSuccessfullyReplacedResult(successorResource, predecessorName, predecessorResult); } } else { // do "nothing" log.warning("Predecessor application " + predecessorName + " not found"); predecessorResult.setProcessingState(ProcessingState.OK); predecessorResult.addMessage(new PredecessorResultMessage(MessageSeverity.WARNING, "Predecessor application " + predecessorName + " not found")); } return predecessorResult; }
private boolean copyCpisFromPredecessorToSuccessor(ResourceEntity successorResource, ForeignableOwner actingOwner, PredecessorResult predecessorResult, ResourceEntity predecessorResource) { // copy CPIs for (ConsumedResourceRelationEntity consumedResourceRelationEntity : successorResource.getConsumedMasterRelations()) { if (predecessorResource != null && resourceLocator.hasResourceConsumableSoftlinkType(consumedResourceRelationEntity.getSlaveResource())) { ResourceEntity successorCpi = consumedResourceRelationEntity.getSlaveResource(); try { final ResourceEntity predecessorCpi = getPredecessorForCpiOrPpi(successorCpi, predecessorResource.getConsumedMasterRelations()); if (predecessorCpi != null) { try { copyService.copyFromPredecessorToSuccessorResource(predecessorCpi, successorCpi, actingOwner); } catch (ForeignableOwnerViolationException e) { log.warning(e.getMessage()); predecessorResult.addMessage(new PredecessorResultMessage(MessageSeverity.ERROR, e.getMessage())); return false; } catch (AMWException e) { log.warning(e.getMessage()); predecessorResult.setProcessingState(ProcessingState.OK); predecessorResult.addMessage(new PredecessorResultMessage(MessageSeverity.WARNING, e.getMessage())); return false; } } } catch (AMWRuntimeException e) { predecessorResult.setProcessingState(ProcessingState.OK); predecessorResult.addMessage(new PredecessorResultMessage(MessageSeverity.WARNING, e.getMessage())); return false; } } } return true; }
private boolean copyPpisFromPredecessorToSuccessor(ResourceEntity successorResource, ForeignableOwner actingOwner, PredecessorResult predecessorResult, ResourceEntity predecessorResource) { // copy PPIs for (ProvidedResourceRelationEntity providedResourceRelationEntity : successorResource.getProvidedMasterRelations()) { if (predecessorResource != null && resourceLocator.hasResourceProvidableSoftlinkType(providedResourceRelationEntity.getSlaveResource())) { ResourceEntity successorPpi = providedResourceRelationEntity.getSlaveResource(); try { final ResourceEntity predecessorPpi = getPredecessorForCpiOrPpi(successorPpi, predecessorResource.getProvidedMasterRelations()); if (predecessorPpi != null) { try { copyService.copyFromPredecessorToSuccessorResource(predecessorPpi, successorPpi, actingOwner); } catch (ForeignableOwnerViolationException e) { log.warning(e.getMessage()); predecessorResult.addMessage(new PredecessorResultMessage(MessageSeverity.ERROR, e.getMessage())); return false; } catch (AMWException e) { log.warning(e.getMessage()); predecessorResult.setProcessingState(ProcessingState.OK); predecessorResult.addMessage(new PredecessorResultMessage(MessageSeverity.WARNING, e.getMessage())); return false; } } } catch (AMWRuntimeException e) { predecessorResult.setProcessingState(ProcessingState.OK); predecessorResult.addMessage(new PredecessorResultMessage(MessageSeverity.WARNING, e.getMessage())); return false; } } } return true; }