EC2RaiderImpl implements EC2Raider { @Override public void terminateEc2InstancesById(String... instanceIds) { if (instanceIds.length <= 0 || instanceIds == null) { throw new InvalidInputDataException("Invalid list of instanceIds"); } TerminateInstancesRequest request1 = new TerminateInstancesRequest().withInstanceIds(instanceIds); TerminateInstancesResult response = ec2Delegator.getEc2().terminateInstances(request1); } EC2RaiderImpl(); @Override List<EC2InstanceTO> getEc2InstanceIdsWithCompulsoryTagsForAvailabilityZone(String availabilityZone, List<Tag> ignoreTags, List<Tag> compulsoryTags); @Override List<EC2InstanceTO> getEc2InstancesForAvailabilityZone(String availabilityZone, List<String> instanceIdsToIgnore); @Override List<String> getEc2InstanceIPsForAvailabilityZone(String availabilityZone, List<String> instanceIdsToIgnore); @Override List<String> getInstancesIPsForAZWithName(String name, String availabilityZone); @Override List<String> getInstanceIdsForTags(List<Tag> tags); @Override List<EC2InstanceTO> getInstancesByName(String name); @Override void terminateEc2InstancesById(String... instanceIds); @Override void terminateEc2InstancesById(String instanceId); @Override void terminateEc2InstancesById(List<String> instanceIds); @Override void terminateEC2InstancesByName(String... names); @Override void terminateEC2InstancesByName(String name, int numberOfInstances); @Override List<EC2InstanceTO> getInstancesFromAnyTags(List<Tag> tags); @Override EC2InstanceTO getEC2InstanceById(String instanceId); @Override List<EC2InstanceTO> getEC2InstancesByIds(List<String> instanceIds); @Override List<EC2InstanceTO> getFilteredActiveInstances(List<String> filteredWords); @Override void stopEc2Instances(String instanceId); @Override void restartEc2Instances(String instanceId); @Override String getInstanceStatusById(String instanceId); @Override void detachSecurityGroup(String instanceId, String securityGroup); @Override void attachSecurityGroup(String instanceId, String securityGroup); @Override List<String> getSecurityGroups(String instanceId); @Override void detachSecurityGroups(String instanceId, String... securityGroups); @Override void attachSecurityGroups(String instanceId, String... securityGroups); @Override Instance getInstanceDetailsById(String instanceId); @Override EC2Status getInstanceStatus(String name); @Override Map getEC2InstanceState(String name); @Deprecated List getInstancesIpsForAZ(String tag, String availabilityZoneName); @Deprecated List<EC2InstanceTO> getInstancesIdsForOneTag(String tagName); @Deprecated void terminateEc2InstancesByTags(String... tagName); @Deprecated void terminateEc2InstancesByTags(String tagName, int numberOfInstances); @Deprecated List<EC2InstanceTO> getInstancesForAZ(String tag, String availabilityZoneName); @Deprecated EC2InstanceTO getEC2StatusByTag(String tag); static final String AVAILABILITY_ZONE_FILTER_KEY; }
@Test (expected = InvalidInputDataException.class) public void testTerminateEc2InstancesByMissingId() throws Exception{ ec2RaiderImplUnderTest.terminateEc2InstancesById(""); }
@Test public void testTerminateEc2InstancesById() throws Exception{ TerminateInstancesResult response = PowerMockito.mock(TerminateInstancesResult.class); TerminateInstancesRequest request = new TerminateInstancesRequest().withInstanceIds("i-1234"); PowerMockito.when(ec2Delegator.getEc2().terminateInstances(request)).thenReturn(response); ec2RaiderImplUnderTest.terminateEc2InstancesById("i-1234"); }
@Test public void testTerminateEc2InstancesByIds() throws Exception{ List<String> instanceIds = new ArrayList<>(); instanceIds.add("i-123"); instanceIds.add("i-456"); TerminateInstancesResult response = PowerMockito.mock(TerminateInstancesResult.class); TerminateInstancesRequest request = new TerminateInstancesRequest().withInstanceIds(instanceIds); PowerMockito.when(ec2Delegator.getEc2().terminateInstances(request)).thenReturn(response); ec2RaiderImplUnderTest.terminateEc2InstancesById(instanceIds); }
@Test public void testTerminateEc2InstancesByIdArray() throws Exception{ String[] instanceIds = new String[2]; instanceIds[0]= "i-123"; instanceIds[1] = "i-456"; TerminateInstancesResult response = PowerMockito.mock(TerminateInstancesResult.class); TerminateInstancesRequest request = new TerminateInstancesRequest().withInstanceIds(instanceIds); PowerMockito.when(ec2Delegator.getEc2().terminateInstances(request)).thenReturn(response); ec2RaiderImplUnderTest.terminateEc2InstancesById(instanceIds); }
@Test (expected = AmazonEC2Exception.class) public void testTerminateEc2InstancesByInvalidId() throws Exception{ TerminateInstancesResult response = PowerMockito.mock(TerminateInstancesResult.class); TerminateInstancesRequest request = new TerminateInstancesRequest().withInstanceIds("i-999"); PowerMockito.when(ec2Delegator.getEc2().terminateInstances(request)).thenThrow(new AmazonEC2Exception("The instance ID 'i-999' does not exist")); ec2RaiderImplUnderTest.terminateEc2InstancesById("i-999"); }