Search in sources :

Example 76 with Event

use of org.apache.ignite.events.Event in project ignite by apache.

the class GridDiscoveryEventSelfTest method testDaemonNodeJoin.

/**
 * @throws Exception If failed.
 */
public void testDaemonNodeJoin() throws Exception {
    try {
        startGridsMultiThreaded(3);
        final AtomicReference<IgniteCheckedException> err = new AtomicReference<>();
        for (int i = 0; i < 3; i++) {
            Ignite g = grid(i);
            g.events().localListen(new IgnitePredicate<Event>() {

                @Override
                public boolean apply(Event evt) {
                    DiscoveryEvent discoEvt = (DiscoveryEvent) evt;
                    if (discoEvt.topologyNodes().size() != 3)
                        err.compareAndSet(null, new IgniteCheckedException("Invalid discovery event [evt=" + discoEvt + ", nodes=" + discoEvt.topologyNodes() + ']'));
                    return true;
                }
            }, EventType.EVT_NODE_JOINED);
        }
        daemon = true;
        IgniteKernal daemon = (IgniteKernal) startGrid(3);
        DiscoveryEvent join = daemon.context().discovery().localJoinEvent();
        assertEquals(3, join.topologyNodes().size());
        U.sleep(100);
        if (err.get() != null)
            throw err.get();
    } finally {
        stopAllGrids();
    }
}
Also used : IgniteCheckedException(org.apache.ignite.IgniteCheckedException) DiscoveryEvent(org.apache.ignite.events.DiscoveryEvent) Event(org.apache.ignite.events.Event) DiscoveryEvent(org.apache.ignite.events.DiscoveryEvent) AtomicReference(java.util.concurrent.atomic.AtomicReference) Ignite(org.apache.ignite.Ignite)

Example 77 with Event

use of org.apache.ignite.events.Event in project ignite by apache.

the class GridDiscoveryEventSelfTest method testConcurrentJoinEvents.

/**
 * @throws Exception If failed.
 */
public void testConcurrentJoinEvents() throws Exception {
    try {
        Ignite g0 = startGrid(0);
        UUID id0 = g0.cluster().localNode().id();
        final ConcurrentMap<Integer, Collection<ClusterNode>> evts = new ConcurrentHashMap<>();
        g0.events().localListen(new IgnitePredicate<Event>() {

            private AtomicInteger cnt = new AtomicInteger();

            @Override
            public boolean apply(Event evt) {
                assert evt.type() == EVT_NODE_JOINED : evt;
                X.println(">>>>>>> Joined " + F.viewReadOnly(((DiscoveryEvent) evt).topologyNodes(), NODE_2ID));
                evts.put(cnt.getAndIncrement(), ((DiscoveryEvent) evt).topologyNodes());
                return true;
            }
        }, EVT_NODE_JOINED);
        U.sleep(100);
        startGridsMultiThreaded(1, 10);
        U.sleep(100);
        assertEquals(10, evts.size());
        for (int i = 0; i < 10; i++) {
            Collection<ClusterNode> snapshot = evts.get(i);
            assertEquals(2 + i, snapshot.size());
            assertTrue(F.viewReadOnly(snapshot, NODE_2ID).contains(id0));
            for (ClusterNode n : snapshot) assertTrue("Wrong node order in snapshot [i=" + i + ", node=" + n + ']', n.order() <= 2 + i);
        }
        Collection<UUID> ids = F.viewReadOnly(evts.get(9), NODE_2ID);
        for (int i = 1; i <= 10; i++) assertTrue(ids.contains(grid(i).localNode().id()));
    } finally {
        stopAllGrids();
    }
}
Also used : ClusterNode(org.apache.ignite.cluster.ClusterNode) DiscoveryEvent(org.apache.ignite.events.DiscoveryEvent) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Collection(java.util.Collection) DiscoveryEvent(org.apache.ignite.events.DiscoveryEvent) Event(org.apache.ignite.events.Event) Ignite(org.apache.ignite.Ignite) UUID(java.util.UUID) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap)

Example 78 with Event

use of org.apache.ignite.events.Event in project ignite by apache.

the class GridEventStorageCheckAllEventsSelfTest method testTaskUndeployEvents.

/**
 * @throws Exception If test failed.
 */
