Example usage for com.amazonaws.services.ec2.model TerminateInstancesRequest TerminateInstancesRequest

List of usage examples for com.amazonaws.services.ec2.model TerminateInstancesRequest TerminateInstancesRequest

Introduction

In this page you can find the example usage for com.amazonaws.services.ec2.model TerminateInstancesRequest TerminateInstancesRequest.

Prototype

public TerminateInstancesRequest(java.util.List<String> instanceIds) 

Source Link

Document

Constructs a new TerminateInstancesRequest object.

Usage

From source file:com.github.vatbub.awsvpnlauncher.Main.java

License:Apache License

/**
 * Terminates all AWS instances that were started using this app
 *
 * @see #launch()//ww  w .  j  a  v a  2 s . co m
 */
private static void terminate() {
    String instanceIdsPrefValue = prefs.getPreference("instanceIDs", "");
    if (instanceIdsPrefValue.equals("")) {
        throw new IllegalStateException(
                "No instance was started with this script so no instance can be terminated. Launch a new instance using the launch command prior to terminate it.");
    }

    FOKLogger.info(Main.class.getName(), "Sending the termination request to AWS EC2...");
    List<String> instanceIds = Arrays.asList(instanceIdsPrefValue.split(";"));
    for (String instanceId : instanceIds) {
        try {
            List<String> instanceIdCopy = new ArrayList<>();
            instanceIdCopy.add(instanceId);
            TerminateInstancesRequest request = new TerminateInstancesRequest(instanceIdCopy);
            TerminateInstancesResult result = client.terminateInstances(request);

            for (InstanceStateChange item : result.getTerminatingInstances()) {
                FOKLogger.info(Main.class.getName(),
                        "Terminated instance: " + item.getInstanceId() + ", instance state changed from "
                                + item.getPreviousState() + " to " + item.getCurrentState());
            }
        } catch (AmazonEC2Exception e) {
            FOKLogger.severe(Main.class.getName(),
                    "Could not terminate instance " + instanceId + ": " + e.getMessage());
        }
    }

    try {
        String cloudflareAPIKey = prefs.getPreference(Property.cloudflareAPIKey);
        String cloudflareEmail = prefs.getPreference(Property.cloudflareEmail);
        String targetDomain = prefs.getPreference(Property.cloudflareTargetZoneId);
        String cloudflareRecordID = prefs.getPreference("cloudflareRecordID", "0");

        CloudflareAccess cloudflareAccess = new CloudflareAccess(cloudflareEmail, cloudflareAPIKey);
        DNSDeleteRecord cloudFlareDeleteDNSRecordRequest = new DNSDeleteRecord(cloudflareAccess, targetDomain,
                cloudflareRecordID);

        FOKLogger.info(Main.class.getName(), "Deleting the DNS record on cloudflare...");
        JSONObject cloudflareResult = cloudFlareDeleteDNSRecordRequest.executeBasic();

        if (cloudflareResult == null) {
            FOKLogger.severe(Main.class.getName(),
                    "Something went wrong while deleting the DNS record for the vpn server on Cloudflare.");
        } else {
            prefs.setPreference("cloudflareRecordID", "0");
            FOKLogger.info(Main.class.getName(), "The DNS record for the VPN Server was successfully deleted");
            FOKLogger.fine(Main.class.getName(), "Cloudflare request result:");
            FOKLogger.fine(Main.class.getName(), cloudflareResult.toString());
        }
    } catch (PropertyNotConfiguredException e) {
        FOKLogger.info(Main.class.getName(),
                "Cloudflare config is not defined, not sending the ip to cloudflare");
    } catch (CloudflareError e) {
        FOKLogger.log(Main.class.getName(), Level.SEVERE,
                "Something went wrong while deleting the DNS record for the vpn server on Cloudflare.", e);
    }

    // Delete the config value
    prefs.setPreference("instanceIDs", "");
}

From source file:com.metamx.druid.indexing.coordinator.scaling.EC2AutoScalingStrategy.java

License:Open Source License

@Override
public AutoScalingData<Instance> terminate(List<String> ips) {
    if (ips.isEmpty()) {
        return new AutoScalingData<Instance>(Lists.<String>newArrayList(), Lists.<Instance>newArrayList());
    }/*from   w w  w  . j ava 2  s  .  c  o  m*/

    DescribeInstancesResult result = amazonEC2Client.describeInstances(
            new DescribeInstancesRequest().withFilters(new Filter("private-ip-address", ips)));

    List<Instance> instances = Lists.newArrayList();
    for (Reservation reservation : result.getReservations()) {
        instances.addAll(reservation.getInstances());
    }

    try {
        log.info("Terminating instance[%s]", instances);
        amazonEC2Client.terminateInstances(
                new TerminateInstancesRequest(Lists.transform(instances, new Function<Instance, String>() {
                    @Override
                    public String apply(Instance input) {
                        return input.getInstanceId();
                    }
                })));

        return new AutoScalingData<Instance>(Lists.transform(ips, new Function<String, String>() {
            @Override
            public String apply(@Nullable String input) {
                return String.format("%s:%s", input, config.getWorkerPort());
            }
        }), instances);
    } catch (Exception e) {
        log.error(e, "Unable to terminate any instances.");
    }

    return null;
}

From source file:com.metamx.druid.merger.coordinator.scaling.EC2AutoScalingStrategy.java

License:Open Source License

