Search in sources :

Example 6 with Volume

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

the class EBSVolumeJanitorCrawler method getVolumeDescription.

private String getVolumeDescription(Volume volume) {
    StringBuilder description = new StringBuilder();
    Integer size = volume.getSize();
    description.append(String.format("size=%s", size == null ? "unknown" : size));
    for (Tag tag : volume.getTags()) {
        description.append(String.format("; %s=%s", tag.getKey(), tag.getValue()));
    }
    return description.toString();
}
Also used : Tag(com.amazonaws.services.ec2.model.Tag)

Example 7 with Volume

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

the class EBSVolumeJanitorCrawler method getVolumeResources.

private List<Resource> getVolumeResources(String... volumeIds) {
    List<Resource> resources = new LinkedList<Resource>();
    AWSClient awsClient = getAWSClient();
    for (Volume volume : awsClient.describeVolumes(volumeIds)) {
        Resource volumeResource = new AWSResource().withId(volume.getVolumeId()).withRegion(getAWSClient().region()).withResourceType(AWSResourceType.EBS_VOLUME).withLaunchTime(volume.getCreateTime());
        for (Tag tag : volume.getTags()) {
            LOGGER.info(String.format("Adding tag %s = %s to resource %s", tag.getKey(), tag.getValue(), volumeResource.getId()));
            volumeResource.setTag(tag.getKey(), tag.getValue());
        }
        volumeResource.setOwnerEmail(getOwnerEmailForResource(volumeResource));
        volumeResource.setDescription(getVolumeDescription(volume));
        ((AWSResource) volumeResource).setAWSResourceState(volume.getState());
        resources.add(volumeResource);
    }
    return resources;
}
Also used : Volume(com.amazonaws.services.ec2.model.Volume) AWSResource(com.netflix.simianarmy.aws.AWSResource) Resource(com.netflix.simianarmy.Resource) AWSResource(com.netflix.simianarmy.aws.AWSResource) AWSClient(com.netflix.simianarmy.client.aws.AWSClient) Tag(com.amazonaws.services.ec2.model.Tag) LinkedList(java.util.LinkedList)

Example 8 with Volume

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

the class TestEBSVolumeJanitorCrawler method testVolumesWithResourceType.

@Test
public void testVolumesWithResourceType() {
    Date createTime = new Date();
    List<Volume> volumeList = createVolumeList(createTime);
    EBSVolumeJanitorCrawler crawler = new EBSVolumeJanitorCrawler(createMockAWSClient(volumeList));
    for (AWSResourceType resourceType : AWSResourceType.values()) {
        List<Resource> resources = crawler.resources(resourceType);
        if (resourceType == AWSResourceType.EBS_VOLUME) {
            verifyVolumeList(resources, volumeList, createTime);
        } else {
            Assert.assertTrue(resources.isEmpty());
        }
    }
}
Also used : Volume(com.amazonaws.services.ec2.model.Volume) AWSResourceType(com.netflix.simianarmy.aws.AWSResourceType) Resource(com.netflix.simianarmy.Resource) AWSResource(com.netflix.simianarmy.aws.AWSResource) Date(java.util.Date) Test(org.testng.annotations.Test)

Example 9 with Volume

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

the class TestEBSVolumeJanitorCrawler method testResourceTypes.

@Test
public void testResourceTypes() {
    Date createTime = new Date();
    List<Volume> volumeList = createVolumeList(createTime);
    EBSVolumeJanitorCrawler crawler = new EBSVolumeJanitorCrawler(createMockAWSClient(volumeList));
    EnumSet<?> types = crawler.resourceTypes();
    Assert.assertEquals(types.size(), 1);
    Assert.assertEquals(types.iterator().next().name(), "EBS_VOLUME");
}
Also used : Volume(com.amazonaws.services.ec2.model.Volume) Date(java.util.Date) Test(org.testng.annotations.Test)

Example 10 with Volume

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

the class TestEBSVolumeJanitorCrawler method testVolumesWithNullIds.

@Test
public void testVolumesWithNullIds() {
    Date createTime = new Date();
    List<Volume> volumeList = createVolumeList(createTime);
    EBSVolumeJanitorCrawler crawler = new EBSVolumeJanitorCrawler(createMockAWSClient(volumeList));
    List<Resource> resources = crawler.resources();
    verifyVolumeList(resources, volumeList, createTime);
}
Also used : Volume(com.amazonaws.services.ec2.model.Volume) Resource(com.netflix.simianarmy.Resource) AWSResource(com.netflix.simianarmy.aws.AWSResource) Date(java.util.Date) Test(org.testng.annotations.Test)

Aggregations

Volume (com.amazonaws.services.ec2.model.Volume)8 Date (java.util.Date)5 Resource (com.netflix.simianarmy.Resource)4 AWSResource (com.netflix.simianarmy.aws.AWSResource)4 Test (org.testng.annotations.Test)4 Tag (com.amazonaws.services.ec2.model.Tag)3 AmazonEC2 (com.amazonaws.services.ec2.AmazonEC2)2 AttachVolumeRequest (com.amazonaws.services.ec2.model.AttachVolumeRequest)1 CreateVolumeRequest (com.amazonaws.services.ec2.model.CreateVolumeRequest)1 CreateVolumeResult (com.amazonaws.services.ec2.model.CreateVolumeResult)1 Instance (com.amazonaws.services.ec2.model.Instance)1 VolumeAttachment (com.amazonaws.services.ec2.model.VolumeAttachment)1 Event (com.netflix.simianarmy.MonkeyRecorder.Event)1 AWSResourceType (com.netflix.simianarmy.aws.AWSResourceType)1 AWSClient (com.netflix.simianarmy.client.aws.AWSClient)1 LinkedList (java.util.LinkedList)1