本文整理汇总了Java中com.amazonaws.services.ec2.model.Snapshot类的典型用法代码示例。如果您正苦于以下问题:Java Snapshot类的具体用法?Java Snapshot怎么用?Java Snapshot使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Snapshot类属于com.amazonaws.services.ec2.model包,在下文中一共展示了Snapshot类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: attachSnapshotTags
import com.amazonaws.services.ec2.model.Snapshot; //导入依赖的package包/类
void attachSnapshotTags(AmazonEC2Async client, String sourceSnapshotId, String snapshotId) {
DescribeSnapshotsResult result = client
.describeSnapshots(new DescribeSnapshotsRequest().withSnapshotIds(sourceSnapshotId));
List<Snapshot> snapshots = result.getSnapshots();
if (snapshots.size() != 1) {
throw new RuntimeException("snapshot can not found. sourceSnapshotId[" + snapshotId + "]");
}
List<Tag> sourceSnapshotTags = snapshots.get(0).getTags();
List<Tag> tags = new ArrayList<Tag>();
tags.addAll(sourceSnapshotTags);
tags.add(new Tag("SourceSnapshotId", sourceSnapshotId));
tags.add(new Tag("BackupType", "copy-snapshot")); // overwrite
CreateTagsRequest snapshotTagsRequest = new CreateTagsRequest().withResources(snapshotId);
snapshotTagsRequest.setTags(tags);
client.createTags(snapshotTagsRequest);
}
示例2: itShouldThrowWhenMoreThanOneAMIIsFoundToBeDeleted
import com.amazonaws.services.ec2.model.Snapshot; //导入依赖的package包/类
@Test(expected = ServiceBrokerException.class)
public void itShouldThrowWhenMoreThanOneAMIIsFoundToBeDeleted()
throws ServiceBrokerException,
ServiceInstanceBindingExistsException {
when(ec2Client.describeSnapshots())
.thenReturn(
new DescribeSnapshotsResult().withSnapshots(Arrays.asList(
new Snapshot()
.withDescription("Created by CreateImage(source_instance) for test_image from vol-e7526fac"),
new Snapshot()
.withDescription(
"Created by CreateImage(source_instance) for test_image from vol-e7526fac")
.withSnapshotId("test_snapshot"),
new Snapshot()
.withDescription("Created by CreateImage(source_instance) for ami-xx from vol-e7526fac"),
new Snapshot())));
aws.deleteStorageArtifacts("test_image");
verify(ec2Client, never()).deleteSnapshot(any());
}
示例3: convertObject
import com.amazonaws.services.ec2.model.Snapshot; //导入依赖的package包/类
@Override
protected Snapshot convertObject(SnapshotInfo from) {
Snapshot to = new Snapshot();
to.setSnapshotId(from.getSnapshotId());
to.setVolumeId(from.getVolumeId());
to.setState(from.getStatus());
to.setStartTime(from.getStartTime().getTime());
to.setProgress(from.getProgress());
// 未実装
to.setOwnerId(null);
to.setDescription(null);
to.setVolumeSize(null);
to.setOwnerAlias(null);
to.setTags(null);
return to;
}
示例4: isEqual
import com.amazonaws.services.ec2.model.Snapshot; //导入依赖的package包/类
@Override
@SuppressWarnings("rawtypes")
protected boolean isEqual(AbstractResource newResource) {
Snapshot oldSnapshot = this.getResource();
Ec2Snapshot newEc2Snapshot = (Ec2Snapshot) newResource;
Snapshot newSnapshot = (Snapshot) newResource.getResource();
if (notEqual(oldSnapshot.getSnapshotId(), newSnapshot.getSnapshotId())) return false;
if (notEqual(oldSnapshot.getVolumeId(), newSnapshot.getVolumeId())) return false;
if (notEqual(oldSnapshot.getState(), newSnapshot.getState())) return false;
if (notEqual(oldSnapshot.getStartTime(), newSnapshot.getStartTime())) return false;
if (notEqual(oldSnapshot.getProgress(), newSnapshot.getProgress())) return false;
if (notEqual(oldSnapshot.getOwnerId(), newSnapshot.getOwnerId())) return false;
if (notEqual(oldSnapshot.getDescription(), newSnapshot.getDescription())) return false;
if (notEqual(oldSnapshot.getVolumeSize(), newSnapshot.getVolumeSize())) return false;
if (notEqual(oldSnapshot.getOwnerAlias(), newSnapshot.getOwnerAlias())) return false;
if (notEqualCollection(oldSnapshot.getTags(), newSnapshot.getTags())) return false;
if (notEqualCollection(this.getCreateVolumePermissions(), newEc2Snapshot.getCreateVolumePermissions())) return false;
if (notEqualCollection(this.getProductCodes(), newEc2Snapshot.getProductCodes())) return false;
return true;
}
示例5: compareSnapshotState
import com.amazonaws.services.ec2.model.Snapshot; //导入依赖的package包/类
private void compareSnapshotState(Collection<Event> result, Ec2Snapshot oldResource, Ec2Snapshot newResource) {
Snapshot newInstance = newResource.getResource();
Snapshot oldInstance = oldResource.getResource();
String newState = newInstance.getState();
String oldState = oldInstance.getState();
if (notEqual(newState, oldState)) {
switch (newState) {
case "pending":
result.add(createEvent(oldResource, newResource, EventType.Ec2_Snapshot_Pending));
break;
case "completed":
result.add(createEvent(oldResource, newResource, EventType.Ec2_Snapshot_Created));
break;
default:
log.error("not handled instance state:" + newState);
result.add(createEvent(oldResource, newResource, EventType.Unknown));
}
}
}
示例6: describeSnapshots
import com.amazonaws.services.ec2.model.Snapshot; //导入依赖的package包/类
@Override
public List<AbstractResource<?>> describeSnapshots(Account account, Region region, DateTime dt, Ec2Filter... filters) {
AmazonEC2 ec2 = findClient(account, region);
DescribeSnapshotsRequest req = new DescribeSnapshotsRequest();
for (Ec2Filter filter : filters) {
Filter f = new Filter().withName(filter.getName()).withValues(filter.getValues());
req.withFilters(f);
}
log.debug("start describing snapshots for account:{} in region:{} via api", account.getId() + "=>" + account.getName(), region);
DescribeSnapshotsResult res = ec2.describeSnapshots(req);
List<List<CreateVolumePermission>> createVolumePermissions = new ArrayList<>();
List<List<ProductCode>> productCodes = new ArrayList<>();
for (Snapshot snapShot : res.getSnapshots()) {
productCodes.add(findSnapshotProductCodes(account, region, snapShot.getSnapshotId()));
createVolumePermissions.add(findCreateVolumePermissions(account, region, snapShot.getSnapshotId()));
}
return converter.toEc2Snapshots(res.getSnapshots(), createVolumePermissions, productCodes, account.getId(), region, dt);
}
示例7: pargeEbsSnapshot
import com.amazonaws.services.ec2.model.Snapshot; //导入依赖的package包/类
void pargeEbsSnapshot(AmazonEC2Async client, String volumeId, int generationCount, Context context) {
LambdaLogger logger = context.getLogger();
logger.log("Parge snapshot start. VolumeId[" + volumeId + "] generationCount[" + generationCount + "]");
List<Filter> filters = new ArrayList<>();
filters.add(new Filter().withName("volume-id").withValues(volumeId));
filters.add(new Filter().withName("tag:VolumeId").withValues(volumeId));
filters.add(new Filter().withName("tag:BackupType").withValues("snapshot"));
DescribeSnapshotsRequest snapshotRequest = new DescribeSnapshotsRequest().withFilters(filters);
DescribeSnapshotsResult snapshotResult = client.describeSnapshots(snapshotRequest);
List<Snapshot> snapshots = snapshotResult.getSnapshots();
Collections.sort(snapshots, new SnapshotComparator());
int snapshotSize = snapshots.size();
if (generationCount < snapshotSize) {
for (int i = 0; i < snapshotSize - generationCount; i++) {
Snapshot snapshot = snapshots.get(i);
if (SnapshotState.Completed.toString().equals(snapshot.getState())) {
String snapshotId = snapshot.getSnapshotId();
pargeSnapshot(client, snapshotId);
logger.log("Parge EBS snapshot. snapshotId[" + snapshotId + "] volumeId[" + volumeId + "]");
}
}
}
}
示例8: handleRequest
import com.amazonaws.services.ec2.model.Snapshot; //导入依赖的package包/类
@Override
public void handleRequest(InputStream is, OutputStream os, Context context) {
LambdaLogger logger = context.getLogger();
String regionName = System.getenv("AWS_DEFAULT_REGION");
AmazonEC2Async client = RegionUtils.getRegion(regionName).createClient(AmazonEC2AsyncClient.class,
new DefaultAWSCredentialsProviderChain(), cc);
try {
ObjectMapper om = new ObjectMapper();
DeregisterImageRequest event = om.readValue(is, DeregisterImageRequest.class);
String imageId = event.getDetail().getRequestParameters().getImageId();
logger.log("Deregister AMI parge snapshot Start. ImageId[" + imageId + "]");
List<Snapshot> snapshots = describeSnapshot(client, imageId, context);
if (snapshots.size() == 0) {
logger.log("Target of snapshot there is nothing.");
} else {
snapshots.stream().forEach(s -> pargeSnapshot(client, s.getSnapshotId(), context));
}
logger.log("[SUCCESS][DeregisterImage]has been completed successfully." + imageId);
} catch (Exception e) {
logger.log("[ERROR][DeregisterImage]An unexpected error has occurred. message[" + e.getMessage() + "]");
} finally {
client.shutdown();
}
}
示例9: describeSnapshot
import com.amazonaws.services.ec2.model.Snapshot; //导入依赖的package包/类
private List<Snapshot> describeSnapshot(AmazonEC2Async client, String imageId, Context context) {
Filter filter = new Filter().withName("description")
.withValues("Created by CreateImage(*) for " + imageId + " from *");
DescribeSnapshotsRequest request = new DescribeSnapshotsRequest().withFilters(filter);
DescribeSnapshotsResult result = client.describeSnapshots(request);
return result.getSnapshots();
}
示例10: pargeEbsSnapshot
import com.amazonaws.services.ec2.model.Snapshot; //导入依赖的package包/类
void pargeEbsSnapshot(AmazonEC2Async client, String sourceSnapshotId, String snapshotId, int generationCount,
Context context) {
LambdaLogger logger = context.getLogger();
logger.log(
"Parge snapshot start. SnapshotId[" + sourceSnapshotId + "] generationCount[" + generationCount + "]");
// get volumeId from tags
String volumeId = getVolumeIdFromTag(client, snapshotId);
// describe filter tag VolumeId
List<Filter> filters = new ArrayList<>();
filters.add(new Filter().withName("tag:VolumeId").withValues(volumeId));
filters.add(new Filter().withName("tag:BackupType").withValues("copy-snapshot"));
DescribeSnapshotsRequest snapshotRequest = new DescribeSnapshotsRequest().withFilters(filters);
DescribeSnapshotsResult snapshotResult = client.describeSnapshots(snapshotRequest);
// snapshot作成開始日でソートします。(古い→新しい)
List<Snapshot> snapshots = snapshotResult.getSnapshots();
Collections.sort(snapshots, new SnapshotComparator());
// 世代管理保持数 < snapshotの数の場合、対象をpargeします。
int snapshotSize = snapshots.size();
if (generationCount < snapshotSize) {
for (int i = 0; i < snapshotSize - generationCount; i++) {
Snapshot snapshot = snapshots.get(i);
// (念のため)snapshotのステータスが完了しているものだけをparge対象とする。
if (SnapshotState.Completed.toString().equals(snapshot.getState())) {
String pargeSnapshotId = snapshot.getSnapshotId();
pargeSnapshot(client, pargeSnapshotId);
logger.log("Parge EBS snapshot. snapshotId[" + pargeSnapshotId + "]");
}
}
}
}
示例11: snapshotIdExists
import com.amazonaws.services.ec2.model.Snapshot; //导入依赖的package包/类
/**
* Return true if snapshotId exists.
*/
public static boolean snapshotIdExists(AmazonEC2AsyncClient client, String snapshotId) {
List<Snapshot> snapshots = client.describeSnapshots()
.getSnapshots()
.stream()
.filter(snapshot -> snapshot.getSnapshotId().equals(snapshotId))
.collect(Collectors.toList());
return snapshots != null && !snapshots.isEmpty();
}
示例12: toEc2Snapshots
import com.amazonaws.services.ec2.model.Snapshot; //导入依赖的package包/类
public List<AbstractResource<?>> toEc2Snapshots(List<Snapshot> snapshots, List<List<CreateVolumePermission>> createVolumePermissions, List<List<ProductCode>> productCodes, String accountId, Region region, DateTime dt) {
List<AbstractResource<?>> resources = new ArrayList<>();
for (int i = 0; i < snapshots.size(); i++) {
Ec2Snapshot ec2Snapshot = new Ec2Snapshot();
conf(ec2Snapshot, accountId, region, dt);
ec2Snapshot.setResource(snapshots.get(i));
ec2Snapshot.setCreateVolumePermissions(createVolumePermissions.get(i));
ec2Snapshot.setProductCodes(productCodes.get(i));
resources.add(ec2Snapshot);
}
log.debug("{} snapshots found via api and converted to Ec2Snapshot", resources.size());
return resources;
}
示例13: add
import com.amazonaws.services.ec2.model.Snapshot; //导入依赖的package包/类
@Override
public Event add(Ec2Snapshot newResource) {
Snapshot newSnapshot = newResource.getResource();
String state = newSnapshot.getState();
switch (state) {
case "pending":
return createEvent(null, newResource, EventType.Ec2_Snapshot_Pending);
case "completed":
return createEvent(null, newResource, EventType.Ec2_Snapshot_Created);
default:
log.error("not handled instance state:{}", state);
return createEvent(null, newResource, EventType.Unknown);
}
}
示例14: update
import com.amazonaws.services.ec2.model.Snapshot; //导入依赖的package包/类
@Override
protected void update(List<Event> result, Ec2Snapshot oldResource, Ec2Snapshot newResource) {
Snapshot oldSnapshot = oldResource.getResource();
Snapshot newSnapshot = newResource.getResource();
compareSnapshotState(result, oldResource, newResource);
compareCreateVolumePermission(result, oldResource.getCreateVolumePermissions(), newResource.getCreateVolumePermissions(), oldResource, newResource);
compareTags(result, oldSnapshot.getTags(), newSnapshot.getTags(), oldResource, newResource);
}
示例15: compare
import com.amazonaws.services.ec2.model.Snapshot; //导入依赖的package包/类
@Override
public int compare(Snapshot o1, Snapshot o2) {
Date startDateO1 = o1.getStartTime();
Date startDateO2 = o2.getStartTime();
return startDateO1.compareTo(startDateO2);
}