Search in sources :

Example 86 with Log

use of org.neo4j.logging.Log in project neo4j by neo4j.

the class MultiRealmAuthManagerRule method setupAuthManager.

private void setupAuthManager(AuthenticationStrategy authStrategy) throws Throwable {
    FormattedLog.Builder builder = FormattedLog.withUTCTimeZone();
    securityLogWriter = new StringWriter();
    Log log = builder.toWriter(securityLogWriter);
    securityLog = new SecurityLog(log);
    InternalFlatFileRealm internalFlatFileRealm = new InternalFlatFileRealm(users, new InMemoryRoleRepository(), new BasicPasswordPolicy(), authStrategy, mock(JobScheduler.class), new InMemoryUserRepository(), new InMemoryUserRepository());
    manager = new MultiRealmAuthManager(internalFlatFileRealm, Collections.singleton(internalFlatFileRealm), new MemoryConstrainedCacheManager(), securityLog, true);
    manager.init();
}
Also used : JobScheduler(org.neo4j.kernel.impl.util.JobScheduler) FormattedLog(org.neo4j.logging.FormattedLog) StringWriter(java.io.StringWriter) Log(org.neo4j.logging.Log) FormattedLog(org.neo4j.logging.FormattedLog) SecurityLog(org.neo4j.server.security.enterprise.log.SecurityLog) MemoryConstrainedCacheManager(org.apache.shiro.cache.MemoryConstrainedCacheManager) SecurityLog(org.neo4j.server.security.enterprise.log.SecurityLog) BasicPasswordPolicy(org.neo4j.server.security.auth.BasicPasswordPolicy) InMemoryUserRepository(org.neo4j.server.security.auth.InMemoryUserRepository)

Example 87 with Log

use of org.neo4j.logging.Log in project neo4j by neo4j.

the class EnterpriseSecurityModuleTest method setup.

// --------- HELPERS ----------
@Before
public void setup() {
    config = mock(Config.class);
    mockLogProvider = mock(LogProvider.class);
    Log mockLog = mock(Log.class);
    when(mockLogProvider.getLog(anyString())).thenReturn(mockLog);
    when(mockLog.isDebugEnabled()).thenReturn(true);
    when(config.get(SecuritySettings.auth_cache_ttl)).thenReturn(0L);
    when(config.get(SecuritySettings.auth_cache_max_capacity)).thenReturn(10);
    when(config.get(SecuritySettings.security_log_successful_authentication)).thenReturn(false);
}
Also used : LogProvider(org.neo4j.logging.LogProvider) Log(org.neo4j.logging.Log) SecurityLog(org.neo4j.server.security.enterprise.log.SecurityLog) Config(org.neo4j.kernel.configuration.Config) Before(org.junit.Before)

Example 88 with Log

use of org.neo4j.logging.Log in project neo4j by neo4j.

the class ReadReplicaReplicationIT method shouldBeAbleToCopyStoresFromCoreToReadReplica.

