/** * Copyright 2010 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package datameer.awstasks.aws.ec2; import java.util.Arrays; import java.util.List; import awstasks.com.amazonaws.services.ec2.AmazonEC2; import awstasks.com.amazonaws.services.ec2.model.DescribeVolumesRequest; import awstasks.com.amazonaws.services.ec2.model.DescribeVolumesResult; import awstasks.com.amazonaws.services.ec2.model.Filter; import awstasks.com.amazonaws.services.ec2.model.RunInstancesRequest; import awstasks.com.amazonaws.services.ec2.model.Volume; import datameer.awstasks.aws.AbstractAwsIntegrationTest; import datameer.com.google.common.base.Preconditions; public abstract class AbstractEc2IntegrationTest extends AbstractAwsIntegrationTest { public static final String TEST_SECURITY_GROUP = "aws-tasks.test"; public static final String TEST_EBS = "aws-test-ebs"; public static final String TEST_AMI = "ami-205fba49"; public static final String TEST_AMI_WITH_EBS = "ami-84db39ed"; public static final String TEST_USERNAME = "root"; protected static RunInstancesRequest createLaunchConfiguration(int instanceCount) { return createLaunchConfiguration(TEST_AMI, instanceCount); } protected static RunInstancesRequest createEbsLaunchConfiguration(int instanceCount) { return createLaunchConfiguration(TEST_AMI_WITH_EBS, instanceCount); } protected static RunInstancesRequest createLaunchConfiguration(String imageId, int instanceCount) { RunInstancesRequest runRequest = new RunInstancesRequest(imageId, instanceCount, instanceCount); runRequest.setKeyName(_ec2Conf.getPrivateKeyName()); runRequest.setSecurityGroups(Arrays.asList(TEST_SECURITY_GROUP, "default")); return runRequest; } protected Volume findEbsVolume(AmazonEC2 ec2) { DescribeVolumesResult describeVolumes = ec2.describeVolumes(new DescribeVolumesRequest().withFilters(new Filter().withName("tag:Name").withValues(TEST_EBS))); List<Volume> volumes = describeVolumes.getVolumes(); Preconditions.checkArgument(volumes.size() == 1, "expected 1 EBS volume with name tag '%s' but got %s", TEST_EBS, volumes); return volumes.get(0); } }