public Observable<String> deRegisterInstanceFromLoadbalancer(String loadBalancer) { if (instanceId == null || loadBalancer == null) { LOG.error("Unable to register instance {}, on load balancer {}.", instanceId, loadBalancer); throw new IllegalStateException(); } try { return Observable.from(elbAsyncClient.deregisterInstancesFromLoadBalancerAsync(new DeregisterInstancesFromLoadBalancerRequest().withLoadBalancerName(loadBalancer).withInstances(new Instance().withInstanceId(instanceId)))) .flatMap(x -> Observable.just(loadBalancer)); } catch (AmazonClientException e) { LOG.error(LogConstants.ERROR_EXECUTING_REQUEST, e); throw new AwsException(e); } }
public Observable<AwsState> pollForInstanceState(final String loadBalancer) { try { return Observable.from(elbAsyncClient.describeInstanceHealthAsync(new DescribeInstanceHealthRequest().withLoadBalancerName(loadBalancer).withInstances(new Instance().withInstanceId(instanceId)))) .flatMap(result -> { Optional<InstanceState> state = result.getInstanceStates().stream().filter(i -> i.getInstanceId().equals(instanceId)).findFirst(); return just(state.map(instanceState -> AwsState.map(instanceState.getState())).orElse(AwsState.UNKNOWN)); }); } catch (AmazonClientException e) { LOG.error(LogConstants.ERROR_EXECUTING_REQUEST, e); throw new AwsException(e); } }
public Observable<String> registerInstanceWithLoadBalancer(String loadBalancer) { if (instanceId == null || loadBalancer == null) { LOG.error("Unable to register instance {}, on load balancer {}.", instanceId, loadBalancer); throw new IllegalStateException(); } try { return Observable.from(elbAsyncClient.registerInstancesWithLoadBalancerAsync(new RegisterInstancesWithLoadBalancerRequest().withLoadBalancerName(loadBalancer).withInstances(new Instance().withInstanceId(instanceId)))) .flatMap(x -> Observable.just(loadBalancer)) .doOnError(t -> LOG.error(LogConstants.ERROR_EXECUTING_REQUEST, t)); } catch (AmazonClientException e) { LOG.error(LogConstants.ERROR_EXECUTING_REQUEST, e); throw new AwsException(e); } }