private Set<NodeMetadata> addTagsToInstancesInRegion(Map<String, String> common, Set<? extends NodeMetadata> input, String region, String group) { Map<String, ? extends NodeMetadata> instancesById = Maps.uniqueIndex(input, instanceId); ImmutableSet.Builder<NodeMetadata> builder = ImmutableSet.<NodeMetadata> builder(); if (generateInstanceNames && !common.containsKey("Name")) { for (Map.Entry<String, ? extends NodeMetadata> entry : instancesById.entrySet()) { String id = entry.getKey(); NodeMetadata instance = entry.getValue(); Map<String, String> tags = ImmutableMap.<String, String> builder().putAll(common) .put("Name", id.replaceAll(".*-", group + "-")).build(); logger.debug(">> applying tags %s to instance %s in region %s", tags, id, region); client.getTagApiForRegion(region).get().applyToResources(tags, ImmutableSet.of(id)); builder.add(addTagsForInstance(tags, instancesById.get(id))); } } else { Iterable<String> ids = instancesById.keySet(); logger.debug(">> applying tags %s to instances %s in region %s", common, ids, region); client.getTagApiForRegion(region).get().applyToResources(common, ids); for (NodeMetadata in : input) builder.add(addTagsForInstance(common, in)); } if (logger.isDebugEnabled()) { Multimap<String, String> filter = new TagFilterBuilder().resourceIds(instancesById.keySet()).build(); FluentIterable<Tag> tags = client.getTagApiForRegion(region).get().filter(filter); logger.debug("<< applied tags in region %s: %s", region, resourceToTagsAsMap(tags)); } return builder.build(); }
private Set<NodeMetadata> addTagsToInstancesInRegion(Map<String, String> common, Set<? extends NodeMetadata> input, String region, String group) { Map<String, ? extends NodeMetadata> instancesById = Maps.uniqueIndex(input, instanceId); ImmutableSet.Builder<NodeMetadata> builder = ImmutableSet.<NodeMetadata> builder(); if (generateInstanceNames && !common.containsKey("Name")) { for (Map.Entry<String, ? extends NodeMetadata> entry : instancesById.entrySet()) { String id = entry.getKey(); NodeMetadata instance = entry.getValue(); Map<String, String> tags = ImmutableMap.<String, String> builder().putAll(common) .put("Name", id.replaceAll(".*-", group + "-")).build(); logger.debug(">> applying tags %s to instance %s in region %s", tags, id, region); client.getTagApiForRegion(region).get().applyToResources(tags, ImmutableSet.of(id)); builder.add(addTagsForInstance(tags, instancesById.get(id))); } } else { Iterable<String> ids = instancesById.keySet(); logger.debug(">> applying tags %s to instances %s in region %s", common, ids, region); client.getTagApiForRegion(region).get().applyToResources(common, ids); for (NodeMetadata in : input) builder.add(addTagsForInstance(common, in)); } if (logger.isDebugEnabled()) { Multimap<String, String> filter = new TagFilterBuilder().resourceIds(instancesById.keySet()).build(); FluentIterable<Tag> tags = client.getTagApiForRegion(region).get().filter(filter); logger.debug("<< applied tags in region %s: %s", region, resourceToTagsAsMap(tags)); } return builder.build(); }
FluentIterable<Tag> tags = client.getTagApiForRegion(region).get().filter(filter); logger.debug("<< applied tags in region %s: %s", region, resourceToTagsAsMap(tags));
FluentIterable<Tag> tags = client.getTagApiForRegion(region).get().filter(filter); logger.debug("<< applied tags in region %s: %s", region, resourceToTagsAsMap(tags));
FluentIterable<Tag> tags = client.getTagApiForRegion(region).get().filter(filter); logger.debug("<< applied tags in region %s: %s", region, resourceToTagsAsMap(tags));
public void testFilterWhenResponseIs404() throws Exception { HttpResponse filterResponse = HttpResponse.builder().statusCode(404).build(); EC2Api apiWhenDontExist = requestSendsResponse(filter, filterResponse); assertEquals(apiWhenDontExist.getTagApi().get().filter(ImmutableMultimap.<String, String> builder() .put("resource-type", "instance") .put("key", "stack") .build()).toSet(), ImmutableSet.of()); }
public void testFilterWhenResponseIs404() throws Exception { HttpResponse filterResponse = HttpResponse.builder().statusCode(404).build(); EC2Api apiWhenDontExist = requestSendsResponse(filter, filterResponse); assertEquals(apiWhenDontExist.getTagApi().get().filter(ImmutableMultimap.<String, String> builder() .put("resource-type", "instance") .put("key", "stack") .build()).toSet(), ImmutableSet.of()); }
public void testApplyTag() { api().applyToResources(ImmutableSet.of("foo"), ImmutableSet.of(resource.id)); tag = api().filter(new TagFilterBuilder().resourceId(resource.id).key("foo").build()).get(0); Logger.getAnonymousLogger().info("created tag: " + tag); assertEquals(tag.getKey(), "foo"); assertEquals(tag.getResourceId(), resource.id); assertEquals(tag.getResourceType(), resource.type); assertFalse(tag.getValue().isPresent()); }
public void testApplyTagWithValue() { api().applyToResources(ImmutableMap.of("type", "bar"), ImmutableSet.of(resource.id)); tag2 = api().filter(new TagFilterBuilder().resourceId(resource.id).key("type").build()).get(0); Logger.getAnonymousLogger().info("created tag: " + tag2); assertEquals(tag2.getKey(), "type"); assertEquals(tag2.getResourceId(), resource.id); assertEquals(tag2.getResourceType(), resource.type); assertEquals(tag2.getValue().get(), "bar"); }
public void testApplyTag() { api().applyToResources(ImmutableSet.of("foo"), ImmutableSet.of(resource.id)); tag = api().filter(new TagFilterBuilder().resourceId(resource.id).key("foo").build()).get(0); Logger.getAnonymousLogger().info("created tag: " + tag); assertEquals(tag.getKey(), "foo"); assertEquals(tag.getResourceId(), resource.id); assertEquals(tag.getResourceType(), resource.type); assertFalse(tag.getValue().isPresent()); }
public void testApplyTagWithValue() { api().applyToResources(ImmutableMap.of("type", "bar"), ImmutableSet.of(resource.id)); tag2 = api().filter(new TagFilterBuilder().resourceId(resource.id).key("type").build()).get(0); Logger.getAnonymousLogger().info("created tag: " + tag2); assertEquals(tag2.getKey(), "type"); assertEquals(tag2.getResourceId(), resource.id); assertEquals(tag2.getResourceType(), resource.type); assertEquals(tag2.getValue().get(), "bar"); }
public void testFilterWhenResponseIs2xx() throws Exception { HttpResponse filterResponse = HttpResponse.builder().statusCode(200) .payload(payloadFromResourceWithContentType("/describe_tags.xml", "text/xml")).build(); EC2Api apiWhenExist = requestSendsResponse(filter, filterResponse); assertEquals(apiWhenExist.getTagApi().get().filter(ImmutableMultimap.<String, String> builder() .put("resource-type", "instance") .put("key", "stack") .build()).toString(), new DescribeTagsResponseTest().expected().toString()); }
public void testFilterWhenResponseIs2xx() throws Exception { HttpResponse filterResponse = HttpResponse.builder().statusCode(200) .payload(payloadFromResourceWithContentType("/describe_tags.xml", "text/xml")).build(); EC2Api apiWhenExist = requestSendsResponse(filter, filterResponse); assertEquals(apiWhenExist.getTagApi().get().filter(ImmutableMultimap.<String, String> builder() .put("resource-type", "instance") .put("key", "stack") .build()).toString(), new DescribeTagsResponseTest().expected().toString()); }
private FluentIterable<Tag> tagsForResource() { return api().filter(new TagFilterBuilder().resourceId(resource.id).build()); }
private FluentIterable<Tag> tagsForResource() { return api().filter(new TagFilterBuilder().resourceId(resource.id).build()); }