EC2RaiderImpl implements EC2Raider { @Override public List<EC2InstanceTO> getEc2InstanceIdsWithCompulsoryTagsForAvailabilityZone(String availabilityZone, List<Tag> ignoreTags, List<Tag> compulsoryTags) { if (ignoreTags == null) { ignoreTags = new ArrayList<>(); } if (compulsoryTags == null) { compulsoryTags = new ArrayList<>(); } List<EC2InstanceTO> instances = new ArrayList<>(); for (Reservation reservation : getReservationsByAvailabilityZone(availabilityZone)) { for (Instance instance : reservation.getInstances()) { if (Ec2Utils.isAwsInfrastructure(instance)) { continue; } if(instance.getState().getName().equalsIgnoreCase("terminated")) { continue; } boolean flag = true; for (Tag instanceTag : instance.getTags()) { boolean instanceContainsTag = false; for (Tag ignoreTag : ignoreTags) { if (ignoreTag.equals(instanceTag)) { instanceContainsTag = true; break; } } if(instanceContainsTag) { flag = false; break; } } if (!flag) { continue; } flag = CucumberHelperFunctions.containsAllCompulsoryTags(compulsoryTags, instance.getTags()); if (flag) { EC2InstanceTO ec2InstanceTO = createEc2Instance(instance); instances.add(ec2InstanceTO); } } } return instances; } 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 testGetEc2InstanceIdsWithCompulsoryTagsForAvailabilityZone() throws Exception{ Tag tag = new Tag().withKey("Name").withValue("tag1"); List<Tag> tags = new ArrayList<>(); tags.add(tag); List<EC2InstanceTO> EC2InstanceTOList = ec2RaiderImplUnderTest.getEc2InstanceIdsWithCompulsoryTagsForAvailabilityZone("us-west-2c",null,tags); Assert.assertFalse(EC2InstanceTOList.isEmpty()); Assert.assertEquals(EC2InstanceTOList.get(0).getInstanceId(), "1234"); Assert.assertEquals(EC2InstanceTOList.get(0).getPrivateIpAddress(), "10.1.1.1"); Assert.assertEquals(EC2InstanceTOList.get(0).getAvailabilityZone(), "us-west-2c"); }
@Test public void testGetEc2InstanceIdsWithcompulsoryTagsForAvailabilityZone() throws Exception{ Tag tag = new Tag().withKey("Name").withValue("tag1"); List<Tag> tags = new ArrayList<>(); tags.add(tag); List<EC2InstanceTO> EC2InstanceTOList = ec2RaiderImplUnderTest.getEc2InstanceIdsWithCompulsoryTagsForAvailabilityZone("us-west-2c",null,tags); Assert.assertFalse(EC2InstanceTOList.isEmpty()); Assert.assertEquals(EC2InstanceTOList.get(0).getInstanceId(), "1234"); Assert.assertEquals(EC2InstanceTOList.get(0).getPrivateIpAddress(), "10.1.1.1"); Assert.assertEquals(EC2InstanceTOList.get(0).getAvailabilityZone(), "us-west-2c"); }