@Test
public void shouldBeAbleToCopyStoresFromCoreToReadReplica() throws Exception {
    // given
    Map<String, String> params = stringMap(CausalClusteringSettings.raft_log_rotation_size.name(), "1k", CausalClusteringSettings.raft_log_pruning_frequency.name(), "500ms", CausalClusteringSettings.state_machine_flush_window_size.name(), "1", CausalClusteringSettings.raft_log_pruning_strategy.name(), "1 entries");
    Cluster cluster = clusterRule.withNumberOfReadReplicas(0).withSharedCoreParams(params).withRecordFormat(HighLimit.NAME).startCluster();
    cluster.coreTx((db, tx) -> {
        Node node = db.createNode(Label.label("L"));
        for (int i = 0; i < 10; i++) {
            node.setProperty("prop-" + i, "this is a quite long string to get to the log limit soonish");
        }
        tx.success();
    });
    long baseVersion = versionBy(cluster.awaitLeader().raftLogDirectory(), Math::max);
    CoreClusterMember coreGraphDatabase = null;
    for (int j = 0; j < 2; j++) {
        coreGraphDatabase = cluster.coreTx((db, tx) -> {
            Node node = db.createNode(Label.label("L"));
            for (int i = 0; i < 10; i++) {
                node.setProperty("prop-" + i, "this is a quite long string to get to the log limit soonish");
            }
            tx.success();
        });
    }
    File raftLogDir = coreGraphDatabase.raftLogDirectory();
    assertEventually("pruning happened", () -> versionBy(raftLogDir, Math::min), greaterThan(baseVersion), 5, SECONDS);
    // when
    cluster.addReadReplicaWithIdAndRecordFormat(4, HighLimit.NAME).start();
    // then
    for (final ReadReplica readReplica : cluster.readReplicas()) {
        assertEventually("read replica available", () -> readReplica.database().isAvailable(0), is(true), 10, SECONDS);
    }
}
Also used : ResourceIterator(org.neo4j.graphdb.ResourceIterator) AvailabilityGuard(org.neo4j.kernel.AvailabilityGuard) Log(org.neo4j.logging.Log) CausalClusteringSettings(org.neo4j.causalclustering.core.CausalClusteringSettings) ReadReplicaGraphDatabase(org.neo4j.causalclustering.readreplica.ReadReplicaGraphDatabase) CoreMatchers.startsWith(org.hamcrest.CoreMatchers.startsWith) ThrowingSupplier(org.neo4j.function.ThrowingSupplier) HighLimit(org.neo4j.kernel.impl.store.format.highlimit.HighLimit) Map(java.util.Map) Is.is(org.hamcrest.core.Is.is) CoreClusterMember(org.neo4j.causalclustering.discovery.CoreClusterMember) Assert.fail(org.junit.Assert.fail) Transaction(org.neo4j.graphdb.Transaction) Path(java.nio.file.Path) Collectors.toSet(java.util.stream.Collectors.toSet) Standard(org.neo4j.kernel.impl.store.format.standard.Standard) PageCache(org.neo4j.io.pagecache.PageCache) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) Collection(java.util.Collection) Set(java.util.Set) BinaryOperator(java.util.function.BinaryOperator) UnsatisfiedDependencyException(org.neo4j.kernel.impl.util.UnsatisfiedDependencyException) Cluster(org.neo4j.causalclustering.discovery.Cluster) GraphDatabaseAPI(org.neo4j.kernel.internal.GraphDatabaseAPI) CoreGraphDatabase(org.neo4j.causalclustering.core.CoreGraphDatabase) Matchers.instanceOf(org.hamcrest.Matchers.instanceOf) TransactionIdTracker(org.neo4j.kernel.api.txtracking.TransactionIdTracker) MetaDataStore(org.neo4j.kernel.impl.store.MetaDataStore) Matchers.equalTo(org.hamcrest.Matchers.equalTo) Predicates.awaitEx(org.neo4j.function.Predicates.awaitEx) Matchers.greaterThan(org.hamcrest.Matchers.greaterThan) GraphDatabaseSettings(org.neo4j.graphdb.factory.GraphDatabaseSettings) SortedMap(java.util.SortedMap) Mockito.mock(org.mockito.Mockito.mock) Role(org.neo4j.causalclustering.core.consensus.roles.Role) ClusterMember(org.neo4j.causalclustering.discovery.ClusterMember) Label(org.neo4j.graphdb.Label) TransactionIdStore(org.neo4j.kernel.impl.transaction.log.TransactionIdStore) Iterables.count(org.neo4j.helpers.collection.Iterables.count) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) Monitors(org.neo4j.kernel.monitoring.Monitors) MINUTES(java.util.concurrent.TimeUnit.MINUTES) ClusterRule(org.neo4j.test.causalclustering.ClusterRule) LabelScanStore(org.neo4j.kernel.api.labelscan.LabelScanStore) Duration.ofSeconds(java.time.Duration.ofSeconds) Function(java.util.function.Function) Node(org.neo4j.graphdb.Node) HashSet(java.util.HashSet) CatchupPollingProcess(org.neo4j.causalclustering.catchup.tx.CatchupPollingProcess) LifecycleException(org.neo4j.kernel.lifecycle.LifecycleException) HazelcastDiscoveryServiceFactory(org.neo4j.causalclustering.discovery.HazelcastDiscoveryServiceFactory) GraphDatabaseService(org.neo4j.graphdb.GraphDatabaseService) TIME(org.neo4j.kernel.impl.store.MetaDataStore.Position.TIME) BiConsumer(java.util.function.BiConsumer) TransactionFailureException(org.neo4j.kernel.api.exceptions.TransactionFailureException) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) MapUtil.stringMap(org.neo4j.helpers.collection.MapUtil.stringMap) FileNames(org.neo4j.causalclustering.core.consensus.log.segmented.FileNames) PhysicalLogFiles(org.neo4j.kernel.impl.transaction.log.PhysicalLogFiles) FileCopyMonitor(org.neo4j.causalclustering.catchup.tx.FileCopyMonitor) Assert.assertTrue(org.junit.Assert.assertTrue) Test(org.junit.Test) IOException(java.io.IOException) Assert.assertEventually(org.neo4j.test.assertion.Assert.assertEventually) File(java.io.File) TimeUnit(java.util.concurrent.TimeUnit) DefaultFileSystemAbstraction(org.neo4j.io.fs.DefaultFileSystemAbstraction) SampleData.createData(org.neo4j.causalclustering.scenarios.SampleData.createData) Rule(org.junit.Rule) Paths(java.nio.file.Paths) WriteOperationsNotAllowedException(org.neo4j.graphdb.security.WriteOperationsNotAllowedException) GraphDatabaseFacade(org.neo4j.kernel.impl.factory.GraphDatabaseFacade) DbRepresentation(org.neo4j.test.DbRepresentation) Clock(java.time.Clock) ReadReplica(org.neo4j.causalclustering.discovery.ReadReplica) SECONDS(java.util.concurrent.TimeUnit.SECONDS) Assert.assertEquals(org.junit.Assert.assertEquals) FileSystemAbstraction(org.neo4j.io.fs.FileSystemAbstraction) ReadReplica(org.neo4j.causalclustering.discovery.ReadReplica) CoreClusterMember(org.neo4j.causalclustering.discovery.CoreClusterMember) Node(org.neo4j.graphdb.Node) Cluster(org.neo4j.causalclustering.discovery.Cluster) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) File(java.io.File) Test(org.junit.Test)

