use of org.neo4j.io.fs.DefaultFileSystemAbstraction in project neo4j by neo4j.
the class OnlineBackupCommandTest method setUp.
@Before
public void setUp() throws Exception {
when(outsideWorld.fileSystem()).thenReturn(new DefaultFileSystemAbstraction());
when(outsideWorld.errorStream()).thenReturn(err);
when(outsideWorld.outStream()).thenReturn(out);
when(ccResult.isSuccessful()).thenReturn(true);
when(consistencyCheckService.runFullConsistencyCheck(any(), any(), any(), any(), any(), anyBoolean(), any(), any(CheckConsistencyConfig.class))).thenReturn(ccResult);
configDir = testDirectory.directory("config-dir").toPath();
}
use of org.neo4j.io.fs.DefaultFileSystemAbstraction in project neo4j by neo4j.
the class ClusterTest method clearLastTransactionCommitTimestampField.
private static void clearLastTransactionCommitTimestampField(File storeDir) throws IOException {
try (FileSystemAbstraction fileSystem = new DefaultFileSystemAbstraction();
PageCache pageCache = createPageCache(fileSystem)) {
File neoStore = new File(storeDir, MetaDataStore.DEFAULT_NAME);
MetaDataStore.setRecord(pageCache, neoStore, LAST_TRANSACTION_COMMIT_TIMESTAMP, MetaDataStore.BASE_TX_COMMIT_TIMESTAMP);
}
}
use of org.neo4j.io.fs.DefaultFileSystemAbstraction in project neo4j by neo4j.
the class RelationshipGroupStoreTest method before.
@Before
public void before() throws Exception {
directory = testDir.graphDbDir();
fs = new DefaultFileSystemAbstraction();
defaultThreshold = parseInt(GraphDatabaseSettings.dense_node_threshold.getDefaultValue());
}
use of org.neo4j.io.fs.DefaultFileSystemAbstraction in project neo4j by neo4j.
the class CheckConsistencyCommand method execute.
@Override
public void execute(String[] args) throws IncorrectUsage, CommandFailed {
final String database;
final boolean verbose;
final Optional<Path> additionalConfigFile;
final Path reportDir;
final Optional<Path> backupPath;
final boolean checkGraph;
final boolean checkIndexes;
final boolean checkLabelScanStore;
final boolean checkPropertyOwners;
try {
database = arguments.parse("database", args);
backupPath = arguments.parseOptionalPath("backup", args);
verbose = arguments.parseBoolean("verbose", args);
additionalConfigFile = arguments.parseOptionalPath("additional-config", args);
reportDir = arguments.parseOptionalPath("report-dir", args).orElseThrow(() -> new IllegalArgumentException("report-dir must be a valid path"));
} catch (IllegalArgumentException e) {
throw new IncorrectUsage(e.getMessage());
}
if (backupPath.isPresent()) {
if (arguments.has("database", args)) {
throw new IncorrectUsage("Only one of '--database' and '--backup' can be specified.");
}
if (!backupPath.get().toFile().isDirectory()) {
throw new CommandFailed(format("Specified backup should be a directory: %s", backupPath.get()));
}
}
Config config = loadNeo4jConfig(homeDir, configDir, database, loadAdditionalConfig(additionalConfigFile));
try {
// We can remove the loading from config file in 4.0
if (arguments.has(CHECK_GRAPH, args)) {
checkGraph = arguments.parseBoolean(CHECK_GRAPH, args);
} else {
checkGraph = ConsistencyCheckSettings.consistency_check_graph.from(config);
}
if (arguments.has(CHECK_INDEXES, args)) {
checkIndexes = arguments.parseBoolean(CHECK_INDEXES, args);
} else {
checkIndexes = ConsistencyCheckSettings.consistency_check_indexes.from(config);
}
if (arguments.has(CHECK_LABEL_SCAN_STORE, args)) {
checkLabelScanStore = arguments.parseBoolean(CHECK_LABEL_SCAN_STORE, args);
} else {
checkLabelScanStore = ConsistencyCheckSettings.consistency_check_label_scan_store.from(config);
}
if (arguments.has(CHECK_PROPERTY_OWNERS, args)) {
checkPropertyOwners = arguments.parseBoolean(CHECK_PROPERTY_OWNERS, args);
} else {
checkPropertyOwners = ConsistencyCheckSettings.consistency_check_property_owners.from(config);
}
} catch (IllegalArgumentException e) {
throw new IncorrectUsage(e.getMessage());
}
try (FileSystemAbstraction fileSystem = new DefaultFileSystemAbstraction()) {
File storeDir = backupPath.map(Path::toFile).orElse(config.get(database_path));
checkDbState(storeDir, config);
ConsistencyCheckService.Result consistencyCheckResult = consistencyCheckService.runFullConsistencyCheck(storeDir, config, ProgressMonitorFactory.textual(System.err), FormattedLogProvider.toOutputStream(System.out), fileSystem, verbose, reportDir.toFile(), new CheckConsistencyConfig(checkGraph, checkIndexes, checkLabelScanStore, checkPropertyOwners));
if (!consistencyCheckResult.isSuccessful()) {
throw new CommandFailed(format("Inconsistencies found. See '%s' for details.", consistencyCheckResult.reportFile()));
}
} catch (ConsistencyCheckIncompleteException | IOException e) {
throw new CommandFailed("Consistency checking failed." + e.getMessage(), e);
}
}
use of org.neo4j.io.fs.DefaultFileSystemAbstraction in project neo4j by neo4j.
the class DatabaseStartupTest method startTheDatabaseWithWrongVersionShouldFailWithUpgradeNotAllowed.
@Test
public void startTheDatabaseWithWrongVersionShouldFailWithUpgradeNotAllowed() throws Throwable {
// given
// create a store
File storeDir = testDirectory.graphDbDir();
GraphDatabaseService db = new TestGraphDatabaseFactory().newEmbeddedDatabase(storeDir);
try (Transaction tx = db.beginTx()) {
db.createNode();
tx.success();
}
db.shutdown();
// mess up the version in the metadatastore
try (FileSystemAbstraction fileSystem = new DefaultFileSystemAbstraction();
PageCache pageCache = StandalonePageCacheFactory.createPageCache(fileSystem)) {
MetaDataStore.setRecord(pageCache, new File(storeDir, MetaDataStore.DEFAULT_NAME), MetaDataStore.Position.STORE_VERSION, MetaDataStore.versionStringToLong("bad"));
}
// when
try {
new TestGraphDatabaseFactory().newEmbeddedDatabase(storeDir);
fail("It should have failed.");
} catch (RuntimeException ex) {
// then
assertTrue(ex.getCause() instanceof LifecycleException);
assertTrue(ex.getCause().getCause() instanceof UpgradeNotAllowedByConfigurationException);
assertEquals("Failed to start Neo4j with an older data store version. To enable automatic upgrade, " + "please set configuration parameter \"dbms.allow_format_migration=true\"", ex.getCause().getCause().getMessage());
}
}
Aggregations