use of com.sequenceiq.cloudbreak.controller.NotFoundException in project cloudbreak by hortonworks.
the class StackSyncService method deleteHostFromCluster.
private void deleteHostFromCluster(Stack stack, InstanceMetaData instanceMetaData) {
try {
if (stack.getCluster() != null) {
HostMetadata hostMetadata = hostMetadataRepository.findHostInClusterByName(stack.getCluster().getId(), instanceMetaData.getDiscoveryFQDN());
if (hostMetadata == null) {
if (instanceMetaData.getInstanceStatus() != InstanceStatus.TERMINATED) {
throw new NotFoundException(String.format("Host not found with id '%s'", instanceMetaData.getDiscoveryFQDN()));
}
} else {
if (ambariClusterConnector.available(stack)) {
if (ambariDecommissioner.deleteHostFromAmbari(stack, hostMetadata)) {
hostMetadataRepository.delete(hostMetadata.getId());
eventService.fireCloudbreakEvent(stack.getId(), AVAILABLE.name(), cloudbreakMessagesService.getMessage(Msg.STACK_SYNC_HOST_DELETED.code(), Collections.singletonList(instanceMetaData.getDiscoveryFQDN())));
} else {
eventService.fireCloudbreakEvent(stack.getId(), AVAILABLE.name(), cloudbreakMessagesService.getMessage(Msg.STACK_SYNC_INSTANCE_REMOVAL_FAILED.code(), Collections.singletonList(instanceMetaData.getDiscoveryFQDN())));
}
} else {
hostMetadata.setHostMetadataState(HostMetadataState.UNHEALTHY);
hostMetadataRepository.save(hostMetadata);
eventService.fireCloudbreakEvent(stack.getId(), AVAILABLE.name(), cloudbreakMessagesService.getMessage(Msg.STACK_SYNC_HOST_UPDATED.code(), Arrays.asList(instanceMetaData.getDiscoveryFQDN(), HostMetadataState.UNHEALTHY.name())));
}
}
}
} catch (Exception e) {
LOGGER.error("Host cannot be deleted from cluster: ", e);
eventService.fireCloudbreakEvent(stack.getId(), AVAILABLE.name(), cloudbreakMessagesService.getMessage(Msg.STACK_SYNC_INSTANCE_TERMINATED.code(), Collections.singletonList(instanceMetaData.getDiscoveryFQDN())));
}
}
use of com.sequenceiq.cloudbreak.controller.NotFoundException in project cloudbreak by hortonworks.
the class StackService method getPublicStack.
public Stack getPublicStack(String name, IdentityUser identityUser) {
Stack stack = stackRepository.findByNameInAccount(name, identityUser.getAccount());
if (stack == null) {
throw new NotFoundException(String.format(STACK_NOT_FOUND_EXCEPTION_FORMAT_TEXT, name));
}
authorizationService.hasReadPermission(stack);
return stack;
}
use of com.sequenceiq.cloudbreak.controller.NotFoundException in project cloudbreak by hortonworks.
the class StackService method getPublicStackJsonByName.
public StackResponse getPublicStackJsonByName(String name, IdentityUser identityUser, Collection<String> entries) {
Stack stack = stackRepository.findByNameInAccountWithLists(name, identityUser.getAccount());
if (stack == null) {
throw new NotFoundException(String.format(STACK_NOT_FOUND_EXCEPTION_FORMAT_TEXT, name));
}
authorizationService.hasReadPermission(stack);
StackResponse stackResponse = conversionService.convert(stack, StackResponse.class);
stackResponse = stackResponseDecorator.decorate(stackResponse, stack, entries);
return stackResponse;
}
use of com.sequenceiq.cloudbreak.controller.NotFoundException in project cloudbreak by hortonworks.
the class StackService method delete.
public void delete(String name, IdentityUser user, Boolean forced, Boolean deleteDependencies) {
Stack stack = stackRepository.findByNameInAccountOrOwner(name, user.getAccount(), user.getUserId());
if (stack == null) {
throw new NotFoundException(String.format(STACK_NOT_FOUND_EXCEPTION_FORMAT_TEXT, name));
}
delete(stack, forced, deleteDependencies);
}
use of com.sequenceiq.cloudbreak.controller.NotFoundException in project cloudbreak by hortonworks.
the class StackService method delete.
public void delete(Long id, IdentityUser user, Boolean forced, Boolean deleteDependencies) {
Stack stack = stackRepository.findByIdInAccount(id, user.getAccount());
if (stack == null) {
throw new NotFoundException(String.format(STACK_NOT_FOUND_EXCEPTION_FORMAT_TEXT, id));
}
delete(stack, forced, deleteDependencies);
}
Aggregations