Java源码示例:com.amazonaws.services.elasticloadbalancingv2.model.TargetHealthDescription

示例1
@Override
protected Boolean run() throws Exception {
	TaskListener listener = this.getContext().get(TaskListener.class);
	listener.getLogger().println("elbIsInstanceRegistered instanceID: " + this.step.instanceID + " port: " + this.step.port + " from targetGroupARN: " + this.step.targetGroupARN);
	
	Boolean rval = false;
	AmazonElasticLoadBalancing client = AWSClientFactory.create(AmazonElasticLoadBalancingClientBuilder.standard(), this.getEnvVars());
	DescribeTargetHealthRequest req = new DescribeTargetHealthRequest().withTargetGroupArn(this.step.targetGroupARN);
	DescribeTargetHealthResult res = client.describeTargetHealth(req);
	List<TargetHealthDescription> targets = res.getTargetHealthDescriptions();
	for (TargetHealthDescription target : targets) {
		if (target.getTarget().getId().equals(this.step.instanceID) && target.getTargetHealth().getState().equals("healthy") ) {
			rval = true;
			break;
		}
	}
	listener.getLogger().println(res.toString());
	
	return rval;
}
 
示例2
@Override
protected Boolean run() throws Exception {
	TaskListener listener = this.getContext().get(TaskListener.class);
	listener.getLogger().println("elbIsInstanceDeregistered instanceID: " + this.step.instanceID + " port: " + this.step.port + " from targetGroupARN: " + this.step.targetGroupARN);
	
	Boolean rval = true;
	AmazonElasticLoadBalancing client = AWSClientFactory.create(AmazonElasticLoadBalancingClientBuilder.standard(), this.getEnvVars());
	DescribeTargetHealthRequest req = new DescribeTargetHealthRequest().withTargetGroupArn(this.step.targetGroupARN);
	DescribeTargetHealthResult res = client.describeTargetHealth(req);
	List<TargetHealthDescription> targets = res.getTargetHealthDescriptions();
	for (TargetHealthDescription target : targets) {
		if (target.getTarget().getId().equals(this.step.instanceID) ) {
			rval = false;
			break;
		}
	}
	listener.getLogger().println(res.toString());
	
	return rval;
}
 
示例3
@GET
@NoAuth
@Path("/target-groups/{targetGroup}/targets")
public Collection<TargetHealthDescription> getTargets(@PathParam("targetGroup") String targetGroup) {
  if (config.isPresent()) {
    try {
      Optional<TargetGroup> maybeTargetGroup = applicationLoadBalancer.getTargetGroup(targetGroup);
      if (maybeTargetGroup.isPresent()) {
        return applicationLoadBalancer.getTargetsOn(maybeTargetGroup.get());
      } else {
        throw new WebApplicationException(String.format("TargetGroup with name %s not found", targetGroup), Status.NOT_FOUND);
      }
    } catch (AmazonClientException exn) {
      throw new BaragonWebException(String.format("AWS Client exception %s", exn));
    }
  } else {
    throw new BaragonWebException("ElbSync and related actions are not currently enabled");
  }
}
 
示例4
/**
 *
 * @param target Target to check
 * @param targetGroup Group to check in
 * @return if the given target is the last healthy target in the given target group
 */
private boolean isLastHealthyInstance(TargetDescription target, TargetGroup targetGroup) {
  DescribeTargetHealthRequest targetHealthRequest = new DescribeTargetHealthRequest()
      .withTargetGroupArn(targetGroup.getTargetGroupArn());
  List<TargetHealthDescription> targetHealthDescriptions = elbClient
      .describeTargetHealth(targetHealthRequest)
      .getTargetHealthDescriptions();

  boolean instanceIsHealthy = false;
  int healthyCount = 0;

  for (TargetHealthDescription targetHealthDescription : targetHealthDescriptions) {
    if (targetHealthDescription.getTargetHealth().getState()
        .equals(TargetHealthStateEnum.Healthy.toString())) {
      healthyCount += 1;
      if (targetHealthDescription.getTarget().equals(target)) {
        instanceIsHealthy = true;
      }
    }
  }

  return instanceIsHealthy && healthyCount == 1;
}
 
示例5
@Override
public boolean isInstanceHealthy(String instanceId, String elbName) {
  DescribeTargetHealthRequest healthRequest = new DescribeTargetHealthRequest()
      .withTargets(new TargetDescription().withId(instanceId));
  DescribeTargetHealthResult result = elbClient.describeTargetHealth(healthRequest);

  for (TargetHealthDescription health: result.getTargetHealthDescriptions()) {
    if (health.getTargetHealth().getState().equals(TargetHealthStateEnum.Healthy.toString())
        && health.getTarget().getId().equals(instanceId)) {
      return true;
    }
  }

  return false;
}
 
示例6
public Collection<TargetHealthDescription> getTargetsOn(TargetGroup targetGroup) {
  DescribeTargetHealthRequest targetHealthRequest = new DescribeTargetHealthRequest()
      .withTargetGroupArn(targetGroup.getTargetGroupArn());

  return elbClient
      .describeTargetHealth(targetHealthRequest)
      .getTargetHealthDescriptions();
}
 
示例7
private Collection<TargetDescription> targetsInTargetGroup(TargetGroup targetGroup) {
  DescribeTargetHealthRequest targetHealthRequest = new DescribeTargetHealthRequest()
      .withTargetGroupArn(targetGroup.getTargetGroupArn());
  List<TargetHealthDescription> targetGroupsResult = elbClient
      .describeTargetHealth(targetHealthRequest)
      .getTargetHealthDescriptions();

  Collection<TargetDescription> targetDescriptions = new HashSet<>();
  for (TargetHealthDescription targetHealthDescription : targetGroupsResult) {
    targetDescriptions.add(targetHealthDescription.getTarget());
  }

  return targetDescriptions;
}
 
示例8
/**
 * Instantiates a new target group VH.
 *
 * @param trgtGrp the trgt grp
 * @param targets the targets
 */
public TargetGroupVH(TargetGroup trgtGrp, List<TargetHealthDescription> targets){
	this.trgtGrp = trgtGrp;
	this.targets = targets;
}
 
示例9
/**
 * Gets the targets.
 *
 * @return the targets
 */
public List<TargetHealthDescription> getTargets() {
	return targets;
}