use of com.amazonaws.services.ec2.model.DescribeInstancesRequest in project photon-model by vmware.
the class TestAWSSetupUtils method checkInstancesStarted.
/**
* Checks if all the instances represented by the list of passed in instanceIds have been turned
* ON.
*
* @return
*/
public static void checkInstancesStarted(VerificationHost host, AmazonEC2AsyncClient client, List<String> instanceIds, List<Boolean> provisioningFlags) throws Throwable {
AWSEnumerationAsyncHandler enumerationHandler = new AWSEnumerationAsyncHandler(host, AWSEnumerationAsyncHandler.MODE.CHECK_START, provisioningFlags, null, null, null, null);
DescribeInstancesRequest request = new DescribeInstancesRequest().withInstanceIds(instanceIds);
client.describeInstancesAsync(request, enumerationHandler);
host.waitFor("Waiting to get response from AWS ", () -> {
return enumerationHandler.responseReceived;
});
}
use of com.amazonaws.services.ec2.model.DescribeInstancesRequest in project photon-model by vmware.
the class TestAWSSetupUtils method checkInstancesDeleted.
/**
* Checks if a newly deleted instance has its status set to terminated.
*
* @return
*/
public static void checkInstancesDeleted(AmazonEC2AsyncClient client, VerificationHost host, List<String> instanceIdsToDelete, ArrayList<Boolean> deletionFlags) throws Throwable {
AWSEnumerationAsyncHandler enumerationHandler = new AWSEnumerationAsyncHandler(host, AWSEnumerationAsyncHandler.MODE.CHECK_TERMINATION, null, deletionFlags, null, null, null);
DescribeInstancesRequest request = new DescribeInstancesRequest().withInstanceIds(instanceIdsToDelete);
client.describeInstancesAsync(request, enumerationHandler);
// Waiting to get a response from AWS before the state computation is done for the list of
// VMs.
host.waitFor("Waiting to get response from AWS ", () -> {
return enumerationHandler.responseReceived;
});
}
use of com.amazonaws.services.ec2.model.DescribeInstancesRequest in project photon-model by vmware.
the class TestAWSSetupUtils method getBaseLineInstanceCount.
/**
* Gets the instance count of non-terminated instances on the AWS endpoint. This is used to run
* the asserts and validate the results for the data that is collected during enumeration.This
* also calculates the compute descriptions that will be used to represent the instances that
* were discovered on the AWS endpoint. Further factoring in the
*
* @throws Throwable
*/
public static BaseLineState getBaseLineInstanceCount(VerificationHost host, AmazonEC2AsyncClient client, List<String> testComputeDescriptions) throws Throwable {
BaseLineState baseLineState = new BaseLineState();
AWSEnumerationAsyncHandler enumerationHandler = new AWSEnumerationAsyncHandler(host, AWSEnumerationAsyncHandler.MODE.GET_COUNT, null, null, null, testComputeDescriptions, baseLineState);
DescribeInstancesRequest request = new DescribeInstancesRequest();
Filter runningInstanceFilter = getAWSNonTerminatedInstancesFilter();
request.getFilters().add(runningInstanceFilter);
client.describeInstancesAsync(request, enumerationHandler);
host.waitFor("Error waiting to get base line instance count from AWS in test ", () -> {
return baseLineState.isCountPopulated;
});
return baseLineState;
}
use of com.amazonaws.services.ec2.model.DescribeInstancesRequest in project photon-model by vmware.
the class TestAWSSetupUtils method getEC2InstanceIdsAssociatedWithVpcId.
/**
* Get a list of all EC2 instance ids associated with a given VPC id.
*/
public static List<String> getEC2InstanceIdsAssociatedWithVpcId(AmazonEC2AsyncClient client, String vpcId) {
DescribeInstancesRequest req = new DescribeInstancesRequest();
if (vpcId != null) {
req.withFilters(new Filter(AWS_VPC_ID_FILTER, Collections.singletonList(vpcId)));
}
DescribeInstancesResult instancesResult = client.describeInstances(req);
return instancesResult == null ? Collections.emptyList() : instancesResult.getReservations().get(0).getInstances().stream().map(instance -> instance.getInstanceId()).collect(Collectors.toList());
}
use of com.amazonaws.services.ec2.model.DescribeInstancesRequest in project tutorials by eugenp.
the class EC2Application method main.
public static void main(String[] args) {
// Set up the client
AmazonEC2 ec2Client = AmazonEC2ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(credentials)).withRegion(Regions.US_EAST_1).build();
// Create a security group
CreateSecurityGroupRequest createSecurityGroupRequest = new CreateSecurityGroupRequest().withGroupName("BaeldungSecurityGroup").withDescription("Baeldung Security Group");
ec2Client.createSecurityGroup(createSecurityGroupRequest);
// Allow HTTP and SSH traffic
IpRange ipRange1 = new IpRange().withCidrIp("0.0.0.0/0");
IpPermission ipPermission1 = new IpPermission().withIpv4Ranges(Arrays.asList(new IpRange[] { ipRange1 })).withIpProtocol("tcp").withFromPort(80).withToPort(80);
IpPermission ipPermission2 = new IpPermission().withIpv4Ranges(Arrays.asList(new IpRange[] { ipRange1 })).withIpProtocol("tcp").withFromPort(22).withToPort(22);
AuthorizeSecurityGroupIngressRequest authorizeSecurityGroupIngressRequest = new AuthorizeSecurityGroupIngressRequest().withGroupName("BaeldungSecurityGroup").withIpPermissions(ipPermission1, ipPermission2);
ec2Client.authorizeSecurityGroupIngress(authorizeSecurityGroupIngressRequest);
// Create KeyPair
CreateKeyPairRequest createKeyPairRequest = new CreateKeyPairRequest().withKeyName("baeldung-key-pair");
CreateKeyPairResult createKeyPairResult = ec2Client.createKeyPair(createKeyPairRequest);
String privateKey = createKeyPairResult.getKeyPair().getKeyMaterial();
// See what key-pairs you've got
DescribeKeyPairsRequest describeKeyPairsRequest = new DescribeKeyPairsRequest();
DescribeKeyPairsResult describeKeyPairsResult = ec2Client.describeKeyPairs(describeKeyPairsRequest);
// Launch an Amazon Instance
RunInstancesRequest runInstancesRequest = // https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html | https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/usingsharedamis-finding.html
new RunInstancesRequest().withImageId("ami-97785bed").withInstanceType(// https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html
"t2.micro").withMinCount(1).withMaxCount(1).withKeyName(// optional - if not present, can't connect to instance
"baeldung-key-pair").withSecurityGroups("BaeldungSecurityGroup");
String yourInstanceId = ec2Client.runInstances(runInstancesRequest).getReservation().getInstances().get(0).getInstanceId();
// Start an Instance
StartInstancesRequest startInstancesRequest = new StartInstancesRequest().withInstanceIds(yourInstanceId);
ec2Client.startInstances(startInstancesRequest);
// Monitor Instances
MonitorInstancesRequest monitorInstancesRequest = new MonitorInstancesRequest().withInstanceIds(yourInstanceId);
ec2Client.monitorInstances(monitorInstancesRequest);
UnmonitorInstancesRequest unmonitorInstancesRequest = new UnmonitorInstancesRequest().withInstanceIds(yourInstanceId);
ec2Client.unmonitorInstances(unmonitorInstancesRequest);
// Reboot an Instance
RebootInstancesRequest rebootInstancesRequest = new RebootInstancesRequest().withInstanceIds(yourInstanceId);
ec2Client.rebootInstances(rebootInstancesRequest);
// Stop an Instance
StopInstancesRequest stopInstancesRequest = new StopInstancesRequest().withInstanceIds(yourInstanceId);
ec2Client.stopInstances(stopInstancesRequest).getStoppingInstances().get(0).getPreviousState().getName();
// Describe an Instance
DescribeInstancesRequest describeInstancesRequest = new DescribeInstancesRequest();
DescribeInstancesResult response = ec2Client.describeInstances(describeInstancesRequest);
System.out.println(response.getReservations().get(0).getInstances().get(0).getKernelId());
}
Aggregations