List of usage examples for com.amazonaws.services.ec2.model Filter withValues
public Filter withValues(java.util.Collection<String> values)
The filter values.
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(); }