Example usage for com.amazonaws.services.ec2.model Subnet getSubnetId

List of usage examples for com.amazonaws.services.ec2.model Subnet getSubnetId

Introduction

In this page you can find the example usage for com.amazonaws.services.ec2.model Subnet getSubnetId.

Prototype


public String getSubnetId() 

Source Link

Document

The ID of the subnet.

Usage

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;
}