Example 89 with Log

use of org.neo4j.logging.Log in project neo4j by neo4j.

the class ClusterManager method allSeesAllAsAvailable.

public static Predicate<ManagedCluster> allSeesAllAsAvailable() {
    return new Predicate<ManagedCluster>() {

        @Override
        public boolean test(ManagedCluster cluster) {
            if (!allSeesAllAsJoined().test(cluster)) {
                return false;
            }
            int clusterMembersChecked = 0;
            for (HighlyAvailableGraphDatabase database : cluster.getAllMembers()) {
                clusterMembersChecked++;
                ClusterMembers members = database.getDependencyResolver().resolveDependency(ClusterMembers.class);
                for (ClusterMember clusterMember : members.getMembers()) {
                    if (!cluster.isAvailable(clusterMember)) {
                        return false;
                    }
                }
            }
            if (clusterMembersChecked == 0) {
                return false;
            }
            // Everyone sees everyone else as available!
            for (HighlyAvailableGraphDatabase database : cluster.getAllMembers()) {
                Log log = database.getDependencyResolver().resolveDependency(LogService.class).getInternalLog(getClass());
                log.debug(this.toString());
            }
            return true;
        }

        @Override
        public String toString() {
            return "All instances should see all others as available";
        }
    };
}
Also used : ClusterMember(org.neo4j.kernel.ha.cluster.member.ClusterMember) HighlyAvailableGraphDatabase(org.neo4j.kernel.ha.HighlyAvailableGraphDatabase) Log(org.neo4j.logging.Log) ClusterMembers(org.neo4j.kernel.ha.cluster.member.ClusterMembers) ObservedClusterMembers(org.neo4j.kernel.ha.cluster.member.ObservedClusterMembers) LogService(org.neo4j.kernel.impl.logging.LogService) NullLogService(org.neo4j.kernel.impl.logging.NullLogService) Predicate(java.util.function.Predicate)

Example 90 with Log

use of org.neo4j.logging.Log in project neo4j by neo4j.

the class TransactionPropagatorTest method shouldCapUndesiredSlaveCountPushLogging.

@Test
public void shouldCapUndesiredSlaveCountPushLogging() throws Exception {
    // GIVEN
    int serverId = 1;
    final InstanceId instanceId = new InstanceId(serverId);
    Configuration config = new Configuration() {

        @Override
        public int getTxPushFactor() {
            return 1;
        }

        @Override
        public InstanceId getServerId() {
            return instanceId;
        }

        @Override
        public SlavePriority getReplicationStrategy() {
            return SlavePriorities.fixedDescending();
        }
    };
    Log logger = mock(Log.class);
    Slaves slaves = mock(Slaves.class);
    when(slaves.getSlaves()).thenReturn(Collections.<Slave>emptyList());
    CommitPusher pusher = mock(CommitPusher.class);
    TransactionPropagator propagator = life.add(new TransactionPropagator(config, logger, slaves, pusher));
    // WHEN
    for (int i = 0; i < 10; i++) {
        propagator.committed(TransactionIdStore.BASE_TX_ID, serverId);
    }
    // THEN
    verify(logger, times(1)).info(anyString());
}
Also used : Configuration(org.neo4j.kernel.ha.transaction.TransactionPropagator.Configuration) InstanceId(org.neo4j.cluster.InstanceId) Log(org.neo4j.logging.Log) Slaves(org.neo4j.kernel.ha.com.master.Slaves) Test(org.junit.Test)

Aggregations

Log (org.neo4j.logging.Log)164 Test (org.junit.Test)60 NullLog (org.neo4j.logging.NullLog)53 Test (org.junit.jupiter.api.Test)50 AssertableLogProvider (org.neo4j.logging.AssertableLogProvider)24 Path (java.nio.file.Path)20 LogProvider (org.neo4j.logging.LogProvider)15 File (java.io.File)13 IOException (java.io.IOException)12 Map (java.util.Map)12 Config (org.neo4j.kernel.configuration.Config)10 GraphDatabaseAPI (org.neo4j.kernel.internal.GraphDatabaseAPI)10 PageCache (org.neo4j.io.pagecache.PageCache)9 LifeSupport (org.neo4j.kernel.lifecycle.LifeSupport)8 NullLogProvider (org.neo4j.logging.NullLogProvider)7 HashMap (java.util.HashMap)6 Config (org.neo4j.configuration.Config)6 GraphDatabaseService (org.neo4j.graphdb.GraphDatabaseService)6 BasicContext (org.neo4j.kernel.api.proc.BasicContext)6 CallableProcedure (org.neo4j.kernel.api.procedure.CallableProcedure)6