List of usage examples for com.amazonaws.services.ec2.model Subnet getSubnetId
public String getSubnetId()
The ID of the subnet.
From source file:com.infinitechaos.vpcviewer.web.rest.dto.SubnetDTO.java
License:Open Source License
public SubnetDTO(final Subnet subnet) { this.subnetId = subnet.getSubnetId(); this.vpcId = subnet.getVpcId(); this.state = subnet.getState(); this.availabilityZone = subnet.getAvailabilityZone(); this.cidrBlock = subnet.getCidrBlock(); this.tags.addAll(subnet.getTags().stream().map(TagDTO::new).collect(Collectors.toList())); this.name = subnet.getTags().stream().filter(t -> t.getKey().equals("Name")).findFirst().map(Tag::getValue) .orElse("n/a"); }
From source file:com.netflix.edda.EddaEc2Client.java
License:Apache License
public DescribeSubnetsResult describeSubnets(DescribeSubnetsRequest request) { validateEmpty("Filter", request.getFilters()); TypeReference<List<Subnet>> ref = new TypeReference<List<Subnet>>() { };// ww w. ja v a 2s.c o m String url = config.url() + "/api/v2/aws/subnets;_expand"; try { List<Subnet> subnets = parse(ref, doGet(url)); List<String> ids = request.getSubnetIds(); if (shouldFilter(ids)) { List<Subnet> ss = new ArrayList<Subnet>(); for (Subnet s : subnets) { if (matches(ids, s.getSubnetId())) ss.add(s); } subnets = ss; } return new DescribeSubnetsResult().withSubnets(subnets); } catch (IOException e) { throw new AmazonClientException("Faled to parse " + url, e); } }
From source file:com.pinterest.arcee.handler.SpecsHandler.java
License:Apache License
public List<SpecBean> getSubnets() { DescribeSubnetsRequest request = new DescribeSubnetsRequest(); request.setFilters(/* ww w . j a v a 2s .c o m*/ Arrays.asList(new Filter[] { new Filter("VpcId", Arrays.asList(new String[] { VPC_ID })) })); DescribeSubnetsResult result = client.describeSubnets(); List<Subnet> subnets = result.getSubnets(); ArrayList<SpecBean> subnetsName = new ArrayList<>(); for (Subnet subnet : subnets) { SpecBean specBean = new SpecBean(); specBean.setSpecId(subnet.getSubnetId()); specBean.addInfo("zone", subnet.getAvailabilityZone()); if (subnet.getTags().isEmpty()) { specBean.addInfo("tag", ""); } else { specBean.addInfo("tag", subnet.getTags().get(0).getValue()); } subnetsName.add(specBean); } return subnetsName; }
From source file:dsmwatcher.DSMWatcher.java
License:Open Source License
public void isolateInstance(Instance instance, AmazonEC2Client ec2) throws Exception { Subnet targetIRSubnet = null; handleAutoScaledInstance(instance); //check for autoscaling, if autoscaled instance detach first // to prevent heathcheck failure and termination DescribeSubnetsRequest subnetRequest = new DescribeSubnetsRequest().withSubnetIds(instance.getSubnetId()); List<Subnet> sourceSubnet = ec2.describeSubnets(subnetRequest).getSubnets(); String targetAZStr = sourceSubnet.get(0).getAvailabilityZone(); for (String IRSubnet : IRSubnets) { subnetRequest = new DescribeSubnetsRequest().withSubnetIds(IRSubnet); if (targetAZStr .compareTo(ec2.describeSubnets(subnetRequest).getSubnets().get(0).getAvailabilityZone()) == 0) { targetIRSubnet = ec2.describeSubnets(subnetRequest).getSubnets().get(0); }// w w w. ja v a 2 s . c om } if (targetIRSubnet == null) { error("Unable to find an isolation subnet for instance " + instance.getInstanceId()); return; } List<InstanceNetworkInterface> ienis = instance.getNetworkInterfaces(); for (InstanceNetworkInterface ieni : ienis) { String eniTag = ""; List<GroupIdentifier> inititalSecGroups = ieni.getGroups(); for (GroupIdentifier secGroup : inititalSecGroups) { eniTag += secGroup.getGroupId() + ","; } eniTag = eniTag.substring(0, eniTag.length() - 1); DescribeNetworkInterfacesRequest netReq = new DescribeNetworkInterfacesRequest() .withNetworkInterfaceIds(ieni.getNetworkInterfaceId()); DescribeNetworkInterfacesResult netResult = ec2.describeNetworkInterfaces(netReq); List<com.amazonaws.services.ec2.model.NetworkInterface> enis = netResult.getNetworkInterfaces(); for (com.amazonaws.services.ec2.model.NetworkInterface eni : enis) { List<Tag> tagSet = eni.getTagSet(); Tag saveSGTag = new Tag().withKey("PreIsolationSG").withValue(eniTag); Tag isolationTag = new Tag().withKey("InIsolation").withValue("True"); tagSet.add(saveSGTag); tagSet.add(isolationTag); CreateTagsRequest ctr = new CreateTagsRequest().withResources(eni.getNetworkInterfaceId()) .withTags(tagSet); ec2.createTags(ctr); ModifyNetworkInterfaceAttributeRequest netReqest = new ModifyNetworkInterfaceAttributeRequest() .withNetworkInterfaceId(eni.getNetworkInterfaceId()).withGroups(denyAllSG); ec2.modifyNetworkInterfaceAttribute(netReqest); } } CreateNetworkInterfaceRequest newENIReq = new CreateNetworkInterfaceRequest() .withSubnetId(targetIRSubnet.getSubnetId()).withGroups(IRSecGrp); CreateNetworkInterfaceResult newENIResult = ec2.createNetworkInterface(newENIReq); AttachNetworkInterfaceRequest attachReq = new AttachNetworkInterfaceRequest() .withNetworkInterfaceId(newENIResult.getNetworkInterface().getNetworkInterfaceId()) .withInstanceId(instance.getInstanceId()) .withDeviceIndex(instance.getNetworkInterfaces().size() + 1); AttachNetworkInterfaceResult attachResults = ec2.attachNetworkInterface(attachReq); NetworkInterfaceAttachmentChanges attachTerm = new NetworkInterfaceAttachmentChanges() .withAttachmentId(attachResults.getAttachmentId()).withDeleteOnTermination(true); ModifyNetworkInterfaceAttributeRequest setDeleteOnTerm = new ModifyNetworkInterfaceAttributeRequest() .withAttachment(attachTerm) .withNetworkInterfaceId(newENIResult.getNetworkInterface().getNetworkInterfaceId()); ec2.modifyNetworkInterfaceAttribute(setDeleteOnTerm); CreateTagsRequest tagNewENIReq = new CreateTagsRequest(); List<Tag> isolationENITags = newENIResult.getNetworkInterface().getTagSet(); Tag newENITag = new Tag().withKey("IRENI").withValue("True"); isolationENITags.add(newENITag); tagNewENIReq.setTags(isolationENITags); tagNewENIReq.withResources(newENIResult.getNetworkInterface().getNetworkInterfaceId()); ec2.createTags(tagNewENIReq); }
From source file:jp.primecloud.auto.api.instance.DescribeInstance.java
License:Open Source License
/** * ??//from w w w.j a v a 2 s . co m * * @param instanceNo ? * @return DescribeInstanceResponse */ @GET @Produces(MediaType.APPLICATION_JSON) public DescribeInstanceResponse describeInstance(@QueryParam(PARAM_NAME_INSTANCE_NO) String instanceNo) { // ? // InstanceNo ApiValidate.validateInstanceNo(instanceNo); // ?? Instance instance = getInstance(Long.parseLong(instanceNo)); // ?? User user = checkAndGetUser(instance); //? Platform platform = platformDao.read(instance.getPlatformNo()); if (platform == null) { // ???? throw new AutoApplicationException("EAPI-100000", "Platform", PARAM_NAME_PLATFORM_NO, instance.getPlatformNo()); } // InstanceResponse instanceResponse = new InstanceResponse(instance); // TODO CLOUD BRANCHING if (PLATFORM_TYPE_AWS.equals(platform.getPlatformType())) { //AWS AwsInstance awsInstance = awsInstanceDao.read(Long.parseLong(instanceNo)); if (awsInstance == null) { // AWS???? throw new AutoApplicationException("EAPI-100000", "AwsInstance", PARAM_NAME_INSTANCE_NO, instanceNo); } AwsInstanceResponse awsResponse = new AwsInstanceResponse(awsInstance); //SUBNET? if (StringUtils.isNotEmpty(awsInstance.getSubnetId())) { List<Subnet> subnets = awsDescribeService.getSubnets(user.getUserNo(), platform.getPlatformNo()); for (Subnet subnet : subnets) { if (StringUtils.equals(subnet.getSubnetId(), awsInstance.getSubnetId())) { awsResponse.setSubnet(subnet.getCidrBlock()); break; } } } // ? List<AwsAddress> awsAddresses = awsAddressDao.readByUserNo(user.getUserNo()); for (AwsAddress awsAddress : awsAddresses) { if (platform.getPlatformNo().equals(awsAddress.getPlatformNo()) && instance.getInstanceNo().equals(awsAddress.getInstanceNo())) { awsResponse.setAwsAddress(new AwsAddressResponse(awsAddress)); break; } } //AWS instanceResponse.setAws(awsResponse); } else if (PLATFORM_TYPE_CLOUDSTACK.equals(platform.getPlatformType())) { //CloudStack CloudstackInstance cloudstackInstance = cloudstackInstanceDao.read(Long.parseLong(instanceNo)); if (cloudstackInstance == null) { // CloudStack???? throw new AutoApplicationException("EAPI-100000", "CloudstackInstance", PARAM_NAME_INSTANCE_NO, instanceNo); } //CloudStack instanceResponse.setCloudstack(new CloudstackInstanceResponse(cloudstackInstance)); } else if (PLATFORM_TYPE_VMWARE.equals(platform.getPlatformType())) { //VMWare VmwareInstance vmwareInstance = vmwareInstanceDao.read(Long.parseLong(instanceNo)); if (vmwareInstance == null) { // VMWare???? throw new AutoApplicationException("EAPI-100000", "VmwareInstance", PARAM_NAME_INSTANCE_NO, instanceNo); } VmwareInstanceResponse vmResponse = new VmwareInstanceResponse(vmwareInstance); //VMWARE_ADDRESS? VmwareAddress vmwareAddress = vmwareAddressDao.readByInstanceNo(Long.parseLong(instanceNo)); if (vmwareAddress != null && BooleanUtils.isTrue(vmwareAddress.getEnabled())) { vmResponse.setIsStaticIp(true); vmResponse.setSubnetMask(vmwareAddress.getSubnetMask()); vmResponse.setDefaultGateway(vmwareAddress.getDefaultGateway()); } else { vmResponse.setIsStaticIp(false); } //VMWARE_KEYPAIR? List<VmwareKeyPair> keyPairs = vmwareDescribeService.getKeyPairs(user.getUserNo(), instance.getPlatformNo()); for (VmwareKeyPair keyPair : keyPairs) { if (keyPair.getKeyNo().equals(vmwareInstance.getKeyPairNo())) { vmResponse.setKeyName(keyPair.getKeyName()); break; } } //VMWare instanceResponse.setVmware(vmResponse); } else if (PLATFORM_TYPE_NIFTY.equals(platform.getPlatformType())) { //Nifty NiftyInstance niftyInstance = niftyInstanceDao.read(Long.parseLong(instanceNo)); if (niftyInstance == null) { // /Nifty???? throw new AutoApplicationException("EAPI-100000", "NiftyInstance", PARAM_NAME_INSTANCE_NO, instanceNo); } NiftyInstanceResponse niftyResponse = new NiftyInstanceResponse(niftyInstance); //NIFTY_KEYPAIR? List<NiftyKeyPair> keyPairs = niftyDescribeService.getKeyPairs(user.getUserNo(), instance.getPlatformNo()); for (NiftyKeyPair keyPair : keyPairs) { if (keyPair.getKeyNo().equals(niftyInstance.getKeyPairNo())) { niftyResponse.setKeyName(keyPair.getKeyName()); break; } } //Nifty instanceResponse.setNifty(niftyResponse); } else if (PLATFORM_TYPE_VCLOUD.equals(platform.getPlatformType())) { //VCLOUD_INSTANCE VcloudInstance vcloudInstance = vcloudInstanceDao.read(Long.parseLong(instanceNo)); if (vcloudInstance == null) { // VMWare???? throw new AutoApplicationException("EAPI-100000", "VcloudInstance", PARAM_NAME_INSTANCE_NO, instanceNo); } VcloudInstanceResponse vcloudInstanceResponse = new VcloudInstanceResponse(vcloudInstance); //PLATFORM_VCLOUD_STORAGE_TYPE? List<PlatformVcloudStorageType> storageTypes = platformVcloudStorageTypeDao .readByPlatformNo(platform.getPlatformNo()); for (PlatformVcloudStorageType storageType : storageTypes) { if (storageType.getStorageTypeNo().equals(vcloudInstance.getStorageTypeNo())) { vcloudInstanceResponse.setStorageTypeName(storageType.getStorageTypeName()); break; } } //VCLOUD_KEYPAIR? List<KeyPairDto> keyPairs = iaasDescribeService.getKeyPairs(user.getUserNo(), instance.getPlatformNo()); for (KeyPairDto keyPair : keyPairs) { if (keyPair.getKeyNo().equals(vcloudInstance.getKeyPairNo())) { vcloudInstanceResponse.setKeyName(keyPair.getKeyName()); break; } } // VCloudNetwork? List<VcloudInstanceNetwork> vcloudInstanceNetworks = vcloudInstanceNetworkDao .readByInstanceNo(Long.parseLong(instanceNo)); for (VcloudInstanceNetwork vcloudInstanceNetwork : vcloudInstanceNetworks) { // VCloudNetwork VcloudInstanceNetworkResponse vcloudInstanceNetworkResponse = new VcloudInstanceNetworkResponse( vcloudInstanceNetwork); // if (BooleanUtils.isTrue(vcloudInstanceNetwork.getIsPrimary())) { vcloudInstanceNetworkResponse.setIsPrimary(true); } else { vcloudInstanceNetworkResponse.setIsPrimary(false); } vcloudInstanceResponse.getVcloudNetwoks().add(vcloudInstanceNetworkResponse); } //VCloud instanceResponse.setVcloud(vcloudInstanceResponse); } else if (PLATFORM_TYPE_OPENSTACK.equals(platform.getPlatformType())) { //OpenStack OpenstackInstance openstackInstance = openstackInstanceDao.read(Long.parseLong(instanceNo)); if (openstackInstance == null) { // OpenStack???? throw new AutoApplicationException("EAPI-100000", "OpenstackInstance", PARAM_NAME_INSTANCE_NO, instanceNo); } //OpenStack instanceResponse.setOpenstack(new OpenstackInstanceResponse(openstackInstance)); } else if (PLATFORM_TYPE_AZURE.equals(platform.getPlatformType())) { //Azure AzureInstance azureInstance = azureInstanceDao.read(Long.parseLong(instanceNo)); if (azureInstance == null) { // Azure???? throw new AutoApplicationException("EAPI-100000", "AzureInstance", PARAM_NAME_INSTANCE_NO, instanceNo); } //Azure instanceResponse.setAzure(new AzureInstanceResponse(azureInstance)); } DescribeInstanceResponse response = new DescribeInstanceResponse(instanceResponse); return response; }
From source file:jp.primecloud.auto.api.instance.EditInstanceAws.java
License:Open Source License
@GET @Produces(MediaType.APPLICATION_JSON)/* w w w . jav a 2s .co m*/ public EditInstanceAwsResponse editInstance(@QueryParam(PARAM_NAME_INSTANCE_NO) String instanceNo, @QueryParam(PARAM_NAME_COMMENT) String comment, @QueryParam(PARAM_NAME_INSTANCE_TYPE) String instanceType, @QueryParam(PARAM_NAME_KEY_NAME) String keyName, @QueryParam(PARAM_NAME_SECURITY_GROUPS) String securityGroups, @QueryParam(PARAM_NAME_AVAILABILITY_ZONE) String availabilityZone, @QueryParam(PARAM_NAME_IP_ADDRESS) String ipAddress, @QueryParam(PARAM_NAME_SUBNET) String subnet, @QueryParam(PARAM_NAME_ROOT_SIZE) String rootSize, @QueryParam(PARAM_NAME_PRIVATE_IP) String privateIp) { // InstanceNo ApiValidate.validateInstanceNo(instanceNo); // ? Instance instance = getInstance(Long.parseLong(instanceNo)); // ?? User user = checkAndGetUser(instance); // ?? InstanceStatus status = InstanceStatus.fromStatus(instance.getStatus()); if (InstanceStatus.STOPPED != status) { // ??????? throw new AutoApplicationException("EAPI-100014", instanceNo); } // ?? Platform platform = platformDao.read(instance.getPlatformNo()); if (!PLATFORM_TYPE_AWS.equals(platform.getPlatformType())) { // ?AWS??? throw new AutoApplicationException("EAPI-100031", "AWS", instanceNo, instance.getPlatformNo()); } // Comment ApiValidate.validateComment(comment); // InstanceType ApiValidate.validateInstanceType(instanceType, true); if (!checkInstanceType(instance.getImageNo(), instanceType)) { // InstanceType???? throw new AutoApplicationException("EAPI-000011", instance.getImageNo(), instanceType); } // KeyName ApiValidate.validateKeyName(keyName); if (!checkKeyName(user.getUserNo(), instance.getPlatformNo(), keyName)) { // KeyName???? throw new AutoApplicationException("EAPI-000012", instance.getPlatformNo(), keyName); } // SecurityGroups ApiValidate.validateSecurityGroups(securityGroups); if (!checkSecurityGroups(user.getUserNo(), instance.getPlatformNo(), securityGroups)) { // SecurityGroups???? throw new AutoApplicationException("EAPI-100019", instance.getPlatformNo(), securityGroups); } PlatformAws platformAws = platformAwsDao.read(instance.getPlatformNo()); // Subnet(VPC??) Subnet awsSubnet = null; if (BooleanUtils.isTrue(platformAws.getVpc())) { ApiValidate.validateSubnet(subnet); awsSubnet = getSubnet(user.getUserNo(), instance.getPlatformNo(), subnet); if (awsSubnet == null) { // CidrBlock???? throw new AutoApplicationException("EAPI-000017", instance.getPlatformNo(), subnet); } } // RootSize Integer rootSize2 = null; if (StringUtils.isNotEmpty(rootSize)) { ImageAws imageAws = imageAwsDao.read(instance.getImageNo()); int min = imageAws.getRootSize() == null ? 0 : imageAws.getRootSize(); ApiValidate.validateRootSize(rootSize, min); rootSize2 = Integer.valueOf(rootSize); } // PrivateIpAddress(VPC??) if (BooleanUtils.isTrue(platformAws.getVpc()) && StringUtils.isNotEmpty(privateIp)) { ApiValidate.validatePrivateIpAddress(privateIp); // ???IP?????? if (!checkPrivateIp(subnet, privateIp)) { // ???IP??? throw new AutoApplicationException("EAPI-000018", subnet, privateIp); } } // AvailabilityZone(?VPC??) if (BooleanUtils.isNotTrue(platformAws.getVpc())) { ApiValidate.validateAvailabilityZone(availabilityZone); if (StringUtils.isNotEmpty(availabilityZone) && !checkAvailabilityZoneName(user.getUserNo(), instance.getPlatformNo(), availabilityZone)) { // AvailabilityZoneName???? throw new AutoApplicationException("EAPI-100017", instance.getPlatformNo(), availabilityZone); } } // IpAddress Long addressNo = null; if (StringUtils.isNotEmpty(ipAddress)) { ApiValidate.validateIpAddress(ipAddress, false); List<AwsAddress> awsAddresses = awsAddressDao.readByUserNo(user.getUserNo()); for (AwsAddress awsAddress : awsAddresses) { if (instance.getPlatformNo().equals(awsAddress.getPlatformNo())) { if (ipAddress.equals(awsAddress.getPublicIp())) { addressNo = awsAddress.getAddressNo(); break; } } } if (addressNo == null) { // IpAddress???? throw new AutoApplicationException("EAPI-100016", instance.getInstanceNo(), ipAddress); } } // ? if (BooleanUtils.isTrue(platformAws.getVpc())) { instanceService.updateAwsInstance(instance.getInstanceNo(), instance.getInstanceName(), comment, keyName, instanceType, securityGroups, awsSubnet.getAvailabilityZone(), addressNo, awsSubnet.getSubnetId(), rootSize2, privateIp); } else { instanceService.updateAwsInstance(instance.getInstanceNo(), instance.getInstanceName(), comment, keyName, instanceType, securityGroups, availabilityZone, addressNo, null, rootSize2, null); } EditInstanceAwsResponse response = new EditInstanceAwsResponse(); return response; }
From source file:jp.primecloud.auto.api.lb.DescribeLoadBalancer.java
License:Open Source License
/** * ??/* ww w. j av a 2 s . c o m*/ * * @param loadBalancerNo ?? * @return DescribeLoadBalancerResponse */ @GET @Produces(MediaType.APPLICATION_JSON) public DescribeLoadBalancerResponse describeLoadBalancer( @QueryParam(PARAM_NAME_LOAD_BALANCER_NO) String loadBalancerNo) { // ? // LoadBalancerNo ApiValidate.validateLoadBalancerNo(loadBalancerNo); // ?? LoadBalancer loadBalancer = getLoadBalancer(Long.parseLong(loadBalancerNo)); // ?? User user = checkAndGetUser(loadBalancer); //? LoadBalancerResponse loadBalancerResponse = new LoadBalancerResponse(loadBalancer); //? List<LoadBalancerListener> listeners = loadBalancerListenerDao .readByLoadBalancerNo(Long.parseLong(loadBalancerNo)); if (listeners.isEmpty() == false) { // Collections.sort(listeners, Comparators.COMPARATOR_LOAD_BALANCER_LISTENER); } for (LoadBalancerListener listener : listeners) { // loadBalancerResponse.getListeners().add(new LoadBalancerListenerResponse(listener)); } //?? LoadBalancerHealthCheck healthCheck = loadBalancerHealthCheckDao.read(Long.parseLong(loadBalancerNo)); if (healthCheck != null) { //? loadBalancerResponse.setHealthCheck(new LoadBalancerHealthCheckResponse(healthCheck)); } //??? List<ComponentInstance> componentInstances = componentInstanceDao .readByComponentNo(loadBalancer.getComponentNo()); if (componentInstances.isEmpty() == false) { // Collections.sort(componentInstances, Comparators.COMPARATOR_COMPONENT_INSTANCE); } for (ComponentInstance componentInstance : componentInstances) { // ????????? if (BooleanUtils.isNotTrue(componentInstance.getAssociate())) { ComponentInstanceStatus status = ComponentInstanceStatus.fromStatus(componentInstance.getStatus()); if (status == ComponentInstanceStatus.STOPPED) { continue; } } //?? LoadBalancerInstance loadBalancerInstance = loadBalancerInstanceDao.read(Long.parseLong(loadBalancerNo), componentInstance.getInstanceNo()); LoadBalancerInstanceResponse loadBalancerInstanceResponse; if (loadBalancerInstance == null) { //?????????? LoadBalancerInstance loadBalancerInstance2 = new LoadBalancerInstance(); loadBalancerInstance2.setInstanceNo(componentInstance.getInstanceNo()); loadBalancerInstance2.setEnabled(false); loadBalancerInstance2.setStatus(LoadBalancerInstanceStatus.STOPPED.toString()); loadBalancerInstanceResponse = new LoadBalancerInstanceResponse(loadBalancerInstance2); } else { loadBalancerInstanceResponse = new LoadBalancerInstanceResponse(loadBalancerInstance); } //? loadBalancerResponse.getInstances().add(loadBalancerInstanceResponse); } // AWS if (LB_TYPE_ELB.equals(loadBalancer.getType())) { AwsLoadBalancer awsLoadBalancer = awsLoadBalancerDao.read(loadBalancer.getLoadBalancerNo()); AwsLoadBalancerResponse awsLoadBalancerResponse = new AwsLoadBalancerResponse(awsLoadBalancer); // Subnet if (StringUtils.isNotEmpty(awsLoadBalancer.getSubnetId())) { List<Subnet> subnets = awsDescribeService.getSubnets(user.getUserNo(), loadBalancer.getPlatformNo()); List<String> cidrBlocks = new ArrayList<String>(); for (String subnetId : StringUtils.split(awsLoadBalancer.getSubnetId(), ",")) { for (Subnet subnet : subnets) { if (StringUtils.equals(subnet.getSubnetId(), subnetId)) { cidrBlocks.add(subnet.getCidrBlock()); break; } } } awsLoadBalancerResponse.setSubnets(StringUtils.join(cidrBlocks, ",")); } loadBalancerResponse.setAws(awsLoadBalancerResponse); } DescribeLoadBalancerResponse response = new DescribeLoadBalancerResponse(loadBalancerResponse); return response; }
From source file:jp.primecloud.auto.api.lb.EditLoadBalancer.java
License:Open Source License
/** * ?/* w w w. j a v a 2s . co m*/ * * @param loadBalancerNo ?? * @param componentNo ??? * @param securityGroups (?) * @param cidrBlock ?(cidrBlock??) * @param comment * @return EditLoadBalancerResponse */ @GET @Produces(MediaType.APPLICATION_JSON) public EditLoadBalancerResponse editLoadBalancer(@QueryParam(PARAM_NAME_LOAD_BALANCER_NO) String loadBalancerNo, @QueryParam(PARAM_NAME_COMPONENT_NO) String componentNo, @QueryParam(PARAM_NAME_SECURITY_GROUPS) String securityGroups, @QueryParam(PARAM_NAME_SUBNET) String cidrBlock, @QueryParam(PARAM_NAME_COMMENT) String comment, @QueryParam(PARAM_NAME_IS_INTERNAL) String isInternal) { // ? // LoadBalancerNo ApiValidate.validateLoadBalancerNo(loadBalancerNo); LoadBalancer loadBalancer = getLoadBalancer(Long.parseLong(loadBalancerNo)); // ?? User user = checkAndGetUser(loadBalancer); // ComponentNo ApiValidate.validateComponentNo(componentNo); Component component = getComponent(Long.parseLong(componentNo)); if (BooleanUtils.isFalse(component.getFarmNo().equals(loadBalancer.getFarmNo()))) { //??????? throw new AutoApplicationException("EAPI-100022", "Component", loadBalancer.getFarmNo(), PARAM_NAME_COMPONENT_NO, componentNo); } //vpcId? PlatformAws platformAws = null; String vpcId = null; if (LB_TYPE_ELB.equals(loadBalancer.getType())) { platformAws = platformAwsDao.read(loadBalancer.getPlatformNo()); if (platformAws.getVpc() && StringUtils.isNotEmpty(platformAws.getVpcId())) { vpcId = platformAws.getVpcId(); } } //SecurityGroups if (LB_TYPE_ELB.equals(loadBalancer.getType()) && platformAws.getVpc()) { //ELB+VPC?? ApiValidate.validateSecurityGroups(securityGroups); if (checkSecurityGroups(user.getUserNo(), loadBalancer.getPlatformNo(), vpcId, securityGroups) == false) { //????? throw new AutoApplicationException("EAPI-100019", loadBalancer.getPlatformNo(), securityGroups); } } //Subnet String subnetId = null; String availabilityZone = null; if (LB_TYPE_ELB.equals(loadBalancer.getType()) && platformAws.getVpc()) { //ELB+VPC?? ApiValidate.validateSubnet(cidrBlock); List<String> cidrBlocks = commaTextToList(cidrBlock); List<Subnet> subnets = getSubnet(user.getUserNo(), loadBalancer.getPlatformNo(), vpcId, cidrBlocks); if (subnets.size() != cidrBlocks.size()) { //?????? throw new AutoApplicationException("EAPI-000017", loadBalancer.getPlatformNo(), cidrBlock); } StringBuffer subnetBuffer = new StringBuffer(); StringBuffer zoneBuffer = new StringBuffer(); List<String> zones = new ArrayList<String>(); for (Subnet subnet : subnets) { if (zones.contains(subnet.getAvailabilityZone())) { //????????? throw new AutoApplicationException("EAPI-100032", cidrBlock); } zones.add(subnet.getAvailabilityZone()); subnetBuffer.append(subnetBuffer.length() > 0 ? "," + subnet.getSubnetId() : subnet.getSubnetId()); zoneBuffer.append(zoneBuffer.length() > 0 ? "," + subnet.getAvailabilityZone() : subnet.getAvailabilityZone()); } subnetId = subnetBuffer.toString(); availabilityZone = zoneBuffer.toString(); } // Comment ApiValidate.validateComment(comment); // isInternal boolean internal = false; if (LB_TYPE_ELB.equals(loadBalancer.getType()) && platformAws.getVpc()) { if (isInternal != null) { ApiValidate.validateIsStaticIp(isInternal); internal = Boolean.parseBoolean(isInternal); } else { AwsLoadBalancer awsLoadBalancer = awsLoadBalancerDao.read(Long.parseLong(loadBalancerNo)); internal = awsLoadBalancer.getInternal(); } } else { if (isInternal != null) { // ELB ?? ?VPC?????? throw new AutoApplicationException("EAPI-100040", loadBalancerNo); } } CloudstackLoadBalancer cloudstackLoadBalancer = null; if (PCCConstant.LOAD_BALANCER_CLOUDSTACK.equals(loadBalancer.getType())) { cloudstackLoadBalancer = cloudstackLoadBalancerDao.read(Long.parseLong(loadBalancerNo)); } LoadBalancerStatus status = LoadBalancerStatus.fromStatus(loadBalancer.getStatus()); if (LoadBalancerStatus.WARNING == status) { // ? ? Warning throw new AutoApplicationException("EAPI-100025", loadBalancerNo); } // ? if (LB_TYPE_ELB.equals(loadBalancer.getType())) { //EBS(Elastic Load Balance) //TODO loadBalancerService.updateAwsLoadBalancer(Long.parseLong(loadBalancerNo), loadBalancer.getLoadBalancerName(), comment, Long.parseLong(componentNo), subnetId, securityGroups, availabilityZone, internal); } else if (LB_TYPE_ULTRA_MONKEY.equals(loadBalancer.getType())) { //UltraMonkey loadBalancerService.updateUltraMonkeyLoadBalancer(Long.parseLong(loadBalancerNo), loadBalancer.getLoadBalancerName(), comment, Long.parseLong(componentNo)); } else if (LB_TYPE_CLOUDSTACK.equals(loadBalancer.getType())) { //CloudStack loadBalancerService.updateCloudstackLoadBalancer(Long.parseLong(loadBalancerNo), loadBalancer.getLoadBalancerName(), comment, Long.parseLong(componentNo), cloudstackLoadBalancer.getAlgorithm(), cloudstackLoadBalancer.getPublicport(), cloudstackLoadBalancer.getPrivateport()); } EditLoadBalancerResponse response = new EditLoadBalancerResponse(); return response; }
From source file:jp.primecloud.auto.api.platform.DescribePlatform.java
License:Open Source License
private PlatformAwsResponse getAwsDetail(Long userNo, Long platformNo) { PlatformAwsResponse response = new PlatformAwsResponse(); PlatformAws aws = platformAwsDao.read(platformNo); // ??// www .j a va2s . co m List<KeyPairInfo> keyPairs = awsDescribeService.getKeyPairs(userNo, platformNo); for (KeyPairInfo keyPair : keyPairs) { response.getKeyNames().add(keyPair.getKeyName()); } // List<SecurityGroup> securityGroups = awsDescribeService.getSecurityGroups(userNo, platformNo); for (SecurityGroup securityGroup : securityGroups) { response.getSecurityGroups().add(securityGroup.getGroupName()); } // AwsCertificate certificate = awsCertificateDao.read(userNo, platformNo); response.setDefKeyPair( StringUtils.isEmpty(certificate.getDefKeypair()) ? null : certificate.getDefKeypair()); // ? if (BooleanUtils.isTrue(aws.getVpc())) { List<Subnet> subnets = awsDescribeService.getSubnets(userNo, platformNo); for (Subnet subnet : subnets) { response.getSubnets().add(subnet.getCidrBlock()); } // ? if (StringUtils.isNotEmpty(certificate.getDefSubnet())) { for (Subnet subnet : subnets) { if (StringUtils.equals(subnet.getSubnetId(), certificate.getDefSubnet())) { response.setDefSubnet(subnet.getCidrBlock()); } } } // ELB?? if (StringUtils.isNotEmpty(certificate.getDefLbSubnet())) { for (Subnet subnet : subnets) { if (StringUtils.equals(subnet.getSubnetId(), certificate.getDefLbSubnet())) { response.setDefLbSubnet(subnet.getCidrBlock()); } } } } return response; }
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 w w. ja v a 2 s. co m 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; }