Example usage for com.amazonaws.services.ec2.model Placement setAvailabilityZone

List of usage examples for com.amazonaws.services.ec2.model Placement setAvailabilityZone

Introduction

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

Prototype


public void setAvailabilityZone(String availabilityZone) 

Source Link

Document

The Availability Zone of the instance.

Usage

From source file:com.liferay.amazontools.AMIBuilder.java

License:Open Source License

protected void start() {
    RunInstancesRequest runInstancesRequest = new RunInstancesRequest();

    String availabilityZone = properties.getProperty("availability.zone");

    if (!isZoneAvailable(availabilityZone)) {
        throw new RuntimeException("Unavailable zone " + availabilityZone);
    }//from  w  w  w  .  j  a v a2s.c o  m

    String imageId = properties.getProperty("image.id");

    if (imageId == null) {
        imageId = getImageId(properties.getProperty("image.name"));
    }

    runInstancesRequest.setImageId(imageId);

    runInstancesRequest.setInstanceType(properties.getProperty("instance.type"));
    runInstancesRequest.setKeyName(properties.getProperty("key.name"));
    runInstancesRequest.setMaxCount(1);
    runInstancesRequest.setMinCount(1);

    Placement placement = new Placement();

    placement.setAvailabilityZone(availabilityZone);

    runInstancesRequest.setPlacement(placement);

    List<String> securityGroupsIds = new ArrayList<String>();

    securityGroupsIds.add(properties.getProperty("security.group.id"));

    runInstancesRequest.setSecurityGroupIds(securityGroupsIds);

    RunInstancesResult runInstancesResult = amazonEC2Client.runInstances(runInstancesRequest);

    Reservation reservation = runInstancesResult.getReservation();

    List<Instance> instances = reservation.getInstances();

    if (instances.isEmpty()) {
        throw new RuntimeException("Unable to create instances");
    }

    Instance instance = instances.get(0);

    _instanceId = instance.getInstanceId();
    _publicIpAddress = instance.getPublicIpAddress();

    StringBuilder sb = new StringBuilder(13);

    sb.append("{imageId=");
    sb.append(instance.getImageId());
    sb.append(", instanceId=");
    sb.append(_instanceId);
    sb.append(", instanceType=");
    sb.append(instance.getInstanceType());
    sb.append(", keyName=");
    sb.append(instance.getKeyName());
    sb.append(", reservationId=");
    sb.append(reservation.getReservationId());
    sb.append(", state=");

    InstanceState instanceState = instance.getState();

    sb.append(instanceState.getName());

    sb.append("}");

    System.out.println("Starting instance " + sb.toString());

    boolean running = false;

    for (int i = 0; i < 6; i++) {
        sleep(30);

        instance = getRunningInstance(_instanceId);

        if (instance != null) {
            _publicIpAddress = instance.getPublicIpAddress();

            running = true;

            sb = new StringBuilder(7);

            sb.append("{instanceId=");
            sb.append(_instanceId);
            sb.append(", publicIpAddress=");
            sb.append(_publicIpAddress);
            sb.append(", stat=");

            instanceState = instance.getState();

            sb.append(instanceState.getName());

            sb.append("}");

            System.out.println("Started instance " + sb.toString());

            break;
        }
    }

    if (!running) {
        throw new RuntimeException("Unable to start instance " + _instanceId);
    }
}

From source file:de.fischer.thotti.ec2.EC2Executor.java

License:Apache License

void addPlacementConstraints(RunInstancesRequest request, RegionType region) {
    Placement placement = new Placement();

    if ("default".equals(region.getAvailibleZone()) == false)
        placement.setAvailabilityZone(region.getAvailibleZone());

    if (null == placement.getAvailabilityZone())
        return;/*from w w  w  .  j a va 2  s.c  o m*/

    request.setPlacement(placement);
}

From source file:eu.optimis.interopt.provider.aws.AmazonClient.java

License:Apache License

