use of alluxio.wire.InconsistentProperty in project alluxio by Alluxio.
the class ServerConfigurationChecker method regenerateReport.
/**
* Checks the server-side configurations and records the check results.
*/
public synchronized void regenerateReport() {
// Generate the configuration map from master and worker configuration records
Map<PropertyKey, Map<Optional<String>, List<String>>> confMap = generateConfMap();
// Update the errors and warnings configuration
Map<Scope, List<InconsistentProperty>> confErrors = new HashMap<>();
Map<Scope, List<InconsistentProperty>> confWarns = new HashMap<>();
for (Map.Entry<PropertyKey, Map<Optional<String>, List<String>>> entry : confMap.entrySet()) {
if (entry.getValue().size() >= 2) {
PropertyKey key = entry.getKey();
InconsistentProperty inconsistentProperty = new InconsistentProperty().setName(key.getName()).setValues(entry.getValue());
Scope scope = key.getScope().equals(Scope.ALL) ? Scope.SERVER : key.getScope();
if (entry.getKey().getConsistencyLevel().equals(ConsistencyCheckLevel.ENFORCE)) {
confErrors.putIfAbsent(scope, new ArrayList<>());
confErrors.get(scope).add(inconsistentProperty);
} else {
confWarns.putIfAbsent(scope, new ArrayList<>());
confWarns.get(scope).add(inconsistentProperty);
}
}
}
// Update configuration status
ConfigStatus status = confErrors.values().stream().anyMatch(a -> a.size() > 0) ? ConfigStatus.FAILED : confWarns.values().stream().anyMatch(a -> a.size() > 0) ? ConfigStatus.WARN : ConfigStatus.PASSED;
if (!status.equals(mConfigCheckReport.getConfigStatus())) {
logConfigReport();
}
mConfigCheckReport = new ConfigCheckReport(confErrors, confWarns, status);
}
use of alluxio.wire.InconsistentProperty in project alluxio by Alluxio.
the class ConfigCheckerIntegrationTest method unsetVsSet.
@Test
public void unsetVsSet() throws Exception {
Map<Integer, Map<PropertyKey, String>> masterProperties = ImmutableMap.of(1, ImmutableMap.of(PropertyKey.MASTER_MOUNT_TABLE_ROOT_OPTION, "option"));
mCluster = MultiProcessCluster.newBuilder(PortCoordination.CONFIG_CHECKER_UNSET_VS_SET).setClusterName("ConfigCheckerUnsetVsSet").setNumMasters(2).setNumWorkers(0).setMasterProperties(masterProperties).build();
mCluster.start();
ConfigCheckReport report = getReport();
Map<Scope, List<InconsistentProperty>> errors = report.getConfigErrors();
assertTrue(errors.containsKey(Scope.MASTER));
if (mCluster.getDeployMode().equals(DeployMode.ZOOKEEPER_HA)) {
assertEquals(1, errors.get(Scope.MASTER).size());
InconsistentProperty property = errors.get(Scope.MASTER).get(0);
assertEquals(PropertyKey.MASTER_MOUNT_TABLE_ROOT_OPTION.getName(), property.getName());
assertTrue(property.getValues().containsKey(Optional.of("option")));
assertTrue(property.getValues().containsKey(Optional.empty()));
} else {
// When using embedded journal, the journal paths are different
assertEquals(2, errors.get(Scope.MASTER).size());
assertThat(report.getConfigErrors().toString(), CoreMatchers.containsString(PropertyKey.MASTER_MOUNT_TABLE_ROOT_OPTION.getName()));
}
mCluster.notifySuccess();
}
Aggregations