Search in sources :

Example 6 with GridSpiTestContext

use of org.apache.ignite.testframework.GridSpiTestContext in project ignite by apache.

the class GridTcpCommunicationSpiLanTest method beforeTestsStarted.

/** {@inheritDoc} */
@Override
protected void beforeTestsStarted() throws Exception {
    spi = createSpi();
    spiRsrc = new IgniteTestResources(getMBeanServer());
    locNode = new GridTestNode(spiRsrc.getNodeId());
    GridSpiTestContext ctx = initSpiContext();
    ctx.setLocalNode(locNode);
    info(">>> Initialized context: nodeId=" + ctx.localNode().id());
    spiRsrc.inject(spi);
    lsnr = new MessageListener(spiRsrc.getNodeId());
    spi.setListener(lsnr);
    Map<String, Object> attrs = spi.getNodeAttributes();
    locNode.setAttributes(attrs);
    spi.spiStart(getTestIgniteInstanceName());
    spi.onContextInitialized(ctx);
    IgniteTestResources remoteRsrc = new IgniteTestResources();
    remoteNode = new GridTestNode(remoteRsrc.getNodeId());
    remoteNode.setAttributes(attrs);
    remoteNode.setAttribute(U.spiAttribute(spi, TcpCommunicationSpi.ATTR_ADDRS), Collections.singleton(remoteAddr));
    ctx.remoteNodes().add(remoteNode);
}
Also used : GridSpiTestContext(org.apache.ignite.testframework.GridSpiTestContext) IgniteTestResources(org.apache.ignite.testframework.junits.IgniteTestResources) GridTestNode(org.apache.ignite.testframework.GridTestNode)

Example 7 with GridSpiTestContext

use of org.apache.ignite.testframework.GridSpiTestContext in project ignite by apache.

the class AbstractDiscoverySelfTest method beforeTestsStarted.

/** {@inheritDoc} */
@Override
protected void beforeTestsStarted() throws Exception {
    try {
        for (int i = 0; i < getSpiCount(); i++) {
            DiscoverySpi spi = getSpi(i);
            IgniteTestResources rsrcMgr = new IgniteTestResources(getMBeanServer(i));
            rsrcMgr.inject(spi);
            spi.setNodeAttributes(Collections.<String, Object>singletonMap(TEST_ATTRIBUTE_NAME, "true"), fromString("99.99.99"));
            spi.setListener(new DiscoverySpiListener() {

                /** {@inheritDoc} */
                @Override
                public void onLocalNodeInitialized(ClusterNode locNode) {
                // No-op.
                }

                @SuppressWarnings({ "NakedNotify" })
                @Override
                public void onDiscovery(int type, long topVer, ClusterNode node, Collection<ClusterNode> topSnapshot, Map<Long, Collection<ClusterNode>> topHist, @Nullable DiscoverySpiCustomMessage data) {
                    info("Discovery event [type=" + type + ", node=" + node + ']');
                    synchronized (mux) {
                        mux.notifyAll();
                    }
                }
            });
            spi.setDataExchange(new DiscoverySpiDataExchange() {

                @Override
                public DiscoveryDataBag collect(DiscoveryDataBag dataBag) {
                    return dataBag;
                }

                @Override
                public void onExchange(DiscoveryDataBag dataBag) {
                // No-op.
                }
            });
            GridSpiTestContext ctx = initSpiContext();
            GridTestUtils.setFieldValue(spi, IgniteSpiAdapter.class, "spiCtx", ctx);
            if (useSsl) {
                IgniteMock ignite = GridTestUtils.getFieldValue(spi, IgniteSpiAdapter.class, "ignite");
                IgniteConfiguration cfg = ignite.configuration().setSslContextFactory(GridTestUtils.sslFactory());
                ignite.setStaticCfg(cfg);
            }
            spi.spiStart(getTestIgniteInstanceName() + i);
            spis.add(spi);
            spiRsrcs.add(rsrcMgr);
            // Force to use test context instead of default dummy context.
            spi.onContextInitialized(ctx);
        }
    } catch (Throwable e) {
        e.printStackTrace();
    }
    spiStartTime = System.currentTimeMillis();
}
Also used : ClusterNode(org.apache.ignite.cluster.ClusterNode) GridSpiTestContext(org.apache.ignite.testframework.GridSpiTestContext) IgniteConfiguration(org.apache.ignite.configuration.IgniteConfiguration) IgniteTestResources(org.apache.ignite.testframework.junits.IgniteTestResources) Collection(java.util.Collection) IgniteMock(org.apache.ignite.testframework.junits.IgniteMock)

