@Override public Predicate<?> apply(Object input) { // TODO Could try to handle deferred supplier as well? checkArgument(input instanceof String, "Constraint regex value must be a string, but got %s (%s)", (input == null ? "null" : input.getClass().getName()), input); return StringPredicates.matchesRegex((String)input); }});
/** @deprecated since 0.7.0 use {@link #displayNameSatisfies(Predicate)} to clarify this is *regex* matching * (passing {@link StringPredicates#matchesRegex(String)} as the predicate) */ @Deprecated public static Predicate<Entity> displayNameMatches(final String regex) { return displayNameSatisfies(StringPredicates.matchesRegex(regex)); }
protected Predicate<Sensor<?>> resolveMapMatchingConfig() { String regex = getConfig(MAP_MATCHING); final Predicate<CharSequence> namePredicate = StringPredicates.matchesRegex(regex); return new Predicate<Sensor<?>>() { @Override public boolean apply(Sensor<?> input) { return input != null && namePredicate.apply(input.getName()); } }; } }
/** * @since 0.9.0 */ public static Predicate<ConfigKey<?>> nameMatchesRegex(final String regex) { return nameSatisfies(StringPredicates.matchesRegex(regex)); }
public static void assertStringMatchesRegex(String input, String regex1ToMatch, String ...optionalOtherRegexesToMatch) { if (input==null) fail("Input is null."); if (regex1ToMatch!=null) { assertThat(input, StringPredicates.matchesRegex(regex1ToMatch)); } for (String otherRegex: optionalOtherRegexesToMatch) { if (otherRegex!=null) { assertThat(input, StringPredicates.matchesRegex(otherRegex)); } } }
@Test public static void testMatches() { Assert.assertTrue(StringPredicates.matchesRegex("t.*").apply("test")); Assert.assertFalse(StringPredicates.matchesRegex("v.*").apply("test")); Assert.assertTrue(StringPredicates.matchesGlob("t*").apply("test")); Assert.assertFalse(StringPredicates.matchesGlob("v*").apply("test")); }
@Test public void testDisplayNameSatisfies() throws Exception { assertTrue(EntityPredicates.displayNameSatisfies(StringPredicates.matchesRegex("myd.*me")).apply(entity)); assertFalse(EntityPredicates.applicationIdEqualTo("wrongname").apply(entity)); }
String inspect = Strings.trimEnd(slave.execCommand(sudo("docker inspect -f '{{.State.Pid}}' " + containerId))); String dockerPid = Iterables.find(Splitter.on(CharMatcher.anyOf("\r\n")).omitEmptyStrings().split(inspect), StringPredicates.matchesRegex("^[0-9]+$")); Cidr subnetCidr = getSubnetCidr(subnetId); String slaveAddressOutput = slave.execCommand(sudo("ip addr show dev eth0 scope global label eth0")); Optional<String> endpointId = Iterables.tryFind( Splitter.on(CharMatcher.anyOf("\r\n")).split(getEndpointIdStdout), StringPredicates.matchesRegex("[0-9a-f]{32}")); if (!endpointId.isPresent()) throw new IllegalStateException("Cannot find endpoint-id: " + getEndpointIdStdout);
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); } } }
private <T extends SoftwareProcess> void assertStreams(T softwareProcessEntity) { Set<Task<?>> tasks = BrooklynTaskTags.getTasksInEntityContext(mgmt.getExecutionManager(), softwareProcessEntity); Task<?> subTask = findTaskOrSubTask(tasks, TaskPredicates.displayNameMatches(StringPredicates.matchesRegex("open iptables.*"))).get(); String stdout = AbstractSoftwareProcessStreamsTest.getStreamOrFail(subTask, BrooklynTaskTags.STREAM_STDOUT); String msg = "stdout="+stdout; assertNotEquals(stdout, "", 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)); } }
String ps = slave.execCommand(BashCommands.sudo("docker ps --no-trunc --filter=name=mesos-* -q")); Iterable<String> containers = Iterables.filter(Splitter.on(CharMatcher.anyOf("\r\n")).omitEmptyStrings().split(ps), StringPredicates.matchesRegex("[a-z0-9]{64}")); for (String each : containers) { String env = slave.execCommand(BashCommands.sudo("docker inspect --format='{{range .Config.Env}}{{println .}}{{end}}' " + each));