@Override
public void deployService(String service_id, List<ServiceComponent> serviceComponents,
        XmlBeanServiceManifestDocument manifest) throws ServiceInstantiationException {

    AmazonEC2 ec2 = getAmazonEC2Client();

    log.info("Deploying service...");
    if (isDeployed(service_id)) {
        throw new ServiceInstantiationException(
                "This service is already deployed! " + "Terminate it before deploying it again.",
                new java.lang.Throwable());
    }/*from   w  w w.  j a  v  a2s  .c  om*/
    // Get the number of VMs to deploy
    int totalVms = 0;

    for (ServiceComponent sc : serviceComponents) {
        totalVms = totalVms + sc.getInstances();
    }

    // If sum < maxvms invoke createVM method as many times as needed
    if (totalVms > AmazonClient.maxvms) {
        throw new ServiceInstantiationException("Number of VMs to deploy exceeds the maximum",
                new java.lang.Throwable());
    }

    for (ServiceComponent sc : serviceComponents) {
        int numInstances = sc.getInstances();
        log.info("Number of vm instances to deploy: " + numInstances);

        String imageId = sc.getImage();
        InstanceType type = selectInstanceType(sc);

        Placement placement = new Placement();
        placement.setAvailabilityZone(availabilityZone.getZoneName());
        RunInstancesRequest req = new RunInstancesRequest(imageId, numInstances, numInstances);
        ArrayList<String> securityGroups = new ArrayList<String>();
        securityGroups.add(SECURITY_GROUP);
        req.setSecurityGroupIds(securityGroups);
        req.setInstanceType(type);
        req.setPlacement(placement);
        //req.setMonitoring(true);
        try {
            RunInstancesResult res = ec2.runInstances(req);
            List<Instance> instances = res.getReservation().getInstances();
            log.info("Creating Tags...");
            for (Instance inst : instances) {
                Tag tag = new Tag("serviceid", service_id);
                List<Tag> tags = new ArrayList<Tag>();
                tags.add(tag);
                List<String> resources = new ArrayList<String>();
                resources.add(inst.getInstanceId());
                CreateTagsRequest req2 = new CreateTagsRequest(resources, tags);
                ec2.createTags(req2);
            }
        } catch (AmazonServiceException e) {
            log.error("Service deployment has failed: ");
            log.error(printServiceException(e));
            throw new ServiceInstantiationException("Service deployment has failed: " + e.getMessage(),
                    new java.lang.Throwable());
        }
        log.info("Service Deployed successfully!");
    }
}

From source file:jp.aws.test.ec2.EC2Instance.java

License:Apache License

/**
 * EC2//from   w  ww.j  a va 2s. com
 *
 * @param imageId
 * @param min
 * @param max
 * @param instanceType
 * @param keyPairName
 * @param availabilityZone
 * @param securityGroups
 * @return Vector<Instance>
 * @throws Exception
 */
public Vector<Instance> launchEC2Instances(String imageId, int min, int max, String instanceType,
        String keyPairName, String availabilityZone, Collection<String> securityGroups, String additionalInfo,
        String userData) throws Exception {

    Vector<Instance> newInstances = new Vector<Instance>();

    if (min <= 0 || max <= 0 || min > max) {
        return newInstances;
    }

    RunInstancesRequest request = new RunInstancesRequest();
    request.setImageId(imageId);
    request.setInstanceType(instanceType);
    request.setMinCount(min);
    request.setMaxCount(max);
    Placement p = new Placement();
    if (availabilityZone.toLowerCase().equals("any"))
        availabilityZone = ""; // ??????
    p.setAvailabilityZone(availabilityZone);
    request.setPlacement(p);
    request.setSecurityGroups(securityGroups);
    request.setKeyName(keyPairName);// assign Keypair name for this request
    request.setUserData(userData);
    request.setAdditionalInfo(additionalInfo);

    // 
    RunInstancesResult runInstancesRes = clientManager.ec2().runInstances(request);
    String reservationId = runInstancesRes.getReservation().getReservationId();

    List<Instance> instances = runInstancesRes.getReservation().getInstances();
    if (runInstancesRes != null) {
        for (Instance instance : instances) {
            // EC2InstanceObject newInstanceObject = new
            // EC2InstanceObject();
            // newInstanceObject.setDnsName(i.getPublicDnsName());
            // newInstanceObject.setInstanceId(i.getInstanceId());
            // instances.add(newInstanceObject);
            // newInstances.add(newInstanceObject);
            newInstances.add(instance);
        }
    }

    return newInstances;
}

