protected Predicate<?> getDefaultValueFilter() { if (getConfig(EXCLUDE_BLANK)) return StringPredicates.isNonBlank(); else return Predicates.alwaysTrue(); }
public EntityConfigSummary(ConfigKey<?> config, String label, Double priority, Boolean pinned, Map<String, URI> links) { super(config, label, priority); this.pinned = pinned; this.constraints = !config.getConstraint().equals(Predicates.alwaysTrue()) ? ImmutableList.of((config.getConstraint().getClass().equals(StringPredicates.isNonBlank().getClass()) ? "required" : config.getConstraint().toString())) : ImmutableList.<String>of(); this.links = links != null ? ImmutableMap.copyOf(links) : null; }
@Test public void testConstraintAsArray() { String name = "minRam"; String constraint = "required"; SpecParameter<?> input = parseSpecParameterDefinition(ImmutableMap.of( "name", name, "constraints", ImmutableList.of(constraint))); ConfigKey<?> type = input.getConfigKey(); assertConstraint(type.getConstraint(), StringPredicates.isNonBlank()); }
@Test public void testFullDefinition() { String name = "minRam"; String label = "Minimum Ram"; String description = "Some description"; String inputType = "string"; String defaultValue = "VALUE"; Boolean pinned = false; String constraint = "required"; SpecParameter<?> input = parseSpecParameterDefinition(ImmutableMap.builder() .put("name", name) .put("label", label) .put("description", description) .put("type", inputType) .put("default", defaultValue) .put("pinned", pinned) .put("constraints", constraint) .build()); assertEquals(input.getLabel(), label); assertFalse(input.isPinned()); ConfigKey<?> type = input.getConfigKey(); assertEquals(type.getName(), name); assertEquals(type.getTypeToken(), TypeToken.of(String.class)); assertEquals(type.getDefaultValue(), defaultValue); assertEquals(type.getDescription(), description); assertTrue(type.getInheritanceByContext().values().isEmpty(), "Unexpected inheritance: "+type.getInheritanceByContext()); assertConstraint(type.getConstraint(), StringPredicates.isNonBlank()); }
@Override protected Entity createNode(Location loc, Map<?, ?> flags) { MySqlNode node = (MySqlNode) super.createNode(loc, flags); if (!MySqlClusterUtils.IS_MASTER.apply(node)) { ServiceNotUpLogic.updateNotUpIndicator(node, MySqlSlave.SLAVE_HEALTHY, "Replication not started"); addFeed(FunctionFeed.builder() .entity(node) .period(Duration.FIVE_SECONDS) .poll(FunctionPollConfig.forSensor(MySqlSlave.SLAVE_HEALTHY) .callable(new SlaveStateCallable(node)) .checkSuccess(StringPredicates.isNonBlank()) .onSuccess(new SlaveStateParser(node)) .setOnFailure(false) .description("Polls SHOW SLAVE STATUS")) .build()); node.enrichers().add(Enrichers.builder().updatingMap(Attributes.SERVICE_NOT_UP_INDICATORS) .from(MySqlSlave.SLAVE_HEALTHY) .computing(Functionals.ifNotEquals(true).value("Slave replication status is not healthy") ) .build()); } return node; }