Search in sources :

Example 1 with DescribeVolumesRequest

use of com.amazonaws.services.ec2.model.DescribeVolumesRequest in project photon-model by vmware.

the class AWSEBSStorageEnumerationAdapterService method createAWSRequestAndAsyncHandler.

/**
 * Initializes and saves a reference to the request object that is sent to AWS to get a page of
 * volumes. Also saves an instance to the async handler that will be used to handle the
 * responses received from AWS. It sets the nextToken value in the request object sent to AWS
 * for getting the next page of results from AWS.
 */
private void createAWSRequestAndAsyncHandler(EBSStorageEnumerationContext aws) {
    DescribeVolumesRequest request = new DescribeVolumesRequest();
    request.setMaxResults(getQueryPageSize());
    request.setNextToken(aws.nextToken);
    aws.describeVolumesRequest = request;
    AsyncHandler<DescribeVolumesRequest, DescribeVolumesResult> resultHandler = new AWSStorageEnumerationAsyncHandler(this, aws);
    aws.resultHandler = resultHandler;
}
Also used : DescribeVolumesResult(com.amazonaws.services.ec2.model.DescribeVolumesResult) DescribeVolumesRequest(com.amazonaws.services.ec2.model.DescribeVolumesRequest)

Example 2 with DescribeVolumesRequest

use of com.amazonaws.services.ec2.model.DescribeVolumesRequest in project photon-model by vmware.

the class TestAWSSetupUtils method createVolume.

/**
 * Creates a volume and return the volume id.
 */
public static String createVolume(VerificationHost host, AmazonEC2Client client) {
    CreateVolumeRequest req = new CreateVolumeRequest().withAvailabilityZone(zoneId + avalabilityZoneIdentifier).withSize(1);
    CreateVolumeResult res = client.createVolume(req);
    String volumeId = res.getVolume().getVolumeId();
    Filter filter = new Filter().withName(VOLUME_ID_ATTRIBUTE).withValues(volumeId);
    DescribeVolumesRequest volumesRequest = new DescribeVolumesRequest().withVolumeIds(volumeId).withFilters(filter);
    host.waitFor("Timeout waiting for creating volume", () -> {
        DescribeVolumesResult volumesResult = client.describeVolumes(volumesRequest);
        String state = volumesResult.getVolumes().get(0).getState();
        if (state.equalsIgnoreCase(VOLUME_STATUS_AVAILABLE)) {
            return true;
        }
        return false;
    });
    tagResources(client, Arrays.asList(volumeId), TAG_KEY_FOR_TEST_RESOURCES, TAG_VALUE_FOR_TEST_RESOURCES + TAG_VOLUME);
    return volumeId;
}
Also used : CreateVolumeRequest(com.amazonaws.services.ec2.model.CreateVolumeRequest) AWSUtils.getAWSNonTerminatedInstancesFilter(com.vmware.photon.controller.model.adapters.awsadapter.AWSUtils.getAWSNonTerminatedInstancesFilter) Filter(com.amazonaws.services.ec2.model.Filter) CreateVolumeResult(com.amazonaws.services.ec2.model.CreateVolumeResult) DescribeVolumesResult(com.amazonaws.services.ec2.model.DescribeVolumesResult) DescribeVolumesRequest(com.amazonaws.services.ec2.model.DescribeVolumesRequest)

Example 3 with DescribeVolumesRequest

use of com.amazonaws.services.ec2.model.DescribeVolumesRequest in project cloudbreak by hortonworks.

the class EbsVolumeStatusCheckerTask method doCall.

@Override
protected Boolean doCall() {
    LOGGER.info("Checking if AWS EBS volume '{}' is created.", volumeId);
    DescribeVolumesResult describeVolumesResult = amazonEC2Client.describeVolumes(new DescribeVolumesRequest().withVolumeIds(volumeId));
    Optional<Volume> volume = describeVolumesResult.getVolumes().stream().findFirst();
    return volume.isPresent() && "available".equals(volume.get().getState());
}
Also used : Volume(com.amazonaws.services.ec2.model.Volume) DescribeVolumesResult(com.amazonaws.services.ec2.model.DescribeVolumesResult) DescribeVolumesRequest(com.amazonaws.services.ec2.model.DescribeVolumesRequest)

Example 4 with DescribeVolumesRequest

use of com.amazonaws.services.ec2.model.DescribeVolumesRequest in project SimianArmy by Netflix.

the class AWSClient method describeVolumes.

/**
 * Describe a set of specific EBS volumes.
 *
 * @param volumeIds the volume ids
 * @return the volumes
 */
