Example usage for com.amazonaws.services.ec2.model Filter withValues

List of usage examples for com.amazonaws.services.ec2.model Filter withValues

Introduction

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

Prototype


public Filter withValues(java.util.Collection<String> values) 

Source Link

Document

The filter values.

Usage

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

License:Open Source License

protected void deleteAvailableVolumes() {
    DescribeVolumesRequest describeVolumesRequest = new DescribeVolumesRequest();

    Filter filter = new Filter();

    filter.setName("status");

    filter.withValues("available");

    describeVolumesRequest.withFilters(filter);

    DescribeVolumesResult describeVolumesResult = amazonEC2Client.describeVolumes(describeVolumesRequest);

    List<Volume> volumes = describeVolumesResult.getVolumes();

    for (int i = 0; i < volumes.size(); i++) {
        DeleteVolumeRequest deleteVolumeRequest = new DeleteVolumeRequest();

        Volume volume = volumes.get(i);/*from  ww  w  .ja va 2  s .  c o m*/

        deleteVolumeRequest.setVolumeId(volume.getVolumeId());

        amazonEC2Client.deleteVolume(deleteVolumeRequest);
    }
}

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

License:Open Source License

/**
 * Assimilating a VM is the process of looking for an instance in the Amazon cloud,
 * getting it's details and storing it in the factory database if it's not there yet.
 * This is used when instances are created from outside of the factory (e.g. using Juju)
 * and the factory needs to know about their existence to use them in other operations.
 * @param request//  w ww  .  ja  va2s .c om
 *          information about the instance to be looked up in the cloud
 * @return
 *          response code informing success or failure in the search and assimilation
 */
@POST
@Produces("application/json")
@RolesAllowed("authenticated")
@Path("virtualServer/assimilate")
public Response assimilate(ExecutionFactoryAssimilateRequest request) {
    final String TAG = "Assimilate VM: ";

    logger.info(TAG + "EC2 Assimilating VM Begin");
    logger.info(TAG + "Looking for IP " + request.ipaddress + " on " + request.location);

    // Search for instance with the following ip address
    Filter ipFilter = new Filter();
    ipFilter.setName("ip-address");
    ipFilter.withValues(request.ipaddress);

    // This request searches in running instances for one instance that mathes the filters
    DescribeInstancesRequest amazonRequest = new DescribeInstancesRequest();
    amazonRequest.withFilters(ipFilter);

    // Authenticate an Amazon connection
    AmazonEC2Client amazonClient = getEC2Client(request.accessKey, request.encryptedSecret, request.location);

    // Execute request
    DescribeInstancesResult amazonResponse = amazonClient.describeInstances(amazonRequest);

    // Reservations are "sessions" that start a list of instances
    if (amazonResponse.getReservations().size() == 0) {
        logger.warning(TAG + "IP not found on Amazon cloud");
        return Response.status(Response.Status.NOT_FOUND).build();
    }
    logger.info(TAG + "IP found on Amazon cloud, looking for instance id on Amazon factory");

    // We're expecting one instance with the requested IP, getting index 0 should cover this
    Reservation foundReservation = amazonResponse.getReservations().get(0);
    List<Instance> reservationInstances = foundReservation.getInstances();
    Instance foundInstance = reservationInstances.get(0);
    String instanceId = foundInstance.getInstanceId();

    List<VirtualServer> listVS = getByInstanceId(instanceId);
    if (listVS.size() > 0) {
        logger.warning(TAG + "Instance already exists on Amazon factory");
        return Response.status(Response.Status.CONFLICT).build();
    }
    logger.info(TAG + "Instance not found on Amazon factory, adding VM to factory");

    // Required data for VM creation below
    ArrayList<NameValue> paramsVM = new ArrayList<NameValue>();

    NameValue paramLocation = new NameValue();
    NameValue paramFlavor = new NameValue();

    paramLocation.setKey("locationId");
    paramLocation.setValue(request.locationId);
    paramsVM.add(paramLocation);

    paramFlavor.setKey("instanceType");
    paramFlavor.setValue(foundInstance.getInstanceType());
    paramsVM.add(paramFlavor);

    // Instance name is in tag key "Name", assuming first tag is the name
    List<Tag> instanceTags = foundInstance.getTags();
    String instanceName = null;
    if (instanceTags.size() == 0) {
        instanceName = instanceId;
    } else {
        Tag tagName = instanceTags.get(0);
        instanceName = tagName.getValue();
    }

    VirtualServer virtualServer = new VirtualServer(instanceName, request.description, request.location,
            paramsVM, request.notification, request.accessKey, request.encryptedSecret, request.owner,
            request.idempotencyKey);
    virtualServer.setCreated(foundInstance.getLaunchTime());
    virtualServer.setInstanceId(instanceId);

    add(virtualServer);

    logger.info(TAG + "Succesfully added VM to factory");

    List<URI> virtualMachinesRefs = new ArrayList<URI>(1);
    virtualMachinesRefs.add(virtualServer.getUri());
    return Response.created(virtualServer.getUri()).entity(new CreateVirtualServerResponse(virtualMachinesRefs))
            .build();
}