• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Java DescribeSnapshotsResult类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中com.amazonaws.services.ec2.model.DescribeSnapshotsResult的典型用法代码示例。如果您正苦于以下问题:Java DescribeSnapshotsResult类的具体用法?Java DescribeSnapshotsResult怎么用?Java DescribeSnapshotsResult使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



DescribeSnapshotsResult类属于com.amazonaws.services.ec2.model包,在下文中一共展示了DescribeSnapshotsResult类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: createSnapshot

import com.amazonaws.services.ec2.model.DescribeSnapshotsResult; //导入依赖的package包/类
/**
 * 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;
    });
    return snapshotId;
}
 
开发者ID:vmware,项目名称:photon-model,代码行数:24,代码来源:TestAWSSetupUtils.java


示例2: attachSnapshotTags

import com.amazonaws.services.ec2.model.DescribeSnapshotsResult; //导入依赖的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);
	}
 
开发者ID:uzresk,项目名称:aws-auto-operations-using-lambda,代码行数:20,代码来源:EBSCopySnapshotFunction.java


示例3: itShouldThrowWhenMoreThanOneAMIIsFoundToBeDeleted

import com.amazonaws.services.ec2.model.DescribeSnapshotsResult; //导入依赖的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());
}
 
开发者ID:krujos,项目名称:data-lifecycle-service-broker,代码行数:21,代码来源:AWSHelperTest.java


示例4: describeSnapshots

import com.amazonaws.services.ec2.model.DescribeSnapshotsResult; //导入依赖的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);
}
 
开发者ID:veyronfei,项目名称:clouck,代码行数:23,代码来源:Ec2WrapperImpl.java


示例5: pargeEbsSnapshot

import com.amazonaws.services.ec2.model.DescribeSnapshotsResult; //导入依赖的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 + "]");
				}
			}
		}
	}
 
开发者ID:uzresk,项目名称:aws-auto-operations-using-lambda,代码行数:28,代码来源:EBSSnapshotFunction.java


示例6: describeSnapshot

import com.amazonaws.services.ec2.model.DescribeSnapshotsResult; //导入依赖的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();
	}
 
开发者ID:uzresk,项目名称:aws-auto-operations-using-lambda,代码行数:9,代码来源:DeregisterImageFunction.java


示例7: pargeEbsSnapshot

import com.amazonaws.services.ec2.model.DescribeSnapshotsResult; //导入依赖的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 + "]");
			}
		}
	}
}
 
开发者ID:uzresk,项目名称:aws-auto-operations-using-lambda,代码行数:36,代码来源:EBSCopySnapshotFunction.java


示例8: describeSnapshots

import com.amazonaws.services.ec2.model.DescribeSnapshotsResult; //导入依赖的package包/类
@Override
public DescribeSnapshotsResult describeSnapshots(DescribeSnapshotsRequest describeSnapshotsRequest) throws AmazonServiceException, AmazonClientException {
    throw new UnsupportedOperationException("Not supported in mock");
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:5,代码来源:AmazonEC2Mock.java


示例9: copySnapshotFromVolumeId

import com.amazonaws.services.ec2.model.DescribeSnapshotsResult; //导入依赖的package包/类
/**
 * Find the snapshot the volumeId the key, to get a copy of the latest
 * Snapshot
 *
 * @param volumeIdRequest
 *            VolumeIdRequest
 * @param context
 *            Context
 */
public void copySnapshotFromVolumeId(VolumeIdRequest volumeIdRequest, 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 {
		String volumeId = volumeIdRequest.getVolumeId();

		boolean isLockAcquisition = new LambdaLock().lock(volumeId, context);
		if (!isLockAcquisition) {
			logger.log("[ERROR][EBSCopySnapshot][" + volumeId + "]You can not acquire a lock.");
			return;
		}

		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);

		// sort and get latest snapshot
		List<Snapshot> snapshots = snapshotResult.getSnapshots();
		Collections.sort(snapshots, new SnapshotComparator());
		int snapshotsSize = snapshots.size();
		if (snapshotsSize == 0) {
			throw new RuntimeException("The copy source snapshot can not be found");
		}
		Snapshot snapshot = snapshots.get(snapshots.size() - 1);

		String sourceSnapshotId = snapshot.getSnapshotId();

		copySnapshot(sourceSnapshotId, volumeIdRequest.getDestinationRegion(), volumeIdRequest.getGenerationCount(),
				context);

	} catch (Exception e) {
		logger.log("[ERROR][EBSCopySnapshot][" + volumeIdRequest.getVolumeId() + "] message[" + e.getMessage()
				+ "] stackTrace[" + getStackTrace(e) + "]");
	} finally {
		client.shutdown();
	}
}
 
开发者ID:uzresk,项目名称:aws-auto-operations-using-lambda,代码行数:55,代码来源:EBSCopySnapshotFunction.java


示例10: deleteStorageArtifacts

import com.amazonaws.services.ec2.model.DescribeSnapshotsResult; //导入依赖的package包/类
/**
 * Find the snap & volumes associated with the AMI we used and delete it.
 * AWS doesn't help us out much and the only relationship (as of 2/14/2015)
 * we can leverage is the description field.
 * 
 * @param ami
 *            to find associated snaps for
 * @throws ServiceBrokerExceptions
 */