From source file:jp.primecloud.auto.aws.typica.converter.InstanceConverter.java

License:Open Source License

@Override
protected Instance convertObject(com.xerox.amazonws.ec2.ReservationDescription.Instance from) {
    Instance to = new Instance();

    to.setInstanceId(from.getInstanceId());
    to.setImageId(from.getImageId());/*from w  w  w. j ava2 s .  c om*/

    InstanceState state = new InstanceState();
    state.setCode(from.getStateCode());
    state.setName(from.getState());
    to.setState(state);

    to.setPrivateDnsName(from.getPrivateDnsName());
    to.setPublicDnsName(from.getDnsName());
    to.setStateTransitionReason(from.getReason());
    to.setKeyName(from.getKeyName());
    to.setAmiLaunchIndex(null);
    to.setProductCodes(null);
    to.setInstanceType(from.getInstanceType().name());
    to.setLaunchTime(from.getLaunchTime().getTime());

    Placement placement = new Placement();
    placement.setAvailabilityZone(from.getAvailabilityZone());
    placement.setGroupName(null); // 
    to.setPlacement(placement);

    to.setKernelId(from.getKernelId());
    to.setRamdiskId(from.getRamdiskId());
    to.setPlatform(from.getPlatform());

    Monitoring monitoring = new Monitoring();
    monitoring.setState(Boolean.toString(from.isMonitoring()));
    to.setMonitoring(monitoring);

    // 
    to.setSubnetId(null);
    to.setVpcId(null);
    to.setPrivateIpAddress(null);
    to.setPublicIpAddress(null);
    to.setStateReason(null);
    //to.setArchitecture(null);
    to.setRootDeviceName(null);
    to.setRootDeviceName(null);
    to.setBlockDeviceMappings(null);
    //to.setVirtualizationType(null);
    //to.setInstanceLifecycle(null);
    to.setSpotInstanceRequestId(null);
    //to.setLicense(null);
    to.setClientToken(null);
    to.setTags(null);

    return to;
}

From source file:n3phele.factory.ec2.VirtualServerResource.java

License:Open Source License

private int addSpotInstance(List<VirtualServer> items) {

    RequestSpotInstancesRequest sir = new RequestSpotInstancesRequest();

    sir.setInstanceCount(items.size());//from  w  w w.j av  a2  s  . c om
    HashMap<String, String> map = items.get(0).getParametersMap();
    Injector.inject(sir, map);
    LaunchSpecification launchSpec = new LaunchSpecification();
    Injector.inject(launchSpec, map);
    if (map.containsKey("availabilityZone") || map.containsKey("groupName")) {
        Placement p = new Placement();
        if (map.containsKey("availabilityZone")) {
            String availabilityZone = map.get("availabilityZone");
            if (availabilityZone != null && !availabilityZone.equals("")) {
                p.setAvailabilityZone(map.get("availabilityZone"));
                launchSpec.setPlacement(p);
            }
        }
        if (map.containsKey("groupName")) {
            String groupName = map.get("groupName");
            if (groupName != null && !groupName.equals("")) {
                p.setGroupName(map.get("groupName"));
                launchSpec.setPlacement(p);
            }
        }

    }
    sir.setLaunchSpecification(launchSpec);

    AmazonEC2Client client = getEC2Client(items.get(0).getAccessKey(), items.get(0).getEncryptedKey(),
            items.get(0).getLocation());
    RequestSpotInstancesResult result = null;
    try {
        result = client.requestSpotInstances(sir);
    } catch (AmazonServiceException e) {
        log.log(Level.WARNING, "EC2 error " + e.getErrorCode(), e);
        throw new WebApplicationException(e, Status.BAD_REQUEST);
    }
    int i = 0;
    for (SpotInstanceRequest spot : result.getSpotInstanceRequests()) {
        log.warning("Spot Instance[" + i + "] id " + spot.getSpotInstanceRequestId());
        items.get(i).setSpotId(spot.getSpotInstanceRequestId());
        i++;
    }

    return result.getSpotInstanceRequests().size();
}