public List<Volume> describeVolumes(String... volumeIds) {
    if (volumeIds == null || volumeIds.length == 0) {
        LOGGER.info(String.format("Getting all EBS volumes in region %s.", region));
    } else {
        LOGGER.info(String.format("Getting EBS volumes for %d ids in region %s.", volumeIds.length, region));
    }
    AmazonEC2 ec2Client = ec2Client();
    DescribeVolumesRequest request = new DescribeVolumesRequest();
    if (volumeIds != null) {
        request.setVolumeIds(Arrays.asList(volumeIds));
    }
    DescribeVolumesResult result = ec2Client.describeVolumes(request);
    List<Volume> volumes = result.getVolumes();
    LOGGER.info(String.format("Got %d EBS volumes in region %s.", volumes.size(), region));
    return volumes;
}
Also used : AmazonEC2(com.amazonaws.services.ec2.AmazonEC2)

Example 5 with DescribeVolumesRequest

use of com.amazonaws.services.ec2.model.DescribeVolumesRequest in project photon-model by vmware.

the class AWSTaskStatusChecker method buildRequest.

private AmazonWebServiceRequest buildRequest(T type) {
    if (type instanceof Instance) {
        DescribeInstancesRequest descRequest = new DescribeInstancesRequest();
        List<String> instanceIdList = new ArrayList<>();
        instanceIdList.add(this.instanceId);
        descRequest.setInstanceIds(instanceIdList);
        return descRequest;
    } else if (type instanceof NatGateway) {
        DescribeNatGatewaysRequest descRequest = new DescribeNatGatewaysRequest();
        List<String> instanceIdList = new ArrayList<>();
        instanceIdList.add(this.instanceId);
        descRequest.setNatGatewayIds(instanceIdList);
        return descRequest;
    } else if (type instanceof Volume) {
        DescribeVolumesRequest descRequest = new DescribeVolumesRequest();
        List<String> volumeIdList = new ArrayList<>();
        volumeIdList.add(this.instanceId);
        descRequest.setVolumeIds(volumeIdList);
        return descRequest;
    } else {
        AWSTaskStatusChecker.this.taskManager.patchTaskToFailure(new IllegalArgumentException("Invalid type " + type));
        return null;
    }
}
Also used : Instance(com.amazonaws.services.ec2.model.Instance) Volume(com.amazonaws.services.ec2.model.Volume) DescribeNatGatewaysRequest(com.amazonaws.services.ec2.model.DescribeNatGatewaysRequest) ArrayList(java.util.ArrayList) NatGateway(com.amazonaws.services.ec2.model.NatGateway) ArrayList(java.util.ArrayList) List(java.util.List) DescribeInstancesRequest(com.amazonaws.services.ec2.model.DescribeInstancesRequest) DescribeVolumesRequest(com.amazonaws.services.ec2.model.DescribeVolumesRequest)

Aggregations

DescribeVolumesRequest (com.amazonaws.services.ec2.model.DescribeVolumesRequest)6 DescribeVolumesResult (com.amazonaws.services.ec2.model.DescribeVolumesResult)5 Volume (com.amazonaws.services.ec2.model.Volume)3 DescribeNatGatewaysRequest (com.amazonaws.services.ec2.model.DescribeNatGatewaysRequest)2 Instance (com.amazonaws.services.ec2.model.Instance)2 NatGateway (com.amazonaws.services.ec2.model.NatGateway)2 ArrayList (java.util.ArrayList)2 AmazonWebServiceRequest (com.amazonaws.AmazonWebServiceRequest)1 AsyncHandler (com.amazonaws.handlers.AsyncHandler)1 AmazonEC2 (com.amazonaws.services.ec2.AmazonEC2)1 AmazonEC2Exception (com.amazonaws.services.ec2.model.AmazonEC2Exception)1 CreateVolumeRequest (com.amazonaws.services.ec2.model.CreateVolumeRequest)1 CreateVolumeResult (com.amazonaws.services.ec2.model.CreateVolumeResult)1 DescribeInstancesRequest (com.amazonaws.services.ec2.model.DescribeInstancesRequest)1 Filter (com.amazonaws.services.ec2.model.Filter)1 InstanceBlockDeviceMapping (com.amazonaws.services.ec2.model.InstanceBlockDeviceMapping)1 AWSUtils.getAWSNonTerminatedInstancesFilter (com.vmware.photon.controller.model.adapters.awsadapter.AWSUtils.getAWSNonTerminatedInstancesFilter)1 UnknownHostException (java.net.UnknownHostException)1 List (java.util.List)1 TimeoutException (java.util.concurrent.TimeoutException)1