/** @deprecated since 0.9.0; use {@link #displayNameSatisfies(Predicate)} */ @Deprecated public static Predicate<Task<?>> displayNameMatches(Predicate<? super String> matcher) { return displayNameSatisfies(matcher); }
public static Predicate<Task<?>> displayNameEqualTo(String name) { return displayNameSatisfies(Predicates.equalTo(name)); }
@Test public void testDisplayNameSatisfies() throws Exception { Task<Object> task = execManager.submit(TaskBuilder.builder() .body(Callables.<Object>returning("val")) .displayName("myname") .build()); assertTrue(TaskPredicates.displayNameSatisfies(Predicates.equalTo("myname")).apply(task)); assertFalse(TaskPredicates.displayNameSatisfies(Predicates.equalTo("wrong")).apply(task)); }
@Test public void testDisplayNameMatches() throws Exception { Task<Object> task = execManager.submit(TaskBuilder.builder() .body(Callables.<Object>returning("val")) .displayName("myname") .build()); assertTrue(TaskPredicates.displayNameSatisfies(Predicates.equalTo("myname")).apply(task)); assertFalse(TaskPredicates.displayNameSatisfies(Predicates.equalTo("wrong")).apply(task)); }
protected void assertSubTaskFailures(SoftwareProcess entity, Map<String, Predicate<CharSequence>> taskErrs) throws Exception { Set<Task<?>> tasks = BrooklynTaskTags.getTasksInEntityContext(mgmt().getExecutionManager(), entity); for (Map.Entry<String, Predicate<CharSequence>> entry : taskErrs.entrySet()) { String taskNameRegex = entry.getKey(); Predicate<? super String> errChecker = entry.getValue(); Task<?> subTask = findTaskOrSubTask(tasks, TaskPredicates.displayNameSatisfies(StringPredicates.matchesRegex(taskNameRegex))).get(); String msg = "regex="+taskNameRegex+"; task="+subTask; assertNotNull(subTask, msg); assertTrue(subTask.isDone(), msg); assertTrue(subTask.isError(), msg); try { subTask.get(); fail(); } catch (Exception e) { if (!errChecker.apply(e.toString())) { throw e; } } } }
protected <T extends SoftwareProcess> void assertStreams(T softwareProcessEntity) { Set<Task<?>> tasks = BrooklynTaskTags.getTasksInEntityContext(mgmt.getExecutionManager(), softwareProcessEntity); for (Map.Entry<String, String> entry : getCommands().entrySet()) { String taskNameRegex = entry.getKey(); String echoed = entry.getValue(); Task<?> subTask = findTaskOrSubTask(tasks, TaskPredicates.displayNameSatisfies(StringPredicates.matchesRegex(taskNameRegex))).get(); String stdin = getStreamOrFail(subTask, BrooklynTaskTags.STREAM_STDIN); String stdout = getStreamOrFail(subTask, BrooklynTaskTags.STREAM_STDOUT); String stderr = getStreamOrFail(subTask, BrooklynTaskTags.STREAM_STDERR); // String env = getStreamOrFail(subTask, BrooklynTaskTags.STREAM_ENV); String msg = "taskName='" + taskNameRegex + "'; expected=" + echoed + "; actual=" + stdout + "\nstdin="+stdin+"\nstdout="+stdout+"\nstderr="+stderr; //+"; env="+env; assertTrue(stdin.contains("echo "+echoed), msg); assertTrue(stdout.contains(echoed), msg); } } }
protected void assertStreams(SoftwareProcess entity, Map<String, List<String>> stdouts) { Set<Task<?>> tasks = BrooklynTaskTags.getTasksInEntityContext(mgmt().getExecutionManager(), entity); for (Map.Entry<String, List<String>> entry : stdouts.entrySet()) { String taskNameRegex = entry.getKey(); List<String> expectedOuts = entry.getValue(); Task<?> subTask = findTaskOrSubTask(tasks, TaskPredicates.displayNameSatisfies(StringPredicates.matchesRegex(taskNameRegex))).get(); String stdin = getStreamOrFail(subTask, BrooklynTaskTags.STREAM_STDIN); String stdout = getStreamOrFail(subTask, BrooklynTaskTags.STREAM_STDOUT); String stderr = getStreamOrFail(subTask, BrooklynTaskTags.STREAM_STDERR); String env = getStream(subTask, BrooklynTaskTags.STREAM_ENV); String msg = "stdin="+stdin+"; stdout="+stdout+"; stderr="+stderr+"; env="+env; for (String expectedOut : expectedOuts) { assertTrue(stdout.contains(expectedOut), msg); } } }
@BeforeMethod(alwaysRun=true) @Override public void setUp() throws Exception { super.setUp(); machineEntity = app.addChild(EntitySpec.create(MachineEntity.class) .configure(BrooklynConfigKeys.SKIP_ON_BOX_BASE_DIR_RESOLUTION, true) .location(TestApplication.LOCALHOST_PROVISIONER_SPEC)); machineEntity.start(ImmutableList.<Location>of()); machineEntity.execCommand("echo myval"); Set<Task<?>> tasks = BrooklynTaskTags.getTasksInEntityContext(mgmt.getExecutionManager(), machineEntity); String taskNameRegex = "ssh: echo myval"; streams = Maps.newLinkedHashMap(); subTask = AbstractSoftwareProcessStreamsTest.findTaskOrSubTask(tasks, TaskPredicates.displayNameSatisfies(StringPredicates.matchesRegex(taskNameRegex))).get(); for (String streamId : ImmutableList.of("stdin", "stdout", "stderr")) { streams.put(streamId, AbstractSoftwareProcessStreamsTest.getStreamOrFail(subTask, streamId)); } }