List of usage examples for com.amazonaws.services.ec2.model TerminateInstancesRequest TerminateInstancesRequest
public TerminateInstancesRequest()
From source file:elasticity.services.AmazonService.java
License:Open Source License
/** * Terminates a VM instance.//from w ww . java 2 s . co m * * @param instanceIp The IP address of the instance to be removed */ public void terminateInstance(String instanceIp) throws Exception { logger.log(Level.INFO, "Terminating instance with IP: " + instanceIp + ".."); String instanceId = ip2id.get(instanceIp); TerminateInstancesRequest terminateInstancesRequest = new TerminateInstancesRequest(); terminateInstancesRequest.withInstanceIds(instanceId); ec2.terminateInstances(terminateInstancesRequest); ip2id.remove(instanceIp); logger.log(Level.INFO, "Terminated instance successfully."); }
From source file:eu.stratosphere.nephele.instance.ec2.FloatingInstance.java
License:Apache License
/** * This method checks if this floating instance has reached the end of its life cycle and, if so, terminates * itself.//from w ww . j a v a 2 s.c om */ public boolean hasLifeCycleEnded() { final long currentTime = System.currentTimeMillis(); final long msremaining = this.leasePeriod - ((currentTime - this.launchTime) % this.leasePeriod); if (msremaining < TIME_THRESHOLD) { // Destroy this instance final AmazonEC2Client client = EC2ClientFactory.getEC2Client(this.awsAccessKey, this.awsSecretKey); final TerminateInstancesRequest tr = new TerminateInstancesRequest(); final LinkedList<String> instanceIDlist = new LinkedList<String>(); instanceIDlist.add(this.instanceID); tr.setInstanceIds(instanceIDlist); client.terminateInstances(tr); return true; } return false; }
From source file:hu.mta.sztaki.lpds.cloud.entice.imageoptimizer.iaashandler.amazontarget.EC2VirtualMachine.java
License:Apache License
@Override protected void terminateInstance() throws VMManagementException { try {//from w w w. ja v a 2 s. co m int requests = reqCounter.decrementAndGet(); if (requests < 0) { Shrinker.myLogger.severe("Terminating shrinking process, too much VM termination requests"); Thread.dumpStack(); } Shrinker.myLogger.info("Instance " + getInstanceId() + " received a terminate request"); TerminateInstancesRequest terminateInstancesRequest = new TerminateInstancesRequest(); terminateInstancesRequest.withInstanceIds(getInstanceIds()); TerminateInstancesResult res = this.amazonEC2Client.terminateInstances(terminateInstancesRequest); Shrinker.myLogger.info("Terminate request dispatched for instance " + getInstanceId()); List<InstanceStateChange> stateChanges = res.getTerminatingInstances(); InstanceStateChange state = null; for (InstanceStateChange stateChange : stateChanges) if (getInstanceId().contains(stateChange.getInstanceId())) state = stateChange; if (state != null) Shrinker.myLogger.info("State of instance " + getInstanceId() + ": " + state.getPreviousState().getName() + " -> " + state.getCurrentState().getName()); else Shrinker.myLogger.info("null state for instance " + getInstanceId()); // re-send terminate if (state == null || !TERMINATED_STATE.equals(state.getCurrentState().getName())) { int timeout = 0; int counter = 1; while (timeout < TERMINATE_TIMEOUT) { try { Thread.sleep(5000); } catch (Exception x) { } Shrinker.myLogger.info("Re-sending (" + counter + "x) terminate request dispatched for instance " + getInstanceId()); try { res = this.amazonEC2Client.terminateInstances(terminateInstancesRequest); stateChanges = res.getTerminatingInstances(); for (InstanceStateChange stateChange : stateChanges) if (getInstanceId().contains(stateChange.getInstanceId())) state = stateChange; if (state != null) Shrinker.myLogger.info("State of instance " + getInstanceId() + ": " + state.getPreviousState().getName() + " -> " + state.getCurrentState().getName()); else Shrinker.myLogger.info("null state for instance " + getInstanceId()); } catch (AmazonServiceException x) { // terminated correctly // it can happen that terminate seemingly didn't succeed for the first time (remains running), // but then the instance id is gone (correctly) so re-sending terminate will cause exception if ("InvalidInstanceID.NotFound".equals(x.getErrorCode())) break; else throw x; } if (state != null && TERMINATED_STATE.equals(state.getCurrentState().getName())) break; timeout += 5000; // repeat every 5 second counter++; } if (timeout >= TERMINATE_TIMEOUT) { Shrinker.myLogger.info("ERROR: Cannot terminate instance: " + getInstanceId()); System.exit(1); } } } catch (AmazonServiceException x) { Shrinker.myLogger.info("terminateInstance error: " + x.getMessage()); throw new VMManagementException("terminateInstance exception", x); } catch (AmazonClientException x) { Shrinker.myLogger.info("terminateInstance error: " + x.getMessage()); throw new VMManagementException("terminateInstance exception", x); } System.out.println("[T" + (Thread.currentThread().getId() % 100) + "] VM terminated: " + getInstanceId() + " " + this.ip + " (@" + new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()) + ")"); }
From source file:jp.aws.test.ec2.EC2Instance.java
License:Apache License
public void terminate(String instanceId) { ArrayList<String> instanceIds = new ArrayList<String>(); instanceIds.add(instanceId);/* w w w .j av a2 s .co m*/ TerminateInstancesRequest terminateInstancesRequest = new TerminateInstancesRequest(); terminateInstancesRequest.setInstanceIds(instanceIds); // ?? clientManager.ec2().terminateInstances(terminateInstancesRequest); }
From source file:jp.primecloud.auto.process.aws.AwsInstanceProcess.java
License:Open Source License
public void terminate(AwsProcessClient awsProcessClient, Long instanceNo) { AwsInstance awsInstance = awsInstanceDao.read(instanceNo); String instanceId = awsInstance.getInstanceId(); // /*from w w w . j av a 2 s. c o m*/ Instance instance = instanceDao.read(instanceNo); processLogger.debug(null, instance, "AwsInstanceDelete", new Object[] { awsProcessClient.getPlatform().getPlatformName(), instanceId }); // ? TerminateInstancesRequest request = new TerminateInstancesRequest(); request.withInstanceIds(instanceId); TerminateInstancesResult result = awsProcessClient.getEc2Client().terminateInstances(request); List<InstanceStateChange> terminatingInstances = result.getTerminatingInstances(); // API?? if (terminatingInstances.size() == 0) { // throw new AutoException("EPROCESS-000107", instanceId); } else if (terminatingInstances.size() > 1) { // ????? AutoException exception = new AutoException("EPROCESS-000108", instanceId); exception.addDetailInfo("result=" + terminatingInstances); throw exception; } // if (log.isInfoEnabled()) { log.info(MessageUtils.getMessage("IPROCESS-100117", instanceId)); } // awsInstance.setStatus(terminatingInstances.get(0).getCurrentState().getName()); awsInstanceDao.update(awsInstance); }
From source file:n3phele.factory.ec2.VirtualServerResource.java
License:Open Source License
/** * Check if a zombie has expired and clean up if it has * /*from www . j av a 2s .com*/ * @param s * virtual server * @return TRUE if zombie */ private boolean checkForZombieExpiry(VirtualServer s) { boolean debugInstance = s.getName().equals("debug"); boolean zombieInstance = s.getName().equals("zombie"); if (zombieInstance || debugInstance) { refreshVirtualServer(s); if (s.getStatus().equals(InstanceStateName.Terminated.toString())) { log.info("Found dead " + s.getName() + " with id " + s.getInstanceId() + " created " + s.getCreated()); manager.delete(s); return true; } long created = s.getCreated().getTime(); long now = new Date().getTime(); long age = ((now - created) % (60 * 60 * 1000)) / 60000; // minutes // into // hourly // cycle if (age > 55 || s.getName().equals("Zombie") || s.getName().equals("Debug") || !s.getStatus().equals(InstanceStateName.Running.toString())) { log.info("Killing " + s.getName() + " with id " + s.getInstanceId() + " created " + s.getCreated()); s.setName(debugInstance ? "Debug" : "Zombie"); update(s); try { AmazonEC2 client = null; client = getEC2Client(s.getAccessKey(), s.getEncryptedKey(), s.getLocation()); TerminateInstancesResult result = client.terminateInstances( (new TerminateInstancesRequest()).withInstanceIds(s.getInstanceId())); log.info("Terminated " + result.getTerminatingInstances().size()); } catch (Exception e) { log.log(Level.SEVERE, "Failed to delete zombie", e); } return true; } } return false; }
From source file:n3phele.factory.ec2.VirtualServerResource.java
License:Open Source License
private void deleteInstance(VirtualServer item, UUID reference, int sequence) throws Exception { String instanceId = item.getInstanceId(); try {/* www. jav a 2s . c om*/ String spotId = item.getSpotId(); boolean isSpotImage = (spotId != null) && spotId.length() != 0; if (isSpotImage) { try { cancelSpotVMRequest(item); } catch (Exception e) { // ignore } } if (!item.getStatus().equals("Terminated") && instanceId != null && instanceId.length() > 0) { AmazonEC2 client = null; client = getEC2Client(item.getAccessKey(), item.getEncryptedKey(), item.getLocation()); TerminateInstancesResult result = client .terminateInstances((new TerminateInstancesRequest()).withInstanceIds(instanceId)); if (result.getTerminatingInstances().size() == 0) { // Openstack log.warning("Termination returned " + result); if (updateStatus(item, "Terminated", reference, sequence)) { update(item); } } else { InstanceState now = result.getTerminatingInstances().get(0).getCurrentState(); InstanceState previous = result.getTerminatingInstances().get(0).getPreviousState(); log.warning("Deleting instanceId " + instanceId + " from " + previous + " now " + now); if (updateStatus(item, now.getName(), reference, sequence)) { update(item); } } } else { if (updateStatus(item, "Terminated", reference, sequence)) { update(item); } } } catch (Exception e) { log.log(Level.SEVERE, "Cleanup delete of instanceId " + instanceId, e); throw e; } }
From source file:net.roboconf.iaas.ec2.IaasEc2.java
License:Apache License
@Override public void terminateVM(String instanceId) throws IaasException { try {// w w w. j a v a 2 s.c om TerminateInstancesRequest terminateInstancesRequest = new TerminateInstancesRequest(); terminateInstancesRequest.withInstanceIds(instanceId); this.ec2.terminateInstances(terminateInstancesRequest); } catch (AmazonServiceException e) { this.logger.severe("An error occurred on Amazon while terminating the machine. " + e.getMessage()); throw new IaasException(e); } catch (AmazonClientException e) { this.logger.severe("An error occurred while terminating a machine on Amazon EC2. " + e.getMessage()); throw new IaasException(e); } }
From source file:net.roboconf.target.ec2.internal.Ec2IaasHandler.java
License:Apache License
@Override public void terminateMachine(TargetHandlerParameters parameters, String machineId) throws TargetException { this.logger.fine("Terminating machine '" + machineId + "'."); cancelMachineConfigurator(machineId); try {/*from w w w . ja v a 2 s .c om*/ AmazonEC2 ec2 = createEc2Client(parameters.getTargetProperties()); TerminateInstancesRequest terminateInstancesRequest = new TerminateInstancesRequest(); terminateInstancesRequest.withInstanceIds(machineId); ec2.terminateInstances(terminateInstancesRequest); } catch (Exception e) { this.logger.severe("An error occurred while terminating a machine on Amazon EC2. " + e.getMessage()); throw new TargetException(e); } }
From source file:org.apache.airavata.gfac.ec2.AmazonUtil.java
License:Apache License
/** * Terminate instances//from w w w.j ava 2s . c om * * @param instanceIds instance ids of the running instances. */ public static void terminateInstances(String... instanceIds) { // terminate TerminateInstancesRequest request = new TerminateInstancesRequest(); getEC2Client().terminateInstances(request.withInstanceIds(instanceIds)); }