public void deleteStorageArtifacts(String ami)
		throws ServiceBrokerException {

	DescribeSnapshotsResult desc = ec2Client.describeSnapshots();
	if (null == desc.getSnapshots()) {
		return;
	}
	List<Snapshot> snapshots = desc.getSnapshots();

	// The only way I can find to track the snaps that get created (but not
	// cleaned up) as part of the ami creation is by the description. This
	// code is brittle and will probably fail in unexpected and glamorous
	// ways.
	String amiDesc = "Created by CreateImage(" + sourceInstanceId
			+ ") for " + ami + " from vol";

	// Would be nice if the aws client return optionals...
	List<Snapshot> matching = snapshots.stream()
			.filter(s -> safeContains(s::getDescription, amiDesc))
			.collect(Collectors.toList());

	switch (matching.size()) {
	case 0:
		// Should this throw? Might have been manually cleaned up...but it
		// may orphan the volume. It's done this way to allow people to
		// create their own instances in AWS and not jack them up by
		// deleting the volume
		log.error("No snapshots found for AMI " + ami);
		break;
	case 1:
		String snap = matching.get(0).getSnapshotId();
		log.info("Deleting snapshot " + snap);
		ec2Client.deleteSnapshot(new DeleteSnapshotRequest()
				.withSnapshotId(snap));

		deleteVolumeForSnap(snap);
		break;
	default:
		throw new ServiceBrokerException(
				"Found too many snapshots for AMI " + ami);
	}
}
 
开发者ID:krujos,项目名称:data-lifecycle-service-broker,代码行数:52,代码来源:AWSHelper.java


示例11: itShouldDeleteTheStorageArtifacts

import com.amazonaws.services.ec2.model.DescribeSnapshotsResult; //导入依赖的package包/类
@Test
public void itShouldDeleteTheStorageArtifacts()
		throws ServiceInstanceBindingExistsException,
		ServiceBrokerException {

	when(ec2Client.describeSnapshots())
			.thenReturn(
					new DescribeSnapshotsResult().withSnapshots(Arrays.asList(
							new Snapshot()
									.withDescription("Created by CreateImage(source_instance) for ami-9687d2fe 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(i-bf72d345) for ami-xx from vol-e7526fac"),
							new Snapshot())));

	Predicate<DescribeVolumesRequest> pred = new Predicate<DescribeVolumesRequest>() {
		@Override
		public boolean test(DescribeVolumesRequest r) {
			Filter filter = r.getFilters().stream().findFirst().get();
			return filter.getName().equals("snapshot-id")
					&& filter.getValues().stream().findFirst().get()
							.equals("test_snapshot");
		}
	};

	DescribeVolumesResult volumesResult = new DescribeVolumesResult()
			.withVolumes(Collections.singletonList(new Volume()
					.withVolumeId("test_volume")));

	when(ec2Client.describeVolumes(awsRqst(pred)))
			.thenReturn(volumesResult);

	aws.deleteStorageArtifacts("test_image");

	verify(ec2Client).deleteSnapshot(
			awsRqst(r -> r.getSnapshotId().equals("test_snapshot")));

	verify(ec2Client).deleteVolume(
			awsRqst(r -> r.getVolumeId().equals("test_volume")));

}
 
开发者ID:krujos,项目名称:data-lifecycle-service-broker,代码行数:45,代码来源:AWSHelperTest.java


示例12: load

import com.amazonaws.services.ec2.model.DescribeSnapshotsResult; //导入依赖的package包/类
@Override
public boolean load(DescribeSnapshotsRequest request,
        ResultCapture<DescribeSnapshotsResult> extractor) {

    return resource.load(request, extractor);
}
 
开发者ID:awslabs,项目名称:aws-sdk-java-resources,代码行数:7,代码来源:SnapshotImpl.java


示例13: doCall

import com.amazonaws.services.ec2.model.DescribeSnapshotsResult; //导入依赖的package包/类
@Override
protected Boolean doCall() {
    LOGGER.info("Checking if AWS EBS snapshot '{}' is ready.", snapshotId);
    DescribeSnapshotsResult result = ec2Client.describeSnapshots(new DescribeSnapshotsRequest().withSnapshotIds(snapshotId));
    return result.getSnapshots() != null && !result.getSnapshots().isEmpty() && "completed".equals(result.getSnapshots().get(0).getState());
}
 
开发者ID:hortonworks,项目名称:cloudbreak,代码行数:7,代码来源:CreateSnapshotReadyStatusCheckerTask.java


示例14: load

import com.amazonaws.services.ec2.model.DescribeSnapshotsResult; //导入依赖的package包/类
/**
 * Makes a call to the service to load this resource's attributes if they
 * are not loaded yet, and use a ResultCapture to retrieve the low-level
 * client response
 * The following request parameters will be populated from the data of this
 * <code>Snapshot</code> resource, and any conflicting parameter value set
 * in the request will be overridden:
 * <ul>
 *   <li>
 *     <b><code>SnapshotIds.0</code></b>
 *         - mapped from the <code>Id</code> identifier.
 *   </li>
 * </ul>
 *
 * <p>
 *
 * @return Returns {@code true} if the resource is not yet loaded when this
 *         method was invoked, which indicates that a service call has been
 *         made to retrieve the attributes.
 * @see DescribeSnapshotsRequest
 */
boolean load(DescribeSnapshotsRequest request,
        ResultCapture<DescribeSnapshotsResult> extractor);
 
开发者ID:awslabs,项目名称:aws-sdk-java-resources,代码行数:24,代码来源:Snapshot.java



注:本文中的com.amazonaws.services.ec2.model.DescribeSnapshotsResult类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java ParserFactory类代码示例发布时间:2022-05-23
下一篇:
Java ResourceManager类代码示例发布时间:2022-05-23
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap