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

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

Introduction

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

Prototype


public String getAvailabilityZone() 

Source Link

Document

The Availability Zone of the subnet.

Usage

From source file:com.cloudera.director.aws.ec2.ebs.EBSAllocator.java

License:Apache License

/**
 * Get the availability zone from a Subnet ID.
 *
 * @param subnetId the id of the subnet/*from  www .j  a v a2 s .c  om*/
 * @return the availability zone of the subnet
 */
private String getAvailabilityZoneFromSubnetId(String subnetId) {
    DescribeSubnetsRequest request = new DescribeSubnetsRequest().withSubnetIds(subnetId);
    DescribeSubnetsResult result = client.describeSubnets(request);
    Subnet subnet = Iterables.getOnlyElement(result.getSubnets());
    return subnet.getAvailabilityZone();
}

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.pinterest.arcee.handler.SpecsHandler.java

License:Apache License

public List<SpecBean> getSubnets() {
    DescribeSubnetsRequest request = new DescribeSubnetsRequest();
    request.setFilters(//  ww w .  j  a  va 2  s.  com
            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:com.urbancode.terraform.tasks.aws.SubnetTask.java

License:Apache License

/**
 * @return false if ID is null, or true if it is non-null
 *//* w  ww  .j  a  v  a 2  s  .c o  m*/
public boolean verify() {
    // will return false if the id is null
    boolean result = false;
    if (subnetId != null) {
        if (ec2Client == null) {
            ec2Client = context.fetchEC2Client();
        }

        List<String> id = new ArrayList<String>();
        id.add(subnetId);

        List<Subnet> subnets = helper.getSubnets(id, ec2Client);
        if (subnets != null && !subnets.isEmpty()) {
            for (Subnet subnet : subnets) {
                if (subnet.getAvailabilityZone().equalsIgnoreCase(zone)) {
                    if (subnet.getCidrBlock().equals(cidr)) {
                        result = true;
                    }
                }
            }
        }
    }
    return result;
}

From source file:jp.primecloud.auto.api.instance.EditInstanceAws.java

License:Open Source License

@GET
@Produces(MediaType.APPLICATION_JSON)/*from  ww w .ja va2  s.c  om*/
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.EditLoadBalancer.java

License:Open Source License

/**
 * ?//w  w  w .  jav  a  2  s. 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.process.aws.AwsLoadBalancerProcess.java

License:Open Source License

public String createLoadBalancer(AwsProcessClient awsProcessClient, Long loadBalancerNo) {
    AwsLoadBalancer awsLoadBalancer = awsLoadBalancerDao.read(loadBalancerNo);

    // ??//from w  w  w  .  j  a va2  s.c  om
    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.service.impl.LoadBalancerServiceImpl.java

License:Open Source License

/**
 * {@inheritDoc}//from   w  w w .ja  va 2  s . c  o  m
 */
@Override
public Long createAwsLoadBalancer(Long farmNo, String loadBalancerName, String comment, Long platformNo,
        Long componentNo, boolean internal) {
    // ?
    if (farmNo == null) {
        throw new AutoApplicationException("ECOMMON-000003", "farmNo");
    }
    if (loadBalancerName == null || loadBalancerName.length() == 0) {
        throw new AutoApplicationException("ECOMMON-000003", "loadBalancerName");
    }
    if (platformNo == null) {
        throw new AutoApplicationException("ECOMMON-000003", "platformNo");
    }
    if (componentNo == null) {
        throw new AutoApplicationException("ECOMMON-000003", "componentNo");
    }

    // ??
    if (!Pattern.matches("^[0-9a-z]|[0-9a-z][0-9a-z-]*[0-9a-z]$", loadBalancerName)) {
        throw new AutoApplicationException("ECOMMON-000012", "loadBalancerName");
    }

    // TODO: ??

    // ??
    Platform platform = platformDao.read(platformNo);
    if (PCCConstant.PLATFORM_TYPE_AWS.equals(platform.getPlatformType()) == false) {
        throw new AutoApplicationException("ESERVICE-000606", platformNo);
    }

    // ??????
    LoadBalancer checkLoadBalancer = loadBalancerDao.readByFarmNoAndLoadBalancerName(farmNo, loadBalancerName);
    if (checkLoadBalancer != null) {
        // ????????
        throw new AutoApplicationException("ESERVICE-000601", loadBalancerName);
    }

    // ????
    Instance checkInstance = instanceDao.readByFarmNoAndInstanceName(farmNo, loadBalancerName);
    if (checkInstance != null) {
        // ???????
        throw new AutoApplicationException("ESERVICE-000626", loadBalancerName);
    }

    // ??
    Farm farm = farmDao.read(farmNo);
    if (farm == null) {
        throw new AutoApplicationException("ESERVICE-000602", farmNo);
    }

    // ????
    long countComponent = componentDao.countByComponentNo(componentNo);
    if (countComponent == 0) {
        // ???????
        throw new AutoApplicationException("ESERVICE-000607", componentNo);
    }

    //AWS???
    AwsCertificate awsCertificate = awsCertificateDao.read(farm.getUserNo(), platformNo);

    //?()??
    PlatformAws platformAws = platformAwsDao.read(platformNo);
    String subnetId = null;
    String availabilityZone = null;
    if (platformAws.getVpc() && StringUtils.isNotEmpty(awsCertificate.getDefLbSubnet())) {
        //VPC ?? ?(?)???
        List<String> defLbSubnets = new ArrayList<String>();
        for (String lbSubnet : awsCertificate.getDefLbSubnet().split(",")) {
            defLbSubnets.add(lbSubnet.trim());
        }
        List<String> zones = new ArrayList<String>();
        StringBuffer subnetBuffer = new StringBuffer();
        StringBuffer zoneBuffer = new StringBuffer();
        List<Subnet> subnets = awsDescribeService.getSubnets(farm.getUserNo(), platformNo);
        for (Subnet subnet : subnets) {
            if (defLbSubnets.contains(subnet.getSubnetId())
                    && zones.contains(subnet.getAvailabilityZone()) == false) {
                subnetBuffer
                        .append(subnetBuffer.length() > 0 ? "," + subnet.getSubnetId() : subnet.getSubnetId());
                zoneBuffer.append(zoneBuffer.length() > 0 ? "," + subnet.getAvailabilityZone()
                        : subnet.getAvailabilityZone());
                zones.add(subnet.getAvailabilityZone());
            }
        }
        //??
        subnetId = subnetBuffer.toString();
        availabilityZone = zoneBuffer.toString();
    }

    //??
    String groupName = null;
    if (platformAws.getVpc()) {
        //VPC??
        List<SecurityGroup> securityGroups = awsDescribeService.getSecurityGroups(farm.getUserNo(), platformNo);
        for (SecurityGroup securityGroup : securityGroups) {
            if ("default".equals(securityGroup.getGroupName())) {
                //default?????default?
                groupName = securityGroup.getGroupName();
                break;
            }
        }
        if (groupName == null && securityGroups.size() > 0) {
            //default????1
            groupName = securityGroups.get(0).getGroupName();
        }
    }

    // ???
    LoadBalancer loadBalancer = new LoadBalancer();
    loadBalancer.setFarmNo(farmNo);
    loadBalancer.setLoadBalancerName(loadBalancerName);
    loadBalancer.setComment(comment);
    loadBalancer.setFqdn(loadBalancerName + "." + farm.getDomainName());
    loadBalancer.setPlatformNo(platformNo);
    loadBalancer.setType(PCCConstant.LOAD_BALANCER_ELB);
    loadBalancer.setEnabled(false);
    loadBalancer.setStatus(LoadBalancerStatus.STOPPED.toString());
    loadBalancer.setComponentNo(componentNo);
    loadBalancerDao.create(loadBalancer);

    Long loadBalancerNo = loadBalancer.getLoadBalancerNo();

    // AWS???
    AwsLoadBalancer awsLoadBalancer = new AwsLoadBalancer();
    awsLoadBalancer.setLoadBalancerNo(loadBalancerNo);
    awsLoadBalancer.setName(loadBalancerName + "-" + loadBalancerNo);
    awsLoadBalancer.setDnsName(null);
    awsLoadBalancer.setSubnetId(subnetId);
    awsLoadBalancer.setSecurityGroups(groupName);
    awsLoadBalancer.setAvailabilityZone(availabilityZone);
    awsLoadBalancer.setInternal(internal);
    awsLoadBalancerDao.create(awsLoadBalancer);

    // ???
    createDefaultHealthCheck(loadBalancer);

    // ??
    registerInstances(loadBalancer);

    // Zabbix??
    Boolean useZabbix = BooleanUtils.toBooleanObject(Config.getProperty("zabbix.useZabbix"));
    if (BooleanUtils.isTrue(useZabbix)) {
        ZabbixLoadBalancer zabbixLoadBalancer = new ZabbixLoadBalancer();
        zabbixLoadBalancer.setLoadBalancerNo(loadBalancerNo);
        zabbixLoadBalancerDao.create(zabbixLoadBalancer);
    }

    // 
    eventLogger.log(EventLogLevel.INFO, farmNo, farm.getFarmName(), null, null, null, null,
            "LoadBalancerCreate", null, null,
            new Object[] { loadBalancerName, platform.getPlatformName(), PCCConstant.LOAD_BALANCER_ELB });

    // ??
    processHook.execute("post-create-loadbalancer", farm.getUserNo(), farm.getFarmNo(), loadBalancerNo);

    return loadBalancerNo;
}

From source file:jp.primecloud.auto.ui.WinLoadBalancerEdit.java

License:Open Source License

@SuppressWarnings("unchecked")
private void okButtonClick(ClickEvent event) {
    // ?/* w w  w. j  ava 2 s  .co m*/
    // 
    basicTab.commentField.validate();
    if (PCCConstant.LOAD_BALANCER_ELB.equals(loadBalancer.getLoadBalancer().getType())) {
        if (BooleanUtils.isTrue(platform.getPlatformAws().getVpc())) {
            basicTab.subnetSelect.validate();
            basicTab.securityGroupSelect.validate();
        }
    }

    // ?
    healthCheckTab.checkProtocolSelect.validate();
    healthCheckTab.checkPortField.validate();
    if ("HTTP".equals(healthCheckTab.checkProtocolSelect.getValue())) {
        healthCheckTab.checkPathField.validate();
    }
    healthCheckTab.checkTimeoutField.validate();
    healthCheckTab.checkIntervalField.validate();
    healthCheckTab.unhealthyThresholdField.validate();
    healthCheckTab.healthyThresholdField.validate();

    // ???
    if (PCCConstant.LOAD_BALANCER_ELB.equals(loadBalancer.getLoadBalancer().getType())) {
        if (BooleanUtils.isTrue(platform.getPlatformAws().getVpc())) {
            // ??????????
            Collection<String> selectedSubnetIds = (Collection<String>) basicTab.subnetSelect.getValue();
            List<String> zones = new ArrayList<String>();
            for (String subnetId : selectedSubnetIds) {
                Subnet subnet = findSubnet(subnetId);
                if (zones.contains(subnet.getAvailabilityZone())) {
                    // ?????????
                    throw new AutoApplicationException("IUI-000110");
                }
                zones.add(subnet.getAvailabilityZone());
            }
        }
    }

    // 
    OperationLogger.writeLoadBalancer("LOAD_BALANCER", "Edit Load_Balancer", loadBalancerNo, null);

    LoadBalancerService loadBalancerService = BeanContext.getBean(LoadBalancerService.class);

    // ?
    String comment = (String) basicTab.commentField.getValue();
    Long componentNo = (Long) basicTab.serviceSelect.getValue();

    // AWS?
    if (PCCConstant.LOAD_BALANCER_ELB.equals(loadBalancer.getLoadBalancer().getType())) {
        String subnetId = null;
        String zone = null;
        String securityGroup = null;
        boolean internal = false;

        if (BooleanUtils.isTrue(platform.getPlatformAws().getVpc())) {
            securityGroup = (String) basicTab.securityGroupSelect.getValue();
            internal = (Boolean) basicTab.internalSelect.getValue();

            Collection<String> selectedSubnetIds = (Collection<String>) basicTab.subnetSelect.getValue();
            for (String selectedSubnetId : selectedSubnetIds) {
                subnetId = (subnetId == null) ? selectedSubnetId : (subnetId + "," + selectedSubnetId);

                Subnet subnet = findSubnet(selectedSubnetId);
                zone = (zone == null) ? subnet.getAvailabilityZone()
                        : (zone + "," + subnet.getAvailabilityZone());
            }
        }

        String loadBalancerName = loadBalancer.getLoadBalancer().getLoadBalancerName();
        loadBalancerService.updateAwsLoadBalancer(loadBalancerNo, loadBalancerName, comment, componentNo,
                subnetId, securityGroup, zone, internal);
    }
    // UltraMonkey?
    else if (PCCConstant.LOAD_BALANCER_ULTRAMONKEY.equals(loadBalancer.getLoadBalancer().getType())) {
        String loadBalancerName = loadBalancer.getLoadBalancer().getLoadBalancerName();
        loadBalancerService.updateUltraMonkeyLoadBalancer(loadBalancerNo, loadBalancerName, comment,
                componentNo);
    }

    // ??
    String checkProtocol = (String) healthCheckTab.checkProtocolSelect.getValue();
    Integer checkPort = Integer.valueOf((String) healthCheckTab.checkPortField.getValue());
    String checkPath = (String) healthCheckTab.checkPathField.getValue();
    Integer checkTimeout = Integer.valueOf((String) healthCheckTab.checkTimeoutField.getValue());
    Integer checkInterval = Integer.valueOf((String) healthCheckTab.checkIntervalField.getValue());
    Integer healthyThreshold = Integer.valueOf((String) healthCheckTab.healthyThresholdField.getValue());
    Integer unhealthyThreshold = Integer.valueOf((String) healthCheckTab.unhealthyThresholdField.getValue());

    loadBalancerService.configureHealthCheck(loadBalancerNo, checkProtocol, checkPort, checkPath, checkTimeout,
            checkInterval, healthyThreshold, unhealthyThreshold);

    // ??
    close();
}

From source file:jp.primecloud.auto.ui.WinServerEdit.java

License:Open Source License

private void updateAwsInstance() {
    // ?/*from w w  w. j a v a 2 s . com*/
    String comment = (String) basicTab.commentField.getValue();
    String keyName = (String) awsDetailTab.keySelect.getValue();
    String groupName = (String) awsDetailTab.grpSelect.getValue();
    String serverSize = (String) awsDetailTab.sizeSelect.getValue();
    String zoneName = null;
    String subnetId = null;
    String privateIp = null;
    String rootSize = (String) awsDetailTab.rootSizeField.getValue();
    Long addressNo = (awsDetailTab.elasticIpSelect == null) ? null
            : (Long) awsDetailTab.elasticIpSelect.getValue();

    Subnet subnet = null;
    if (BooleanUtils.isTrue(platform.getPlatformAws().getVpc())) {
        subnetId = (String) awsDetailTab.subnetSelect.getValue();
        subnet = awsDetailTab.findSubnet(subnetId);
        zoneName = subnet.getAvailabilityZone();
        privateIp = (String) awsDetailTab.privateIpField.getValue();
    } else {
        zoneName = (String) awsDetailTab.zoneSelect.getValue();
    }

    if (awsDetailTab.NULL_ADDRESS.equals(addressNo)) {
        addressNo = null;
    }

    // ?
    basicTab.commentField.validate();
    awsDetailTab.sizeSelect.validate();
    awsDetailTab.keySelect.validate();
    awsDetailTab.grpSelect.validate();
    if (BooleanUtils.isTrue(platform.getPlatformAws().getVpc())) {
        awsDetailTab.subnetSelect.validate();
        awsDetailTab.privateIpField.validate();
    } else {
        awsDetailTab.zoneSelect.validate();
    }
    awsDetailTab.rootSizeField.validate();
    if (awsDetailTab.elasticIpSelect != null) {
        awsDetailTab.elasticIpSelect.validate();
    }

    // IP????????
    if (BooleanUtils.isTrue(platform.getPlatformAws().getVpc()) && StringUtils.isNotEmpty(privateIp)) {
        long privateIpAddress = IpAddressUtils.parse(privateIp);
        long networkAddress = IpAddressUtils.getNetworkAddress(subnet.getCidrBlock());
        long broadcastAddress = IpAddressUtils.getBroadcastAddress(subnet.getCidrBlock());

        // AWS?????4???1??IP???????????
        if (privateIpAddress < networkAddress + 4 || broadcastAddress - 1 < privateIpAddress) {
            throw new AutoApplicationException("IUI-000109", IpAddressUtils.format(networkAddress + 4),
                    IpAddressUtils.format(broadcastAddress - 1));
        }
    }

    // ????ElasticIP??????
    if (addressNo != null) {
        AwsAddress awsAddress = awsDetailTab.findAwsAddress(addressNo);
        if (awsAddress.getInstanceNo() != null) {
            if (instance.getAwsAddress() == null
                    || !instance.getAwsAddress().getAddressNo().equals(awsAddress.getAddressNo())) {
                throw new AutoApplicationException("IUI-000064");
            }
        }
    }

    Integer rootSize2 = null;
    try {
        rootSize2 = Integer.valueOf(rootSize);
    } catch (Exception ignore) {
    }

    // 
    OperationLogger.writeInstance("SERVER", "Edit Server", instanceNo, null);

    // AWS?
    InstanceService instanceService = BeanContext.getBean(InstanceService.class);
    instanceService.updateAwsInstance(instanceNo, instance.getInstance().getInstanceName(), comment, keyName,
            serverSize, groupName, zoneName, addressNo, subnetId, rootSize2, privateIp);

    // ???
    if (basicTab.componentNos != null && basicTab.attachService) {
        instanceService.associateComponents(instanceNo, basicTab.componentNos);
    }

    // ??
    close();
}