Example 8 with GridSpiTestContext

use of org.apache.ignite.testframework.GridSpiTestContext in project ignite by apache.

the class GridTcpCommunicationSpiRecoverySelfTest method startSpis.

/**
     * @throws Exception If failed.
     */
private void startSpis() throws Exception {
    spis.clear();
    nodes.clear();
    spiRsrcs.clear();
    Map<ClusterNode, GridSpiTestContext> ctxs = new HashMap<>();
    for (int i = 0; i < SPI_CNT; i++) {
        TcpCommunicationSpi spi = getSpi(i);
        GridTestUtils.setFieldValue(spi, IgniteSpiAdapter.class, "igniteInstanceName", "grid-" + i);
        IgniteTestResources rsrcs = new IgniteTestResources();
        GridTestNode node = new GridTestNode(rsrcs.getNodeId());
        node.order(i);
        GridSpiTestContext ctx = initSpiContext();
        ctx.setLocalNode(node);
        spiRsrcs.add(rsrcs);
        rsrcs.inject(spi);
        if (useSsl) {
            IgniteMock ignite = GridTestUtils.getFieldValue(spi, IgniteSpiAdapter.class, "ignite");
            IgniteConfiguration cfg = ignite.configuration().setSslContextFactory(GridTestUtils.sslFactory());
            ignite.setStaticCfg(cfg);
        }
        spi.setListener(new TestListener());
        node.setAttributes(spi.getNodeAttributes());
        nodes.add(node);
        spi.spiStart(getTestIgniteInstanceName() + (i + 1));
        spis.add(spi);
        spi.onContextInitialized(ctx);
        ctxs.put(node, ctx);
    }
    // For each context set remote nodes.
    for (Map.Entry<ClusterNode, GridSpiTestContext> e : ctxs.entrySet()) {
        for (ClusterNode n : nodes) {
            if (!n.equals(e.getKey()))
                e.getValue().remoteNodes().add(n);
        }
    }
}
Also used : ClusterNode(org.apache.ignite.cluster.ClusterNode) GridSpiTestContext(org.apache.ignite.testframework.GridSpiTestContext) HashMap(java.util.HashMap) GridTestNode(org.apache.ignite.testframework.GridTestNode) IgniteConfiguration(org.apache.ignite.configuration.IgniteConfiguration) IgniteTestResources(org.apache.ignite.testframework.junits.IgniteTestResources) IgniteMock(org.apache.ignite.testframework.junits.IgniteMock) HashMap(java.util.HashMap) Map(java.util.Map)

Example 9 with GridSpiTestContext

use of org.apache.ignite.testframework.GridSpiTestContext in project ignite by apache.

the class IgniteTcpCommunicationRecoveryAckClosureSelfTest method startSpis.

/**
     * @param ackCnt Recovery acknowledgement count.
     * @param idleTimeout Idle connection timeout.
     * @param queueLimit Message queue limit.
     * @throws Exception If failed.
     */
