/** * Construct a synchronous implementation of AmazonEC2 using the current builder configuration. * * @param params * Current builder configuration represented as a parameter object. * @return Fully configured implementation of AmazonEC2. */ @Override protected AmazonEC2 build(AwsSyncClientParams params) { return new AmazonEC2Client(params); }
AmazonEC2Client ec2 = new AmazonEC2Client(new PersistS3.H2OAWSCredentialsProviderChain()); ec2.setEndpoint("ec2." + region + ".amazonaws.com"); DescribeInstancesResult describeInstancesResult = ec2.describeInstances(); List<Reservation> reservations = describeInstancesResult.getReservations(); List<Instance> instances = new ArrayList<Instance>(); group.withStrategy(PlacementStrategy.Cluster); try { ec2.createPlacementGroup(group); } catch( AmazonServiceException ex ) { if( !"InvalidPlacementGroup.Duplicate".equals(ex.getErrorCode()) ) run.withUserData(new String(Base64.encodeBase64(cloudConfig.getBytes()))); RunInstancesResult runRes = ec2.runInstances(run); ArrayList<String> ids = new ArrayList<String>(); for( Instance instance : runRes.getReservation().getInstances() )
client.setEndpoint( AmazonUtils.getEndpoint( stack.getDataCenter() ) ); runInstancesResult = client.runInstances( runInstancesRequest ); ctr.setTags( tags ); ctr.withResources( instanceIds.get( i ) ); client.createTags( ctr );
@Override public AmazonEC2 get() { AmazonEC2Client amazonEC2 = new AmazonEC2Client(awsClusterSecurityManager.getCredentialsProvider()); amazonEC2.setRegion(region); return amazonEC2; } });
private void init() { exceptionUnmarshallers.add(new LegacyErrorUnmarshaller(com.amazonaws.services.ec2.model.AmazonEC2Exception.class)); setServiceNameIntern(DEFAULT_SIGNING_NAME); setEndpointPrefix(ENDPOINT_PREFIX); // calling this.setEndPoint(...) will also modify the signer accordingly this.setEndpoint("https://ec2.us-east-1.amazonaws.com"); HandlerChainFactory chainFactory = new HandlerChainFactory(); requestHandler2s.addAll(chainFactory.newRequestHandlerChain("/com/amazonaws/services/ec2/request.handlers")); requestHandler2s.addAll(chainFactory.newRequestHandler2Chain("/com/amazonaws/services/ec2/request.handler2s")); requestHandler2s.addAll(chainFactory.getGlobalHandlers()); }
/** * @param accessKey * @param secretKey * @return */ public static AmazonEC2Client getEC2Client( String accessKey, String secretKey ) { AWSCredentialsProvider provider; if ( accessKey != null && secretKey != null ) { AWSCredentials credentials = new BasicAWSCredentials( accessKey, secretKey ); provider = new StaticCredentialsProvider( credentials ); } else { provider = new DefaultAWSCredentialsProviderChain(); } AmazonEC2Client client = new AmazonEC2Client( provider ); ClientConfiguration configuration = new ClientConfiguration(); configuration.setProtocol( Protocol.HTTPS ); client.setConfiguration( configuration ); return client; }
private static AmazonEC2 connect(final String credentialsId, final String region) { final AmazonWebServicesCredentials credentials = AWSCredentialsHelper.getCredentials(credentialsId, Jenkins.getInstance()); final AmazonEC2Client client = credentials != null ? new AmazonEC2Client(credentials) : new AmazonEC2Client(); if (region != null) client.setEndpoint("https://ec2." + region + ".amazonaws.com/"); return client; }
private AmazonEC2Client createEc2Client(AWSCredentials environmentCredentials) throws Exception { AmazonEC2Client ec2Client = new AmazonEC2Client(environmentCredentials); if (awsEndpoint != null) { ec2Client.setEndpoint(awsEndpoint); } // Wait for the access key to register with AWS. Exception exception = null; for (int i = 0; i < 120; i++) { try { ec2Client.describeInstances(); if (i > 0) { System.out.println("done!"); } return ec2Client; } catch (AmazonServiceException e) { if (i == 0) { System.out.print("Waiting for access key to register with AWS"); } exception = e; System.out.print("."); Uninterruptibles.sleepUninterruptibly(1, TimeUnit.SECONDS); } } System.out.println("FAILED!"); throw exception; }
@Override public DescribeInstancesResult describeInstances() { return describeInstances(new DescribeInstancesRequest()); }
AmazonEC2Client ec2Client = new AmazonEC2Client(); DescribeInstancesResult describeInstanceResult = ec2Client.describeInstances(); List<Reservation> reservations = describeInstanceResult.getReservations(); for (Reservation reservation : reservations) { for (Instance instance : reservation.getInstances()) { System.out.println(instance.getVpcId()); } }
clientConfig.setSocketTimeout(config.getInt("socketTimeout") * 1000); final AmazonEC2Client bootstrapEC2Client = new AmazonEC2Client(awsCredentialsProviderChain); ec2Clients = Maps.newHashMap(); rdsClients = Maps.newHashMap(); elasticacheClients = Maps.newHashMap(); final List<Region> ec2Regions = bootstrapEC2Client.describeRegions().getRegions(); for (Region region : ec2Regions) { final String regionName = region.getRegionName(); log.debug("Adding ec2 region {}", region); final AmazonEC2Client ec2Client = new AmazonEC2Client(awsCredentialsProviderChain, clientConfig); ec2Client.setEndpoint(endpoint); ec2Clients.put(regionName, ec2Client);
); EasyMock.expect(amazonEC2Client.runInstances(EasyMock.anyObject(RunInstancesRequest.class))).andReturn( runInstancesResult ); EasyMock.expect(amazonEC2Client.describeInstances(EasyMock.anyObject(DescribeInstancesRequest.class))) .andReturn(describeInstancesResult); EasyMock.expect(amazonEC2Client.terminateInstances(EasyMock.anyObject(TerminateInstancesRequest.class))) .andReturn(null); EasyMock.replay(amazonEC2Client);
CreateTagsRequest createTagsRequest = new CreateTagsRequest(); createTagsRequest.withResources(ids).withTags(new Tag("Name", NAME)); ec2.createTags(createTagsRequest); tagsDone = true; DescribeInstancesResult result = ec2.describeInstances(request); List<Reservation> reservations = result.getReservations(); List<Instance> instances = new ArrayList<Instance>();
/** * All public methods except <code>terminateInstances</code> use supplied arguments * to set the appropriate data center. So this is only needed before calling <code>terminateInstances</code>. * * @param dataCenter Ec2Client's endpoint, us-east-1, us-west-2 etc. */ @Override public void setDataCenter( final String dataCenter ) { client.setEndpoint( AmazonUtils.getEndpoint( dataCenter ) ); }
private List<Instance> startInstances(AmazonEC2Client ec2, String AMI_ID, String INS_TYPE, ExecutionContext executionContext) throws AmazonServiceException { // start only 1 instance RunInstancesRequest request = new RunInstancesRequest(AMI_ID, 1, 1); request.setKeyName(KEY_PAIR_NAME); request.setInstanceType(INS_TYPE); RunInstancesResult result = ec2.runInstances(request); List<Instance> instances = result.getReservation().getInstances(); while (!allInstancesStateEqual(instances, InstanceStateName.Running)) { // instance status should not be Terminated if (anyInstancesStateEqual(instances, InstanceStateName.Terminated)) { throw new AmazonClientException("Some Instance is terminated before running a job"); } // notify the status for (Instance ins: instances) { // TODO //executionContext.getNotificationService().info("EC2 Instance " +ins.getInstanceId() + " is " + ins.getState().getName().toString()); } try { Thread.sleep(SLEEP_TIME_SECOND * 1000l); } catch (Exception ex) { // no op } DescribeInstancesRequest describeInstancesRequest = new DescribeInstancesRequest(); describeInstancesRequest.setInstanceIds(getInstanceIDs(instances)); DescribeInstancesResult describeInstancesResult = ec2.describeInstances(describeInstancesRequest); instances = describeInstancesResult.getReservations().get(0).getInstances(); } log.info("All instances is running"); return instances; }
public void terminateInstances(final Collection<String> instanceIds) { final DescribeInstancesResult describeInstancesResult = this.ec2client.describeInstances(new DescribeInstancesRequest().withInstanceIds(instanceIds)); for (final Reservation reservation : describeInstancesResult.getReservations()) { for (final Instance instance : reservation.getInstances()) { if (!this.hasTag(instance, this.instanceTag)) { System.out.format("Aborting since instance %s does not look like a gatling load generator.%n", instance.getInstanceId()); return; } System.out.format("Instance %s looks like a gatling load generator.%n", instance.getInstanceId()); } } System.out.println("Terminating " + instanceIds); this.ec2client.terminateInstances(new TerminateInstancesRequest(new ArrayList<String>(instanceIds))); }
private Map<String, Instance> launchEC2Instances(final String instanceType, final RunInstancesRequestBuilder runInstancesRequestBuilder, final boolean createIfNonExistent) { final Map<String, Instance> instances = this.findExistingInstances(instanceType); // If instances is empty, that means we did not find any to reuse so let's create them if (instances.isEmpty() && createIfNonExistent) { final RunInstancesRequest request = runInstancesRequestBuilder.build(); System.out.println(String.format( "Did not find any existing instances, starting new ones with security group: '%s' and subnet: '%s'", request.getSecurityGroups().get(0), request.getSubnetId() == null ? "" : request.getSubnetId())); final RunInstancesResult runInstancesResult = this.ec2client.runInstances(request); for (final Instance instance : runInstancesResult.getReservation().getInstances()) { System.out.println(instance.getInstanceId() + " launched"); instances.put(instance.getInstanceId(), instance); } // Tag instances on creation. Adding the tag enables us to ensure we are terminating a load generator instance. this.ec2client.createTags(new CreateTagsRequest() .withResources(instances.keySet()) .withTags(this.instanceTag)); final DescribeInstancesRequest describeInstancesRequest = new DescribeInstancesRequest().withInstanceIds(instances.keySet()); this.startAllInstances(instances, describeInstancesRequest); } return instances; }
throw new RuntimeException("The client is not initialized"); runInstancesResult = client.runInstances(request); } catch (AmazonServiceException e) {
public static AmazonEC2Client getClient(EC2ServiceContext context) { AmazonEC2Client client = newAmazonEC2Client(context); if (context.getTimeOffsetInSeconds().isPresent()) { client.setTimeOffset(context.getTimeOffsetInSeconds().get()); } client.setRegion(RegionUtils.getRegion(context.getRegion())); if (context.getEndpoint().isPresent()) { client.setEndpoint(context.getEndpoint().get()); } return client; }
private void tagInstancesForJob(String jobFlowId) { DescribeInstancesResult r=ec2Client.describeInstances( new DescribeInstancesRequest().withFilters( new Filter().withName("tag:aws:elasticmapreduce:job-flow-id").withValues(jobFlowId) ) ); List<String> clusterInstances=newArrayList(); for(Reservation that:r.getReservations()) { for(Instance i:that.getInstances()) { logger.info("Adding monitoring for instance " + i.getInstanceId()); clusterInstances.add(i.getInstanceId()); } } ec2Client.monitorInstances(new MonitorInstancesRequest(clusterInstances)); };