@Override public Map<?, Future<Void>> execute(String tag, int count, Template template, Set<NodeMetadata> goodNodes, Map<NodeMetadata, Exception> badNodes) { Reservation<? extends RunningInstance> reservation = createKeyPairAndSecurityGroupsAsNeededThenRunInstances(tag, count, template); Iterable<String> ids = transform(reservation, instanceToId); String idsString = Joiner.on(',').join(ids); if (Iterables.size(ids) > 0) { logger.debug("<< started instances(%s)", idsString); all(reservation, instancePresent); logger.debug("<< present instances(%s)", idsString); populateCredentials(reservation); } return utils.runOptionsOnNodesAndAddToGoodSetOrPutExceptionIntoBadMap(template.getOptions(), transform( reservation, runningInstanceToNodeMetadata), goodNodes, badNodes); }