@Override
public AutoScalingData<Instance> terminate(List<String> ids) {
    DescribeInstancesResult result = amazonEC2Client.describeInstances(
            new DescribeInstancesRequest().withFilters(new Filter("private-ip-address", ids)));

    List<Instance> instances = Lists.newArrayList();
    for (Reservation reservation : result.getReservations()) {
        instances.addAll(reservation.getInstances());
    }/*from  www .j av  a  2  s.  c om*/

    try {
        log.info("Terminating instance[%s]", instances);
        amazonEC2Client.terminateInstances(
                new TerminateInstancesRequest(Lists.transform(instances, new Function<Instance, String>() {
                    @Override
                    public String apply(Instance input) {
                        return input.getInstanceId();
                    }
                })));

        return new AutoScalingData<Instance>(Lists.transform(ids, new Function<String, String>() {
            @Override
            public String apply(@Nullable String input) {
                return String.format("%s:%s", input, config.getWorkerPort());
            }
        }), instances);
    } catch (Exception e) {
        log.error(e, "Unable to terminate any instances.");
    }

    return null;
}

From source file:com.netflix.simianarmy.aws.AWSClient.java

License:Apache License

/** {@inheritDoc} */
@Override//www .j  a v a 2s .com
public void terminateInstance(String instanceId) {
    try {
        ec2Client().terminateInstances(new TerminateInstancesRequest(Arrays.asList(instanceId)));
    } catch (AmazonServiceException e) {
        if (e.getErrorCode().equals("InvalidInstanceID.NotFound")) {
            throw new NotFoundException("AWS instance " + instanceId + " not found", e);
        }
        throw e;
    }
}

From source file:com.netflix.simianarmy.client.aws.AWSClient.java

License:Apache License

/** {@inheritDoc} */
@Override//w  w w  . j a v a2s .co m
public void terminateInstance(String instanceId) {
    Validate.notEmpty(instanceId);
    LOGGER.info(String.format("Terminating instance %s in region %s.", instanceId, region));
    try {
        ec2Client().terminateInstances(new TerminateInstancesRequest(Arrays.asList(instanceId)));
    } catch (AmazonServiceException e) {
        if (e.getErrorCode().equals("InvalidInstanceID.NotFound")) {
            throw new NotFoundException("AWS instance " + instanceId + " not found", e);
        }
        throw e;
    }
}

From source file:com.norbl.cbp.ppe.Ec2Wrangler.java

License:Open Source License

/** Terminates the instances with the specified instance IDs.
 *
 * @param instanceIDs/*from w w  w  . ja va2  s . co m*/
 * @return
 */
public TerminateInstancesResult terminateInstances(List<String> instanceIDs) {
    TerminateInstancesRequest term = new TerminateInstancesRequest(instanceIDs);
    TerminateInstancesResult r = ec2Client.terminateInstances(term);
    deleteClusterGroupIfNecessary();
    return (r);
}

From source file:com.vmware.photon.controller.model.adapters.awsadapter.AWSInstanceService.java

License:Open Source License

private void deleteInstance(AWSAllocation aws) {

    if (aws.computeRequest.isMockRequest
            || aws.computeRequest.requestType == InstanceRequestType.DELETE_DOCUMENTS_ONLY) {
        deleteComputeResource(this, aws.child, aws.computeRequest);
        return;//from   w  ww  .  j a  v  a2s  .  c  o m
    }

    String instanceId = aws.child.id;
    if (instanceId == null) {
        aws.error = new IllegalStateException("AWS InstanceId not available");
        aws.stage = AWSStages.ERROR;
        handleAllocation(aws);
        return;
    }

    List<String> instanceIdList = new ArrayList<String>();
    instanceIdList.add(instanceId);
    TerminateInstancesRequest termRequest = new TerminateInstancesRequest(instanceIdList);
    StatelessService service = this;
    AsyncHandler<TerminateInstancesRequest, TerminateInstancesResult> terminateHandler = buildTerminationCallbackHandler(
            service, aws.computeRequest, aws.child, aws.amazonEC2Client, instanceId, aws.taskExpirationMicros);
    aws.amazonEC2Client.terminateInstancesAsync(termRequest, terminateHandler);
}

From source file:com.xebialabs.overcast.host.Ec2CloudHost.java

License:Apache License

@Override
public void teardown() {
    ec2.terminateInstances(new TerminateInstancesRequest(newArrayList(instanceId)));
}

From source file:edu.umass.cs.aws.support.AWSEC2.java

License:Apache License

/**
 * Terminate an instance//from ww w . j ava2 s. c o  m
 *
 * @param ec2
 * @param createdInstanceId
 */
public static void terminateInstance(AmazonEC2 ec2, String createdInstanceId) {
    System.out.println("Terminating Instance:" + createdInstanceId);
    List<String> instanceIds = new LinkedList<>();
    instanceIds.add(createdInstanceId);
    TerminateInstancesRequest tir = new TerminateInstancesRequest(instanceIds);
    ec2.terminateInstances(tir);
}

From source file:eu.optimis.interopt.provider.aws.AmazonClient.java

License:Apache License

@Override
public void terminate(String serviceId) throws UnknownServiceException {

    AmazonEC2 ec2 = getAmazonEC2Client();
    log.info("Terminating service...");

    List<VMProperties> vms = queryServiceProperties(serviceId);
    List<String> instances = new ArrayList<String>();
    for (VMProperties vm : vms) {
        if (!(vm.getStatus().equals(InstanceStateName.Terminated.toString())
                || vm.getStatus().equals(InstanceStateName.ShuttingDown.toString()))) {
            instances.add(vm.getId());/*from ww  w.j a v  a2  s  .com*/
            log.debug("Instance to stop: " + vm.getId());
        }
    }

    if (instances.size() == 0) {
        log.info("There are no instances to be terminated!");
        return;
    }

    TerminateInstancesRequest req = new TerminateInstancesRequest(instances);
    try {
        ec2.terminateInstances(req);
    } catch (AmazonServiceException e) {
        log.error("Service termination has failed: ");
        log.error(printServiceException(e));
        throw new UnknownServiceException("Service termination has failed: " + e.getMessage());
    }
}