public void testTaskUndeployEvents() throws Exception {
    final long tstamp = startTimestamp();
    generateEvents(null, new GridAllEventsSuccessTestJob()).get();
    // TODO: IGNITE-3099 (hotfix the test to check the event order in common case).
    GridTestUtils.waitForCondition(new GridAbsPredicate() {

        @Override
        public boolean apply() {
            try {
                List<Event> evts = pullEvents(tstamp, 10);
                return evts.get(evts.size() - 1).type() == EVT_JOB_FINISHED;
            } catch (Exception ignored) {
                return false;
            }
        }
    }, 500);
    ignite.compute().undeployTask(GridAllEventsTestTask.class.getName());
    ignite.compute().localDeployTask(GridAllEventsTestTask.class, GridAllEventsTestTask.class.getClassLoader());
    List<Event> evts = pullEvents(tstamp, 12);
    assertEvent(evts.get(0).type(), EVT_TASK_STARTED, evts);
    assertEvent(evts.get(1).type(), EVT_JOB_MAPPED, evts);
    assertEvent(evts.get(2).type(), EVT_JOB_QUEUED, evts);
    assertEvent(evts.get(3).type(), EVT_JOB_STARTED, evts);
    assertEvent(evts.get(4).type(), EVT_CHECKPOINT_SAVED, evts);
    assertEvent(evts.get(5).type(), EVT_CHECKPOINT_REMOVED, evts);
    assertEvent(evts.get(6).type(), EVT_JOB_RESULTED, evts);
    assertEvent(evts.get(7).type(), EVT_TASK_REDUCED, evts);
    assertEvent(evts.get(8).type(), EVT_TASK_FINISHED, evts);
    assertEvent(evts.get(9).type(), EVT_JOB_FINISHED, evts);
    assertEvent(evts.get(10).type(), EVT_TASK_UNDEPLOYED, evts);
    assertEvent(evts.get(11).type(), EVT_TASK_DEPLOYED, evts);
}
Also used : GridAbsPredicate(org.apache.ignite.internal.util.lang.GridAbsPredicate) JobEvent(org.apache.ignite.events.JobEvent) TaskEvent(org.apache.ignite.events.TaskEvent) Event(org.apache.ignite.events.Event) CheckpointEvent(org.apache.ignite.events.CheckpointEvent) DeploymentEvent(org.apache.ignite.events.DeploymentEvent) List(java.util.List) ArrayList(java.util.ArrayList) IgniteException(org.apache.ignite.IgniteException) ComputeTaskTimeoutException(org.apache.ignite.compute.ComputeTaskTimeoutException)

Example 79 with Event

use of org.apache.ignite.events.Event in project ignite by apache.

the class GridEventStorageRuntimeConfigurationSelfTest method testEnableWithDefaults.

/**
 * @throws Exception If failed.
 */
public void testEnableWithDefaults() throws Exception {
    inclEvtTypes = null;
    try {
        Ignite g = startGrid();
        final AtomicInteger cnt = new AtomicInteger();
        g.events().localListen(new IgnitePredicate<Event>() {

            @Override
            public boolean apply(Event evt) {
                cnt.incrementAndGet();
                return true;
            }
        }, EVT_TASK_STARTED);
        g.compute().run(F.noop());
        assertEquals(0, cnt.get());
        g.events().enableLocal(EVT_TASK_STARTED);
        g.compute().run(F.noop());
        assertEquals(1, cnt.get());
    } finally {
        stopAllGrids();
    }
}
Also used : AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Event(org.apache.ignite.events.Event) Ignite(org.apache.ignite.Ignite)

Example 80 with Event

use of org.apache.ignite.events.Event in project ignite by apache.

the class GridEventStorageRuntimeConfigurationSelfTest method testEnableWithIncludes.

/**
 * @throws Exception If failed.
 */
public void testEnableWithIncludes() throws Exception {
    inclEvtTypes = new int[] { EVT_TASK_STARTED, EVT_TASK_FINISHED };
    try {
        Ignite g = startGrid();
        final AtomicInteger cnt = new AtomicInteger();
        g.events().localListen(new IgnitePredicate<Event>() {

            @Override
            public boolean apply(Event evt) {
                cnt.incrementAndGet();
                return true;
            }
        }, EVT_TASK_STARTED, EVT_TASK_FINISHED, EVT_JOB_STARTED);
        g.compute().run(F.noop());
        assertEquals(2, cnt.get());
        g.events().enableLocal(EVT_TASK_FINISHED, EVT_JOB_STARTED);
        g.compute().run(F.noop());
        assertEquals(5, cnt.get());
    } finally {
        stopAllGrids();
    }
}
Also used : AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Event(org.apache.ignite.events.Event) Ignite(org.apache.ignite.Ignite)

Aggregations

Event (org.apache.ignite.events.Event)226 CountDownLatch (java.util.concurrent.CountDownLatch)127 Ignite (org.apache.ignite.Ignite)112 DiscoveryEvent (org.apache.ignite.events.DiscoveryEvent)96 UUID (java.util.UUID)71 IgnitePredicate (org.apache.ignite.lang.IgnitePredicate)44 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)43 ClusterNode (org.apache.ignite.cluster.ClusterNode)38 GridLocalEventListener (org.apache.ignite.internal.managers.eventstorage.GridLocalEventListener)28 ArrayList (java.util.ArrayList)27 JobEvent (org.apache.ignite.events.JobEvent)27 IgniteException (org.apache.ignite.IgniteException)20 IgniteCheckedException (org.apache.ignite.IgniteCheckedException)19 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)16 HashSet (java.util.HashSet)15 TaskEvent (org.apache.ignite.events.TaskEvent)15 Collection (java.util.Collection)13 HashMap (java.util.HashMap)12 GridMessageListener (org.apache.ignite.internal.managers.communication.GridMessageListener)12 GridConcurrentHashSet (org.apache.ignite.internal.util.GridConcurrentHashSet)12