EC2RaiderImpl implements EC2Raider { @Deprecated public EC2InstanceTO getEC2StatusByTag(String tag) { EC2InstanceTO ec2InstanceTO = null; for (Reservation res : ec2Delegator.getEc2().describeInstances().getReservations()) { for (Instance i : res.getInstances()) { if (i.getState().getName().equalsIgnoreCase("running")) { for (Tag t : i.getTags()) { if (t.getValue().equalsIgnoreCase(tag)) { ec2InstanceTO = this.createEc2Instance(i); break; } } } } } if (ec2InstanceTO == null) { throw new ResourceNotFoundException("Unable to find EC2 Instances with given tag: " + tag); } return ec2InstanceTO; } 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 public void testEC2StatusByTag() throws Exception{ EC2InstanceTO ec2InstanceTO = ec2RaiderImplUnderTest.getEC2StatusByTag("tag1"); Assert.assertEquals(ec2InstanceTO.getInstanceId(), "1234"); Assert.assertEquals(ec2InstanceTO.getPrivateIpAddress(), "10.1.1.1"); Assert.assertEquals(ec2InstanceTO.getAvailabilityZone(), "us-west-2c"); }
@Test (expected = ResourceNotFoundException.class) public void testEC2StatusByInvalidTag() throws Exception{ EC2InstanceTO ec2InstanceTO = ec2RaiderImplUnderTest.getEC2StatusByTag("error"); Assert.assertEquals(ec2InstanceTO.getInstanceId(), "1234"); Assert.assertEquals(ec2InstanceTO.getPrivateIpAddress(), "10.1.1.1"); Assert.assertEquals(ec2InstanceTO.getAvailabilityZone(), "us-west-2c"); }