Search in sources :

Example 21 with Region

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

the class TestInstanceInVPC method setUp.

@BeforeMethod
public void setUp() throws Exception {
    MockitoAnnotations.initMocks(this);
    List<Instance> instanceList = Lists.newArrayList();
    Instance instance = new Instance().withInstanceId(VPC_INSTANCE_ID).withVpcId("12345");
    instanceList.add(instance);
    doReturn(instanceList).when(instanceInVPC).getAWSInstances(REGION, VPC_INSTANCE_ID);
    List<Instance> instanceList2 = Lists.newArrayList();
    Instance instance2 = new Instance().withInstanceId(INSTANCE_ID);
    instanceList2.add(instance2);
    doReturn(instanceList2).when(instanceInVPC).getAWSInstances(REGION, INSTANCE_ID);
}
Also used : Instance(com.amazonaws.services.ec2.model.Instance) BeforeMethod(org.testng.annotations.BeforeMethod)

Example 22 with Region

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

the class AWSClient method describeSnapshots.

/**
     * Describe a set of specific EBS snapshots.
     *
     * @param snapshotIds the snapshot ids
     * @return the snapshots
     */
public List<Snapshot> describeSnapshots(String... snapshotIds) {
    if (snapshotIds == null || snapshotIds.length == 0) {
        LOGGER.info(String.format("Getting all EBS snapshots in region %s.", region));
    } else {
        LOGGER.info(String.format("Getting EBS snapshotIds for %d ids in region %s.", snapshotIds.length, region));
    }
    AmazonEC2 ec2Client = ec2Client();
    DescribeSnapshotsRequest request = new DescribeSnapshotsRequest();
    // Set the owner id to self to avoid getting snapshots from other accounts.
    request.withOwnerIds(Arrays.<String>asList("self"));
    if (snapshotIds != null) {
        request.setSnapshotIds(Arrays.asList(snapshotIds));
    }
    DescribeSnapshotsResult result = ec2Client.describeSnapshots(request);
    List<Snapshot> snapshots = result.getSnapshots();
    LOGGER.info(String.format("Got %d EBS snapshots in region %s.", snapshots.size(), region));
    return snapshots;
}
Also used : AmazonEC2(com.amazonaws.services.ec2.AmazonEC2)

Example 23 with Region

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

the class AWSClient method listAttachedVolumes.

@Override
public List<String> listAttachedVolumes(String instanceId, boolean includeRoot) {
    Validate.notEmpty(instanceId);
    LOGGER.info(String.format("Listing volumes attached to instance %s in region %s.", instanceId, region));
    try {
        List<String> volumeIds = new ArrayList<String>();
        for (Instance instance : describeInstances(instanceId)) {
            String rootDeviceName = instance.getRootDeviceName();
            for (InstanceBlockDeviceMapping ibdm : instance.getBlockDeviceMappings()) {
                EbsInstanceBlockDevice ebs = ibdm.getEbs();
                if (ebs == null) {
                    continue;
                }
                String volumeId = ebs.getVolumeId();
                if (Strings.isNullOrEmpty(volumeId)) {
                    continue;
                }
                if (!includeRoot && rootDeviceName != null && rootDeviceName.equals(ibdm.getDeviceName())) {
                    continue;
                }
                volumeIds.add(volumeId);
            }
        }
        return volumeIds;
    } catch (AmazonServiceException e) {
        if (e.getErrorCode().equals("InvalidInstanceID.NotFound")) {
            throw new NotFoundException("AWS instance " + instanceId + " not found", e);
        }
        throw e;
    }
}
Also used : Instance(com.amazonaws.services.ec2.model.Instance) AmazonServiceException(com.amazonaws.AmazonServiceException) NotFoundException(com.netflix.simianarmy.NotFoundException)

Example 24 with Region

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

the class AWSClient method describeSecurityGroups.

/**
     * Describe a set of security groups.
     *
     * @param groupNames the names of the groups to find
     * @return a list of matching groups
     */
public List<SecurityGroup> describeSecurityGroups(String... groupNames) {
    AmazonEC2 ec2Client = ec2Client();
    DescribeSecurityGroupsRequest request = new DescribeSecurityGroupsRequest();
    if (groupNames == null || groupNames.length == 0) {
        LOGGER.info(String.format("Getting all EC2 security groups in region %s.", region));
    } else {
        LOGGER.info(String.format("Getting EC2 security groups for %d names in region %s.", groupNames.length, region));
        request.withGroupNames(groupNames);
    }
    DescribeSecurityGroupsResult result;
    try {
        result = ec2Client.describeSecurityGroups(request);
    } catch (AmazonServiceException e) {
        if (e.getErrorCode().equals("InvalidGroup.NotFound")) {
            LOGGER.info("Got InvalidGroup.NotFound error for security groups; returning empty list");
            return Collections.emptyList();
        }
        throw e;
    }
    List<SecurityGroup> securityGroups = result.getSecurityGroups();
    LOGGER.info(String.format("Got %d EC2 security groups in region %s.", securityGroups.size(), region));
    return securityGroups;
}
Also used : AmazonServiceException(com.amazonaws.AmazonServiceException) AmazonEC2(com.amazonaws.services.ec2.AmazonEC2)

Example 25 with Region

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

the class AWSClient method deleteSnapshot.

/** {@inheritDoc} */
@Override
public void deleteSnapshot(String snapshotId) {
    Validate.notEmpty(snapshotId);
    LOGGER.info(String.format("Deleting snapshot %s in region %s.", snapshotId, region));
    AmazonEC2 ec2Client = ec2Client();
    DeleteSnapshotRequest request = new DeleteSnapshotRequest().withSnapshotId(snapshotId);
    ec2Client.deleteSnapshot(request);
}
Also used : AmazonEC2(com.amazonaws.services.ec2.AmazonEC2)

Aggregations

AmazonEC2 (com.amazonaws.services.ec2.AmazonEC2)17 Instance (com.amazonaws.services.ec2.model.Instance)12 AmazonEC2Client (com.amazonaws.services.ec2.AmazonEC2Client)10 AmazonServiceException (com.amazonaws.AmazonServiceException)7 AWSClient (com.netflix.simianarmy.client.aws.AWSClient)5 IOException (java.io.IOException)5 Date (java.util.Date)5 AWSCredentials (com.amazonaws.auth.AWSCredentials)4 PropertiesCredentials (com.amazonaws.auth.PropertiesCredentials)4 File (java.io.File)4 AmazonClientException (com.amazonaws.AmazonClientException)3 Tag (com.amazonaws.services.ec2.model.Tag)3 Region (com.amazonaws.services.s3.model.Region)3 TransferManager (com.amazonaws.services.s3.transfer.TransferManager)3 Resource (com.netflix.simianarmy.Resource)3 AWSResource (com.netflix.simianarmy.aws.AWSResource)3 HashMap (java.util.HashMap)3 BasicAWSCredentials (com.amazonaws.auth.BasicAWSCredentials)2 InstanceProfileCredentialsProvider (com.amazonaws.auth.InstanceProfileCredentialsProvider)2 AvailabilityZone (com.amazonaws.services.ec2.model.AvailabilityZone)2