private void startSpis(int ackCnt, int idleTimeout, int queueLimit) throws Exception {
    spis.clear();
    nodes.clear();
    spiRsrcs.clear();
    Map<ClusterNode, GridSpiTestContext> ctxs = new HashMap<>();
    for (int i = 0; i < SPI_CNT; i++) {
        TcpCommunicationSpi spi = getSpi(ackCnt, idleTimeout, queueLimit);
        GridTestUtils.setFieldValue(spi, IgniteSpiAdapter.class, "igniteInstanceName", "grid-" + i);
        IgniteTestResources rsrcs = new IgniteTestResources();
        GridTestNode node = new GridTestNode(rsrcs.getNodeId());
        GridSpiTestContext ctx = initSpiContext();
        ctx.setLocalNode(node);
        spiRsrcs.add(rsrcs);
        rsrcs.inject(spi);
        spi.setListener(new TestListener());
        node.setAttributes(spi.getNodeAttributes());
        nodes.add(node);
        spi.spiStart(getTestIgniteInstanceName() + (i + 1));
        spis.add(spi);
        spi.onContextInitialized(ctx);
        ctxs.put(node, ctx);
    }
    // For each context set remote nodes.
    for (Map.Entry<ClusterNode, GridSpiTestContext> e : ctxs.entrySet()) {
        for (ClusterNode n : nodes) {
            if (!n.equals(e.getKey()))
                e.getValue().remoteNodes().add(n);
        }
    }
}
Also used : ClusterNode(org.apache.ignite.cluster.ClusterNode) GridSpiTestContext(org.apache.ignite.testframework.GridSpiTestContext) HashMap(java.util.HashMap) IgniteTestResources(org.apache.ignite.testframework.junits.IgniteTestResources) HashMap(java.util.HashMap) Map(java.util.Map) GridTestNode(org.apache.ignite.testframework.GridTestNode)

Example 10 with GridSpiTestContext

use of org.apache.ignite.testframework.GridSpiTestContext in project ignite by apache.

the class GridSpiAbstractTest method initSpiContext.

/**
     * @return SPI context.
     * @throws Exception If anything failed.
     */
protected GridSpiTestContext initSpiContext() throws Exception {
    GridSpiTestContext spiCtx = new GridSpiTestContext();
    if (getTestData().getDiscoverySpi() != null) {
        spiCtx.setLocalNode(getTestData().getDiscoverySpi().getLocalNode());
        for (ClusterNode node : getTestData().getDiscoverySpi().getRemoteNodes()) spiCtx.addNode(node);
    } else {
        GridTestNode node = new GridTestNode(UUID.randomUUID());
        spiCtx.setLocalNode(node);
        if (getSpi() != null) {
            // Set up SPI class name and SPI version.
            Map<String, Serializable> attrs = initSpiClassAndVersionAttributes(getSpi());
            for (Map.Entry<String, Serializable> entry : attrs.entrySet()) node.addAttribute(entry.getKey(), entry.getValue());
        }
    }
    return spiCtx;
}
Also used : ClusterNode(org.apache.ignite.cluster.ClusterNode) GridSpiTestContext(org.apache.ignite.testframework.GridSpiTestContext) Serializable(java.io.Serializable) IgniteProductVersion.fromString(org.apache.ignite.lang.IgniteProductVersion.fromString) HashMap(java.util.HashMap) Map(java.util.Map) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) GridTestNode(org.apache.ignite.testframework.GridTestNode)

Aggregations

GridSpiTestContext (org.apache.ignite.testframework.GridSpiTestContext)22 GridTestNode (org.apache.ignite.testframework.GridTestNode)17 ClusterNode (org.apache.ignite.cluster.ClusterNode)8 IgniteTestResources (org.apache.ignite.testframework.junits.IgniteTestResources)8 HashMap (java.util.HashMap)7 Map (java.util.Map)5 IgniteConfiguration (org.apache.ignite.configuration.IgniteConfiguration)4 IgniteMock (org.apache.ignite.testframework.junits.IgniteMock)4 Message (org.apache.ignite.plugin.extensions.communication.Message)3 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)2 ClusterMetricsSnapshot (org.apache.ignite.internal.ClusterMetricsSnapshot)2 GridTestMessage (org.apache.ignite.spi.communication.GridTestMessage)2 Serializable (java.io.Serializable)1 Collection (java.util.Collection)1 ConcurrentMap (java.util.concurrent.ConcurrentMap)1 GridTimeoutProcessor (org.apache.ignite.internal.processors.timeout.GridTimeoutProcessor)1 IgniteProductVersion.fromString (org.apache.ignite.lang.IgniteProductVersion.fromString)1 GridTestKernalContext (org.apache.ignite.testframework.junits.GridTestKernalContext)1