List of usage examples for com.amazonaws.services.elasticloadbalancing.model DeregisterInstancesFromLoadBalancerRequest withLoadBalancerName
public DeregisterInstancesFromLoadBalancerRequest withLoadBalancerName(String loadBalancerName)
The name of the load balancer.
From source file:jp.primecloud.auto.process.aws.AwsLoadBalancerProcess.java
License:Open Source License
public void unregisterInstances(AwsProcessClient awsProcessClient, Long loadBalancerNo, List<Long> instanceNos) { if (instanceNos.isEmpty()) { // ??????? return;/*from w w w.j a va 2s . c o m*/ } // ????? { List<Long> tmpInstanceNos = new ArrayList<Long>(); List<LoadBalancerInstance> loadBalancerInstances = loadBalancerInstanceDao .readByLoadBalancerNo(loadBalancerNo); for (LoadBalancerInstance loadBalancerInstance : loadBalancerInstances) { if (instanceNos.contains(loadBalancerInstance.getInstanceNo())) { LoadBalancerInstanceStatus status = LoadBalancerInstanceStatus .fromStatus(loadBalancerInstance.getStatus()); if (status == LoadBalancerInstanceStatus.RUNNING) { tmpInstanceNos.add(loadBalancerInstance.getInstanceNo()); } } } instanceNos = tmpInstanceNos; } if (instanceNos.isEmpty()) { // ????????? return; } // ???? { List<Long> tmpInstanceNos = new ArrayList<Long>(); List<Instance> instances = instanceDao.readInInstanceNos(instanceNos); for (Instance instance : instances) { InstanceStatus status = InstanceStatus.fromStatus(instance.getStatus()); if (status == InstanceStatus.RUNNING) { tmpInstanceNos.add(instance.getInstanceNo()); } } instanceNos = tmpInstanceNos; } if (instanceNos.isEmpty()) { // ???????? return; } // ID? List<String> instanceIds = new ArrayList<String>(); { List<AwsInstance> awsInstances = awsInstanceDao.readInInstanceNos(instanceNos); for (AwsInstance awsInstance : awsInstances) { instanceIds.add(awsInstance.getInstanceId()); } } try { // ? AwsLoadBalancer awsLoadBalancer = awsLoadBalancerDao.read(loadBalancerNo); DeregisterInstancesFromLoadBalancerRequest request = new DeregisterInstancesFromLoadBalancerRequest(); request.withLoadBalancerName(awsLoadBalancer.getName()); for (String instanceId : instanceIds) { request.withInstances(new com.amazonaws.services.elasticloadbalancing.model.Instance(instanceId)); } awsProcessClient.getElbClient().deregisterInstancesFromLoadBalancer(request); if (log.isInfoEnabled()) { log.info(MessageUtils.getMessage("IPROCESS-200142", awsLoadBalancer.getName(), instanceIds)); } // processLogger.debug(null, null, "AwsElbInstancesDeregist", new Object[] { awsProcessClient.getPlatform().getPlatformName(), awsLoadBalancer.getName(), instanceIds }); } catch (RuntimeException e) { // ? List<LoadBalancerInstance> loadBalancerInstances = loadBalancerInstanceDao .readByLoadBalancerNo(loadBalancerNo); for (LoadBalancerInstance loadBalancerInstance : loadBalancerInstances) { if (instanceNos.contains(loadBalancerInstance.getInstanceNo())) { loadBalancerInstance.setStatus(LoadBalancerInstanceStatus.WARNING.toString()); loadBalancerInstanceDao.update(loadBalancerInstance); } } throw e; } // ? List<LoadBalancerInstance> loadBalancerInstances = loadBalancerInstanceDao .readByLoadBalancerNo(loadBalancerNo); for (LoadBalancerInstance loadBalancerInstance : loadBalancerInstances) { if (instanceNos.contains(loadBalancerInstance.getInstanceNo())) { loadBalancerInstance.setStatus(LoadBalancerInstanceStatus.STOPPED.toString()); loadBalancerInstanceDao.update(loadBalancerInstance); } } }