List of usage examples for com.amazonaws.services.ec2.model InstanceStateName Running
InstanceStateName Running
To view the source code for com.amazonaws.services.ec2.model InstanceStateName Running.
Click Source Link
From source file:com.carrotgarden.maven.aws.ecc.CarrotElasticCompute.java
License:BSD License
/** * http://shlomoswidler.com/2009/07/ec2-instance-life-cycle.html *///w w w . ja va 2 s . c o m public void instanceStart(final String instanceId) throws Exception { final Instance instance = findInstance(instanceId); final InstanceStateName state = stateFrom(instance); logger.info("start: current state=" + state); switch (state) { case Running: return; case Pending: waitForIstanceState(instanceId, InstanceStateName.Running); return; case Stopped: break; case Stopping: waitForIstanceState(instanceId, InstanceStateName.Stopped); break; case ShuttingDown: case Terminated: throw new IllegalStateException("start: dead instance"); default: throw new IllegalStateException("start: unknown state"); } final StartInstancesRequest request = new StartInstancesRequest(); request.setInstanceIds(wrapList(instanceId)); final StartInstancesResult result = amazonClient.startInstances(request); waitForIstanceState(instanceId, InstanceStateName.Running); }
From source file:com.carrotgarden.maven.aws.ecc.CarrotElasticCompute.java
License:BSD License
/** * http://shlomoswidler.com/2009/07/ec2-instance-life-cycle.html */// w w w. j ava 2 s . co m public void instanceStop(final String instanceId) throws Exception { final Instance instance = findInstance(instanceId); final InstanceStateName state = stateFrom(instance); logger.info("stop: current state=" + state); switch (state) { case Pending: waitForIstanceState(instanceId, InstanceStateName.Running); case Running: break; case Stopping: waitForIstanceState(instanceId, InstanceStateName.Stopped); case Stopped: case Terminated: case ShuttingDown: return; default: throw new IllegalStateException("start: unknown state"); } final StopInstancesRequest request = new StopInstancesRequest(); request.setInstanceIds(wrapList(instanceId)); final StopInstancesResult result = amazonClient.stopInstances(request); waitForIstanceState(instanceId, InstanceStateName.Stopped); }
From source file:com.carrotgarden.maven.aws.ecc.CarrotElasticCompute.java
License:BSD License
/** * stop instance and take image snapshot *///from w w w. j a v a 2s.c o m public Image imageCreate(final String instanceId, final String name, final String description) throws Exception { logger.info("ensure instance state : instanceId=" + instanceId); final InstanceStateName state = stateFrom(instanceId); final boolean wasRunning; switch (state) { case Pending: waitForIstanceState(instanceId, InstanceStateName.Running); case Running: wasRunning = true; break; case Stopping: waitForIstanceState(instanceId, InstanceStateName.Stopped); case Stopped: wasRunning = false; break; default: throw new Exception("image create : invalid instance state=" + state); } if (wasRunning) { instanceStop(instanceId); } final CreateImageRequest request = new CreateImageRequest(); request.setInstanceId(instanceId); request.setName(name); request.setDescription(description); final CreateImageResult result = amazonClient.createImage(request); final String imageId = result.getImageId(); logger.info("ensure image state: imageId=" + imageId); final Image image = waitForImageCreate(imageId); if (wasRunning) { instanceStart(instanceId); } return image; }
From source file:com.dtolabs.rundeck.ec2.NodeGenerator.java
License:Apache License
private static Set<Instance> performQuery(AWSCredentials credentials, final String endPoint, final ArrayList<String> filterParams) { AmazonEC2Client ec2 = new AmazonEC2Client(credentials); if (null != endPoint && !"".equals(endPoint) && !"-".equals(endPoint)) { ec2.setEndpoint(endPoint);//ww w .ja v a2 s . c o m } //create "running" filter ArrayList<Filter> filters = new ArrayList<Filter>(); Filter filter = new Filter("instance-state-name").withValues(InstanceStateName.Running.toString()); filters.add(filter); if (null != filterParams) { for (final String filterParam : filterParams) { String[] x = filterParam.split("=", 2); if (!"".equals(x[0]) && !"".equals(x[1])) { filters.add(new Filter(x[0]).withValues(x[1])); } } } DescribeInstancesRequest request = new DescribeInstancesRequest().withFilters(filters); DescribeInstancesResult describeInstancesRequest = ec2.describeInstances(request); List<Reservation> reservations = describeInstancesRequest.getReservations(); Set<Instance> instances = new HashSet<Instance>(); for (final Reservation reservation : reservations) { instances.addAll(reservation.getInstances()); } return instances; }
From source file:com.dtolabs.rundeck.plugin.resources.ec2.InstanceToNodeMapper.java
License:Apache License
private ArrayList<Filter> buildFilters() { final ArrayList<Filter> filters = new ArrayList<Filter>(); if (isRunningStateOnly()) { final Filter filter = new Filter("instance-state-name") .withValues(InstanceStateName.Running.toString()); filters.add(filter);/*from ww w . j a v a 2 s. co m*/ } if (null != getFilterParams()) { for (final String filterParam : getFilterParams()) { final String[] x = filterParam.split("=", 2); if (!"".equals(x[0]) && !"".equals(x[1])) { filters.add(new Filter(x[0]).withValues(x[1])); } } } return filters; }
From source file:com.example.utils.EC2Utils.java
License:Open Source License
/** * Return the DNS name of one Amazon EC2 instance with the provided filter name and value. * /*from w w w .ja v a 2 s. c o m*/ * @param ec2Client * an Amazon EC2 instance * @param filterName * the name of the filter * @param filterValue * the value of the filter * @return the public DNS name of an instance with the filter name and value. Null if none exist. */ public static String getEndpointForFirstActiveInstanceWithTag(AmazonEC2 ec2Client, String filterName, String filterValue) { DescribeInstancesRequest describeInstancesRequest = new DescribeInstancesRequest() .withFilters(new Filter().withName(filterName).withValues(filterValue)); DescribeInstancesResult describeInstancesResult = ec2Client.describeInstances(describeInstancesRequest); List<Reservation> reservations = describeInstancesResult.getReservations(); for (Reservation reservation : reservations) { List<Instance> ec2Instances = reservation.getInstances(); for (Instance ec2Instance : ec2Instances) { if (InstanceStateName.Running.toString().equals(ec2Instance.getState().getName())) { return ec2Instance.getPublicDnsName(); } } } return null; }
From source file:com.lunabeat.dooper.HadoopCluster.java
License:Apache License
public RunInstancesResult launchMaster(String size) throws IOException { update();/*from ww w .j a v a 2 s . c o m*/ if ((_master != null) && ((InstanceStateName.Running == InstanceStateName .fromValue(_master.getInstance().getState().getName())) || (InstanceStateName.Pending == InstanceStateName .fromValue(_master.getInstance().getState().getName())))) { Reservation masterReservation = _ec2 .describeInstances( new DescribeInstancesRequest().withInstanceIds(_master.getInstance().getInstanceId())) .getReservations().get(0); return new RunInstancesResult().withReservation(masterReservation); } //make the groups createSecurityGroups(); String AMIImage = _config.get("AMI." + size + ".Image", _config.get(ClusterConfig.DEFAULT_AMI_KEY)); LOGGER.info("AMIImage = [" + AMIImage + "]"); RunInstancesRequest rir = new RunInstancesRequest().withImageId(AMIImage).withMinCount(1).withMaxCount(1) .withInstanceType(size).withSecurityGroups(_masterGroupName) .withUserData(Base64.encodeBase64String(getUserData().getBytes())) .withKeyName(_config.get(ClusterConfig.KEYPAIR_NAME_KEY)); return _ec2.runInstances(rir); }
From source file:com.lunabeat.dooper.HadoopCluster.java
License:Apache License
/** * * @param howMany//from w w w . j av a 2 s . co m * @return result of aws call to terminate */ public TerminateInstancesResult terminateSlaves(int howMany) { update(); int terminated = 0; ArrayList<String> iids = new ArrayList<String>(); for (ClusterInstance slave : _slaves) { InstanceStateName state = InstanceStateName.fromValue(slave.getInstance().getState().getName()); if (terminated < howMany && (state == InstanceStateName.Running || state == InstanceStateName.Pending)) { iids.add(slave.getInstance().getInstanceId()); terminated++; } } if (iids.size() < 1) { return null; } TerminateInstancesRequest tir = new TerminateInstancesRequest().withInstanceIds(iids); return _ec2.terminateInstances(tir); }
From source file:datameer.awstasks.ant.ec2.Ec2LaunchTask.java
License:Apache License
@Override public void doExecute(AmazonEC2 ec2) throws BuildException { LOG.info("executing " + getClass().getSimpleName() + " with groupName '" + _groupName + "'"); try {/*from www . ja v a 2 s . c o m*/ boolean instancesRunning = Ec2Util.findByGroup(ec2, _groupName, false, InstanceStateName.Pending, InstanceStateName.Running) != null; if (!isReuseRunningInstances() && instancesRunning) { throw new IllegalStateException("found already running instances for group '" + _groupName + "'"); } if (!Ec2Util.groupExists(ec2, _groupName)) { LOG.info("group '" + _groupName + "' does not exists - creating it"); String groupDescription = getGroupDescription(); if (groupDescription == null) { throw new BuildException("must specify groupDescription"); } ec2.createSecurityGroup(new CreateSecurityGroupRequest(_groupName, groupDescription)); } List<String> securityGroups = Arrays.asList("default", _groupName); List<IpPermission> existingPermissions = Ec2Util.getPermissions(ec2, securityGroups); for (GroupPermission groupPermission : _groupPermissions) { if (groupPermission.getToPort() == -1) { groupPermission.setToPort(groupPermission.getFromPort()); } if (!permissionExists(groupPermission, existingPermissions)) { LOG.info("did not found permission '" + groupPermission + "' - creating it..."); ec2.authorizeSecurityGroupIngress(new AuthorizeSecurityGroupIngressRequest() .withGroupName(_groupName).withIpPermissions(groupPermission.toIpPermission())); } } InstanceGroup instanceGroup = new InstanceGroupImpl(ec2); RunInstancesRequest launchConfiguration = new RunInstancesRequest(_ami, _instanceCount, _instanceCount); if (_kernelId != null) { launchConfiguration.setKernelId(_kernelId); } if (_ramDiskId != null) { launchConfiguration.setKernelId(_ramDiskId); } launchConfiguration.setKeyName(_privateKeyName); launchConfiguration.setSecurityGroups(securityGroups); if (_userData != null) { launchConfiguration.setUserData(Base64.encodeBase64String(_userData.getBytes())); } if (_instanceType != null) { launchConfiguration.setInstanceType(_instanceType); } launchConfiguration.setPlacement(new Placement(_availabilityZone)); if (instancesRunning) { instanceGroup.connectTo(_groupName); } else { instanceGroup.launch(launchConfiguration, TimeUnit.MINUTES, _maxStartTime); if (_instanceName != null) { LOG.info("tagging instances with name '" + _instanceName + " [<idx>]'"); int idx = 1; for (Instance instance : instanceGroup.getInstances(false)) { CreateTagsRequest createTagsRequest = new CreateTagsRequest(); createTagsRequest.withResources(instance.getInstanceId()) // .withTags(new Tag("Name", _instanceName + " [" + idx + "]")); ec2.createTags(createTagsRequest); idx++; } } } } catch (Exception e) { LOG.error("execution " + getClass().getSimpleName() + " with groupName '" + _groupName + "' failed: " + e.getMessage()); throw new BuildException(e); } }
From source file:datameer.awstasks.ant.ec2.Ec2StartTask.java
License:Apache License
@Override public void execute() throws BuildException { System.out.println("executing " + getClass().getSimpleName() + " with groupName '" + _groupName + "'"); Jec2 ec2 = new Jec2(_accessKey, _accessSecret); try {/* w w w . j ava 2s .com*/ boolean instancesRunning = Ec2Util.findByGroup(ec2, _groupName, InstanceStateName.Pending, InstanceStateName.Running) != null; if (!isReuseRunningInstances() && instancesRunning) { throw new IllegalStateException("found already running instances for group '" + _groupName + "'"); } if (!Ec2Util.groupExists(ec2, _groupName)) { System.out.println("group '" + _groupName + "' does not exists - creating it"); String groupDescription = getGroupDescription(); if (groupDescription == null) { throw new BuildException("must specify groupDescription"); } ec2.createSecurityGroup(_groupName, groupDescription); } List<String> securityGroups = Arrays.asList("default", _groupName); List<IpPermission> existingPermissions = Ec2Util.getPermissions(ec2, securityGroups); for (GroupPermission groupPermission : _groupPermissions) { if (groupPermission.getToPort() == -1) { groupPermission.setToPort(groupPermission.getFromPort()); } if (!permissionExists(groupPermission, existingPermissions)) { System.out.println("did not found permission '" + groupPermission + "' - creating it..."); ec2.authorizeSecurityGroupIngress(_groupName, groupPermission.getProtocol(), groupPermission.getFromPort(), groupPermission.getToPort(), groupPermission.getSourceIpOrGroup()); } } InstanceGroup instanceGroup = new InstanceGroupImpl(ec2); LaunchConfiguration launchConfiguration = new LaunchConfiguration(_ami, _instanceCount, _instanceCount); if (_kernelId != null) { launchConfiguration.setKernelId(_kernelId); } if (_ramDiskId != null) { launchConfiguration.setKernelId(_ramDiskId); } launchConfiguration.setKeyName(_privateKeyName); launchConfiguration.setSecurityGroup(securityGroups); if (_userData != null) { launchConfiguration.setUserData(_userData.getBytes()); } if (_instanceType != null) { InstanceType instanceType = InstanceType.valueOf(_instanceType.toUpperCase()); launchConfiguration.setInstanceType(instanceType); } launchConfiguration.setAvailabilityZone(_availabilityZone); if (instancesRunning) { instanceGroup.connectTo(_groupName); } else { instanceGroup.startup(launchConfiguration, TimeUnit.MINUTES, _maxStartTime); } } catch (Exception e) { throw new BuildException(e); } }