From source file:n3phele.factory.ec2.VirtualServerResource.java

License:Open Source License

private int addOnDemandInstance(List<VirtualServer> items) {

    RunInstancesRequest vs = new RunInstancesRequest();

    vs.setMinCount(items.size());/*from ww  w.  jav  a 2 s  .c  o m*/
    vs.setMaxCount(items.size());
    String token = items.get(0).getIdempotencyKey();

    if (token != null && token.length() > 64) {
        token = token.substring(token.length() - 64);
    }
    vs.setClientToken(token);
    HashMap<String, String> map = items.get(0).getParametersMap();
    Injector.inject(vs, map);
    if (map.containsKey("availabilityZone") || map.containsKey("groupName")) {
        Placement p = new Placement();
        if (map.containsKey("availabilityZone")) {
            String availabilityZone = map.get("availabilityZone");
            if (availabilityZone != null && !availabilityZone.equals("")) {
                p.setAvailabilityZone(map.get("availabilityZone"));
                vs.setPlacement(p);
            }
        }
        if (map.containsKey("groupName")) {
            String groupName = map.get("groupName");
            if (groupName != null && !groupName.equals("")) {
                p.setGroupName(map.get("groupName"));
                vs.setPlacement(p);
            }
        }

    }
    if (items.size() == 1 && createWithZombie(items.get(0))) {
        return 1;
    }
    AmazonEC2Client client = getEC2Client(items.get(0).getAccessKey(), items.get(0).getEncryptedKey(),
            items.get(0).getLocation());
    RunInstancesResult result = null;
    try {
        result = client.runInstances(vs);
    } catch (AmazonServiceException e) {
        log.log(Level.WARNING, "EC2 error " + e.getErrorCode(), e);
        throw new WebApplicationException(e, Status.BAD_REQUEST);
    } catch (AmazonClientException e) {
        log.log(Level.SEVERE, "EC2 AmazonClientException", e);
        log.severe("Check for orphaned VMs");
        try {
            result = client.runInstances(vs);
        } catch (Exception e2) {
            log.log(Level.SEVERE, "EC2 AmazonClientException", e2);
            throw new WebApplicationException(e, Status.BAD_REQUEST);
        }
    }
    int i = 0;
    for (Instance ec2Instance : result.getReservation().getInstances()) {
        log.info("Create VM[" + i + "] has Instance id " + ec2Instance.getInstanceId());
        items.get(i).setInstanceId(ec2Instance.getInstanceId());
        i++;
    }

    return result.getReservation().getInstances().size();
}

From source file:org.occiware.clouddriver.instance.InstanceOperations.java

License:Apache License

/**
 * Create one ec2 instance with data instance object.
 * @param instance/*from   ww w.  j  a v  a  2s.  c  o m*/
 * @throws InstanceOperationException
 */
