use of com.amazonaws.services.ec2.model.Snapshot in project photon-model by vmware.
the class TestAWSSetupUtils method createSnapshot.
/**
* Creates a snapshot and return the snapshot id.
*/
public static String createSnapshot(VerificationHost host, AmazonEC2Client client, String volumeId) {
CreateSnapshotRequest req = new CreateSnapshotRequest().withVolumeId(volumeId);
CreateSnapshotResult res = client.createSnapshot(req);
String snapshotId = res.getSnapshot().getSnapshotId();
Filter filter = new Filter().withName(SNAPSHOT_ID_ATTRIBUTE).withValues(snapshotId);
DescribeSnapshotsRequest snapshotsRequest = new DescribeSnapshotsRequest().withSnapshotIds(snapshotId).withFilters(filter);
host.waitFor("Timeout waiting for creating snapshot", () -> {
DescribeSnapshotsResult snapshotsResult = client.describeSnapshots(snapshotsRequest);
String state = snapshotsResult.getSnapshots().get(0).getState();
if (state.equalsIgnoreCase(SNAPSHOT_STATUS_COMPLETE)) {
return true;
}
return false;
});
tagResources(client, Arrays.asList(snapshotId), TAG_KEY_FOR_TEST_RESOURCES, TAG_VALUE_FOR_TEST_RESOURCES + TAG_SNAPSHOT);
return snapshotId;
}
use of com.amazonaws.services.ec2.model.Snapshot 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;
}
use of com.amazonaws.services.ec2.model.Snapshot 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);
}
use of com.amazonaws.services.ec2.model.Snapshot in project SimianArmy by Netflix.
the class TestEBSSnapshotJanitorCrawler method testSnapshotsWithResourceType.
@Test
public void testSnapshotsWithResourceType() {
Date startTime = new Date();
List<Snapshot> snapshotList = createSnapshotList(startTime);
EBSSnapshotJanitorCrawler crawler = new EBSSnapshotJanitorCrawler(createMockAWSClient(snapshotList));
for (AWSResourceType resourceType : AWSResourceType.values()) {
List<Resource> resources = crawler.resources(resourceType);
if (resourceType == AWSResourceType.EBS_SNAPSHOT) {
verifySnapshotList(resources, snapshotList, startTime);
} else {
Assert.assertTrue(resources.isEmpty());
}
}
}
use of com.amazonaws.services.ec2.model.Snapshot in project SimianArmy by Netflix.
the class TestEBSSnapshotJanitorCrawler method testSnapshotsWithNullIds.
@Test
public void testSnapshotsWithNullIds() {
Date startTime = new Date();
List<Snapshot> snapshotList = createSnapshotList(startTime);
EBSSnapshotJanitorCrawler crawler = new EBSSnapshotJanitorCrawler(createMockAWSClient(snapshotList));
List<Resource> resources = crawler.resources();
verifySnapshotList(resources, snapshotList, startTime);
}
Aggregations