List of usage examples for com.amazonaws.services.elasticloadbalancing.model Listener withInstancePort
public Listener withInstancePort(Integer instancePort)
The port on which the instance is listening.
From source file:jp.primecloud.auto.process.aws.AwsLoadBalancerProcess.java
License:Open Source License
public String createLoadBalancer(AwsProcessClient awsProcessClient, Long loadBalancerNo) { AwsLoadBalancer awsLoadBalancer = awsLoadBalancerDao.read(loadBalancerNo); // ??/* w ww. ja v a2 s . com*/ CreateLoadBalancerRequest request = new CreateLoadBalancerRequest(); request.withLoadBalancerName(awsLoadBalancer.getName()); // ? Listener listener = new Listener(); listener.withProtocol("TCP"); listener.withLoadBalancerPort(65535); listener.withInstancePort(65535); request.withListeners(listener); // ?PVC?? if (BooleanUtils.isNotTrue(awsProcessClient.getPlatformAws().getVpc())) { // AvailabilityZones List<AvailabilityZone> availabilityZones = awsCommonProcess.describeAvailabilityZones(awsProcessClient); for (AvailabilityZone availabilityZone : availabilityZones) { request.withAvailabilityZones(availabilityZone.getZoneName()); } } // VPC?? else { // Subnet List<Subnet> subnets = awsCommonProcess.describeSubnetsByVpcId(awsProcessClient, awsProcessClient.getPlatformAws().getVpcId()); if (StringUtils.isNotEmpty(awsLoadBalancer.getSubnetId())) { for (String subnetId : StringUtils.split(awsLoadBalancer.getSubnetId(), ",")) { subnetId = subnetId.trim(); for (Subnet subnet : subnets) { if (StringUtils.equals(subnetId, subnet.getSubnetId())) { request.withSubnets(subnetId); break; } } } } else { // Subnet??????????AvailabilityZone?Subnet? Map<String, String> subnetIdMap = new LinkedHashMap<String, String>(); for (Subnet subnet : subnets) { if (BooleanUtils.isTrue(subnet.getDefaultForAz())) { subnetIdMap.put(subnet.getAvailabilityZone(), subnet.getSubnetId()); continue; } if (!subnetIdMap.containsKey(subnet.getAvailabilityZone())) { subnetIdMap.put(subnet.getAvailabilityZone(), subnet.getSubnetId()); } } request.withSubnets(subnetIdMap.values()); } // SecurytiGroup List<SecurityGroup> securityGroups = awsCommonProcess.describeSecurityGroupsByVpcId(awsProcessClient, awsProcessClient.getPlatformAws().getVpcId()); for (String groupName : StringUtils.split(awsLoadBalancer.getSecurityGroups(), ",")) { groupName = groupName.trim(); for (SecurityGroup securityGroup : securityGroups) { if (StringUtils.equals(groupName, securityGroup.getGroupName())) { request.withSecurityGroups(securityGroup.getGroupId()); break; } } } // Internal if (BooleanUtils.isTrue(awsLoadBalancer.getInternal())) { request.withScheme("internal"); } } // ??? CreateLoadBalancerResult result = awsProcessClient.getElbClient().createLoadBalancer(request); String dnsName = result.getDNSName(); if (log.isInfoEnabled()) { log.info(MessageUtils.getMessage("IPROCESS-200111", awsLoadBalancer.getName())); } // processLogger.debug(null, null, "AwsElbCreate", new Object[] { awsProcessClient.getPlatform().getPlatformName(), awsLoadBalancer.getName() }); // ?? DeleteLoadBalancerListenersRequest request2 = new DeleteLoadBalancerListenersRequest(); request2.withLoadBalancerName(awsLoadBalancer.getName()); request2.withLoadBalancerPorts(65535); awsProcessClient.getElbClient().deleteLoadBalancerListeners(request2); // ? ModifyLoadBalancerAttributesRequest request3 = new ModifyLoadBalancerAttributesRequest(); request3.withLoadBalancerName(awsLoadBalancer.getName()); request3.withLoadBalancerAttributes(new LoadBalancerAttributes() .withCrossZoneLoadBalancing(new CrossZoneLoadBalancing().withEnabled(true))); awsProcessClient.getElbClient().modifyLoadBalancerAttributes(request3); // processLogger.debug(null, null, "AwsCrossZoneEnabled", new Object[] { awsProcessClient.getPlatform().getPlatformName(), awsLoadBalancer.getName() }); // awsLoadBalancer = awsLoadBalancerDao.read(loadBalancerNo); awsLoadBalancer.setDnsName(dnsName); awsLoadBalancerDao.update(awsLoadBalancer); return dnsName; }
From source file:jp.primecloud.auto.process.aws.AwsLoadBalancerProcess.java
License:Open Source License
public void startListener(AwsProcessClient awsProcessClient, Long loadBalancerNo, Integer loadBalancerPort) { AwsLoadBalancer awsLoadBalancer = awsLoadBalancerDao.read(loadBalancerNo); LoadBalancerListener listener = loadBalancerListenerDao.read(loadBalancerNo, loadBalancerPort); try {/*from w ww.j av a 2 s. c om*/ // ? CreateLoadBalancerListenersRequest request = new CreateLoadBalancerListenersRequest(); request.withLoadBalancerName(awsLoadBalancer.getName()); Listener listener2 = new Listener(); listener2.withProtocol(listener.getProtocol()); listener2.withLoadBalancerPort(listener.getLoadBalancerPort()); listener2.withInstancePort(listener.getServicePort()); if (listener.getSslKeyNo() != null) { AwsSslKey awsSslKey = awsSslKeyDao.read(listener.getSslKeyNo()); listener2.withSSLCertificateId(awsSslKey.getSslcertificateid()); } request.withListeners(listener2); // ?? awsProcessClient.getElbClient().createLoadBalancerListeners(request); if (log.isInfoEnabled()) { log.info(MessageUtils.getMessage("IPROCESS-200121", awsLoadBalancer.getName(), listener.getLoadBalancerPort())); } // processLogger.debug(null, null, "AwsElbListenerCreate", new Object[] { awsProcessClient.getPlatform().getPlatformName(), awsLoadBalancer.getName(), listener.getLoadBalancerPort() }); } catch (RuntimeException e) { // listener = loadBalancerListenerDao.read(loadBalancerNo, loadBalancerPort); listener.setStatus(LoadBalancerListenerStatus.WARNING.toString()); loadBalancerListenerDao.update(listener); throw e; } // listener = loadBalancerListenerDao.read(loadBalancerNo, loadBalancerPort); listener.setStatus(LoadBalancerListenerStatus.RUNNING.toString()); listener.setConfigure(false); loadBalancerListenerDao.update(listener); }