public InstanceDO createInstance(InstanceDO instance) throws InstanceOperationException {

    // Check instance data object before creation.
    checkInstanceObjCreation(instance);
    boolean hasPlacement = false;
    String keyPairName = instance.getKeyPairName();
    String imageId = instance.getImage().getImageId();
    String instanceType = instance.getInstanceType();
    Boolean monitoring = instance.isMonitoring();
    String region = instance.getRegionId();
    String zone = instance.getZoneId();
    List<GroupIdentifierDO> securityGroups = instance.getSecurityGroups();
    String name = instance.getName();
    String userData = instance.getUserData();

    RunInstancesRequest rRequest = new RunInstancesRequest(imageId, 1, 1);

    rRequest.setInstanceType(instanceType);
    rRequest.setMonitoring(monitoring);
    if (keyPairName != null) {
        rRequest.setKeyName(keyPairName);
    }
    if (userData != null) {
        rRequest.setUserData(userData);
    }

    Placement placement = new Placement();
    PlacementDO placementDO = instance.getPlacement();

    if (placementDO != null && placementDO.getAvailabilityZone() != null) {
        placement.setAvailabilityZone(placementDO.getAvailabilityZone());
        hasPlacement = true;
    } else {
        if (zone != null) {
            if (!zone.trim().isEmpty()) {
                placement.setAvailabilityZone(region + zone);
                hasPlacement = true;
            }
        }
    }
    if (placementDO != null) {
        String groupName = placementDO.getGroupName();
        String tenancy = placementDO.getTenancy();
        if (groupName != null) {
            placement.setGroupName(groupName);
            hasPlacement = true;
        }
        if (tenancy != null) {
            placement.setTenancy(tenancy);
            hasPlacement = true;
        }
    }
    if (hasPlacement) {
        rRequest.setPlacement(placement);
    }

    if (securityGroups != null && !securityGroups.isEmpty()) {
        List<String> securityGroupNames = new ArrayList<>();
        for (GroupIdentifierDO secGroup : securityGroups) {
            securityGroupNames.add(secGroup.getGroupName());
        }

        rRequest.setSecurityGroups(securityGroupNames);
    }
    RunInstancesResult runInstancesResult;
    List<Instance> instances;
    try {
        runInstancesResult = ec2Client.getClientInstance().runInstances(rRequest);
        instances = runInstancesResult.getReservation().getInstances();

    } catch (AmazonServiceException ase) {
        logger.error("Exception thrown from aws : " + ase.getErrorCode() + " --> " + ase.getErrorMessage());
        throw new InstanceOperationException(ase);
    } catch (AmazonClientException ace) {
        logger.error("Exception thrown from aws : " + ace.getMessage());
        throw new InstanceOperationException(ace);
    }
    InstanceDO instanceDOToReturn = null;
    if (instances != null && !instances.isEmpty()) {

        instanceDOToReturn = InstanceDataFactory.buildInstanceDataFromModel(instances.get(0));
        if (instanceDOToReturn != null && name != null && instanceDOToReturn.getInstanceId() != null) {
            TagsOperation tagOperation = new TagsOperation(ec2Client);
            tagOperation.createTag(instanceDOToReturn.getInstanceId(), "Name", name);
        }

    }

    return instanceDOToReturn;
}

From source file:org.openinfinity.cloud.service.administrator.EC2Wrapper.java

License:Apache License

public Reservation createInstance(String amiId, Integer amount, String keyName, String zone,
        String instanceType, List<String> securityGroups) {
    Reservation reservation = null;//w  w w. j  a  va 2  s . c  o m
    try {

        Integer minimumAmount = amount;
        Integer maximumAmount = amount;
        if (amiId == null) {
            return null;
        }
        String myAmiId = null;

        myAmiId = amiId;

        RunInstancesRequest runInstancesRequest = new RunInstancesRequest(myAmiId, minimumAmount,
                maximumAmount);
        runInstancesRequest.setKeyName(keyName);
        Placement placement = new Placement();
        placement.setAvailabilityZone(zone);
        runInstancesRequest.setPlacement(placement);
        runInstancesRequest.setSecurityGroups(securityGroups);
        if (instanceType != null) {
            runInstancesRequest.setInstanceType(instanceType);
        }
        RunInstancesResult result = ec2.runInstances(runInstancesRequest);
        reservation = result.getReservation();

    } catch (AmazonServiceException ase) {
        String message = ase.getMessage();
        LOG.error("Caught Exception: " + message);
        LOG.error("Response Status Code: " + ase.getStatusCode());
        LOG.error("Error Code: " + ase.getErrorCode());
        LOG.error("Request ID: " + ase.getRequestId());
        ExceptionUtil.throwSystemException(message, ase);
    } catch (AmazonClientException e) {

        e.printStackTrace();
        ExceptionUtil.throwSystemException(e.getMessage(), e);
    }

    return reservation;
}